prometeu-runtime/discussion/workflow/plans/PLN-0099-introduce-owned-render-submission-sink.md

2.3 KiB

id ticket title status created completed ref_decisions tags
PLN-0099 real-render-worker-establishment Introduce Owned RenderSubmissionSink open 2026-06-06
DEC-0032
runtime
renderer
hal
errors

Objective

Introduce an owned RenderSubmissionSink facade with minimal typed submission errors.

Background

DEC-0032 requires render publication to move away from HardwareBridge and to accept owned RenderSubmission values so the contract is compatible with async handoff.

Scope

Included

  • Define RenderSubmissionSink.
  • Define minimal RenderSubmitError.
  • Implement the facade for the current local driver path.

Excluded

  • Do not migrate all publication call sites yet.
  • Do not spawn a render worker.
  • Do not remove HardwareBridge::publish_render_submission.

Execution Steps

Step 1 - Define sink and error

What: Add RenderSubmissionSink and RenderSubmitError. How: submit_render_submission(&mut self, submission: RenderSubmission) -> Result<(), RenderSubmitError>. File(s): crates/console/prometeu-hal/src/platform.rs or a render-specific HAL module.

Step 2 - Implement local sink

What: Implement the sink for the current local driver implementation. How: Adapt owned submission to the existing local Hardware publication path. File(s): crates/console/prometeu-drivers/src/hardware.rs.

Step 3 - Add tests

What: Prove owned submission is consumed by the local sink. How: Add driver test using RenderSubmission::game2d and RenderSubmission::shell_ui. File(s): crates/console/prometeu-drivers/src/hardware.rs or platform test module.

Test Requirements

Unit Tests

  • Local sink accepts owned Game2D and ShellUi submissions.
  • Error type is constructible and debuggable.

Integration Tests

  • cargo test -p prometeu-hal -p prometeu-drivers.

Manual Verification

  • Confirm the sink does not take &RenderSubmission.

Acceptance Criteria

  • RenderSubmissionSink takes owned RenderSubmission.
  • Minimal typed error exists.
  • Local driver implements the sink.
  • Existing publication behavior remains intact.

Dependencies

  • PLN-0098.

Risks

  • Local paths may still need temporary borrow adaptation. Keep it internal to the implementation.