2.3 KiB
2.3 KiB
| id | ticket | title | status | created | ref_decisions | tags | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0081 | render-frame-packet-boundary | Shell Hub Migration | open | 2026-05-25 |
|
|
Briefing
Source decision: DEC-0030.
Move Prometeu Hub, shell windows, splash/crash UI, and Shell drawing away from gfx_mut() into gfxui.* and Shell UI command buffers.
Target
Shell-facing UI no longer draws directly into Gfx; it produces Shell UI commands that close into ShellUiFramePacket.
Scope
- Migrate Prometeu Hub UI drawing.
- Migrate shell windows and window-manager drawing.
- Migrate splash and crash UI drawing.
- Remove direct Shell access to
gfx_mut()for render production. - Preserve visible Shell output where behavior is not intentionally changed.
Out of Scope
- Designing new Hub visuals.
- New widget/layout framework.
- Game mode migration.
- Debug console replacement.
Execution Sequence
- Inventory Shell, Hub, splash, crash, and firmware drawing callsites that use
gfx_mut()or direct framebuffer access. - Replace direct primitive drawing with
gfxui.*buffer writes. - Route Shell frame closure through
RenderManager. - Ensure Shell UI packets are consumed by the render-surface implementation.
- Remove now-unused direct Shell rendering hooks.
- Update tests and snapshots for unchanged visible behavior.
Acceptance Criteria
- Shell UI production no longer requires mutable
Gfxaccess. - Hub, shell windows, splash, and crash UI can render through
ShellUiFramePacket. - Shell mode does not use
composer.*orgfx2d.*. - Visible UI output is preserved except for approved fixture updates caused by boundary-only refactoring.
Tests / Validation
- Add integration tests for Hub/shell frame production.
- Add tests for splash and crash UI packet output.
- Run host smoke tests where available.
- Use pixel or snapshot comparisons for representative Shell screens.
Risks
- Firmware and Shell code may mix lifecycle side effects with drawing; split command production without changing lifecycle semantics.
- Some host tests may assume immediate framebuffer writes; update them to observe submissions or final pixels.
Affected Artifacts
- Shell, Hub, firmware, and host integration modules under
crates/ - Shell UI tests and fixtures