2.8 KiB
| id | ticket | title | status | created | completed | ref_decisions | tags | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0118 | real-render-worker-establishment | Add Stale Epoch and Repeat Frame Behavior | open | 2026-06-15 |
|
|
Briefing
DEC-0033 requires the worker to discard stale in-flight frames before publication and repeat the last published OwnedRgba8888Frame rather than recomposing.
Decisions de Origem
DEC-0033: Real Render Worker Contract.
Alvo
Complete ownership/epoch checks and repeat-last-published-frame behavior for the worker path.
Escopo
- Add shared active ownership/epoch observation for worker publication checks.
- Discard stale in-flight frames before publication.
- Store and expose the latest published
OwnedRgba8888Frame. - Implement repeat-last-frame behavior and telemetry.
Fora de Escopo
- No desktop upload/present.
- No new AppMode policy.
- No native window invalidation changes.
Plano de Execucao
Step 1 - Expose ownership/epoch to worker
What: Let worker validate in-flight submissions before publishing.
How: Add a thread-safe snapshot or handle that the worker can read without mutating runtime state.
File(s): render_manager.rs, worker modules.
Step 2 - Implement stale discard
What: Prevent stale pixels from publication. How: Before publishing frame output, compare submission ownership/epoch with active ownership/epoch; discard on mismatch and increment telemetry. File(s): worker controller module.
Step 3 - Store latest published frame
What: Make the latest valid frame available to host/fallback tests. How: Add a published-frame slot distinct from pending submission and in-flight work. File(s): worker controller or published frame module.
Step 4 - Implement repeat behavior
What: Repeat last valid frame without recomposition.
How: Add API to fetch/reuse the latest published OwnedRgba8888Frame; increment repeat telemetry when cadence requests reuse.
File(s): worker modules, tests.
Step 5 - Add tests
What: Prove stale discard and repeat. How: Use harness to hold in-flight work, change owner/epoch, release backend, and assert no publication; separately assert repeat returns last frame. File(s): worker tests.
Criterios de Aceite
- Worker checks active owner/epoch before publishing.
- Stale in-flight frames are discarded and counted.
- Latest published frame is an
OwnedRgba8888Frame. - Repeat uses the last published frame and does not recompose.
- Tests cover stale discard and repeat deterministically.
Tests / Validacao
cargo test -p prometeu-system render_workercargo test -p prometeu-system
Riscos
- Reading active ownership from the wrong layer may reintroduce mutable runtime coupling.
- Repeat behavior must not hide render failures unless telemetry records them.