81 lines
2.5 KiB
Markdown
81 lines
2.5 KiB
Markdown
---
|
|
id: PLN-0100
|
|
ticket: real-render-worker-establishment
|
|
title: Migrate Local Render Publication to RenderSubmissionSink
|
|
status: done
|
|
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.
|