prometeu-runtime/discussion/workflow/plans/PLN-0100-migrate-local-render-publication-to-sink.md

81 lines
2.5 KiB
Markdown

---
id: PLN-0100
ticket: real-render-worker-establishment
title: Migrate Local Render Publication to RenderSubmissionSink
status: open
created: 2026-06-06
completed:
ref_decisions: [DEC-0032]
tags: [runtime, renderer, platform]
---
## Objective
Move local render publication call sites from `HardwareBridge::publish_render_submission` to `RenderSubmissionSink`.
## Background
The sink must become the publication boundary before a real worker can replace the local path. Runtime, firmware, and Hub currently publish through the monolithic bridge.
## Scope
### Included
- Runtime local render surface uses `RenderSubmissionSink`.
- Firmware splash/crash publication uses the sink.
- Hub Shell UI publication uses the sink or a temporary adapter.
### Excluded
- Do not remove `HardwareBridge`.
- Do not migrate non-render domains.
- Do not change command buffering semantics yet.
## Execution Steps
### Step 1 - Adapt runtime tick publication
**What:** Replace `HardwareRenderSurface` dependency on `HardwareBridge::publish_render_submission`.
**How:** Route submission through `RenderSubmissionSink`.
**File(s):** `crates/console/prometeu-system/src/services/vm_runtime/tick.rs`.
### Step 2 - Adapt firmware and Hub publication
**What:** Stop direct calls to `hw.publish_render_submission`.
**How:** Use the sink through explicit platform/render facade access or temporary adapter.
**File(s):** `crates/console/prometeu-firmware/src/firmware_step_splash_screen.rs`, `crates/console/prometeu-firmware/src/firmware_step_crash_screen.rs`, `crates/console/prometeu-system/src/programs/prometeu_hub/prometeu_hub.rs`.
### Step 3 - Update tests
**What:** Adjust tests that call `HardwareBridge::publish_render_submission`.
**How:** Use `RenderSubmissionSink` where render publication is the target.
**File(s):** `crates/console/prometeu-system/src/services/vm_runtime/tests.rs`, driver tests.
## Test Requirements
### Unit Tests
- Existing render manager tests pass.
### Integration Tests
- `cargo test -p prometeu-system -p prometeu-firmware -p prometeu-drivers`.
### Manual Verification
- `rg "publish_render_submission" crates/console` shows only legacy implementation or intentionally unmigrated scaffold.
## Acceptance Criteria
- [ ] Runtime publication uses `RenderSubmissionSink`.
- [ ] Firmware/Hub publication no longer depend directly on the monolithic bridge.
- [ ] Tests pass.
## Dependencies
- `PLN-0099`.
## Risks
- Firmware code may need a small context shape change. Keep compatibility adapters temporary and explicit.