2.2 KiB
| id | ticket | title | status | created | completed | ref_decisions | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0105 | real-render-worker-establishment | Migrate Firmware and Hub to Platform Services | done | 2026-06-06 |
|
|
Objective
Move firmware screens and Hub UI away from HardwareBridge and onto explicit platform services.
Background
Firmware splash/crash and Hub currently receive &mut dyn HardwareBridge and publish Shell UI directly through it. DEC-0032 requires migration to platform facades.
Scope
Included
- Firmware context uses platform services.
- Splash/crash screens publish via render sink.
- Hub input/render uses input/render facades.
Excluded
- Do not implement worker.
- Do not change Hub UX or firmware state machine semantics.
Execution Steps
Step 1 - Update firmware context
What: Replace PrometeuContext hardware bridge field with platform services.
How: Expose only the services firmware needs: input, assets, render sink.
File(s): crates/console/prometeu-firmware/src/firmware/prometeu_context.rs, firmware.rs.
Step 2 - Migrate firmware screens
What: Splash and crash screens publish through RenderSubmissionSink.
How: Build Shell UI packet and submit owned submission.
File(s): crates/console/prometeu-firmware/src/firmware_step_splash_screen.rs, firmware_step_crash_screen.rs.
Step 3 - Migrate Hub
What: Hub uses platform input/render services instead of HardwareBridge.
How: Replace activation input and render publication dependencies.
File(s): crates/console/prometeu-system/src/programs/prometeu_hub/prometeu_hub.rs.
Test Requirements
Unit Tests
- Firmware state tests pass.
- Hub UI tests pass.
Integration Tests
cargo test -p prometeu-firmware -p prometeu-system.
Manual Verification
- Firmware/Hub no longer call
publish_render_submissiononHardwareBridge.
Acceptance Criteria
- Firmware context no longer exposes the monolithic bridge.
- Splash/crash/Hub render via render sink.
- Hub input uses platform/input facade.
Dependencies
PLN-0103.PLN-0104.
Risks
- Firmware code is lifecycle-sensitive. Keep behavior changes out of scope.