prometeu-runtime/discussion/workflow/plans/PLN-0111-define-read-only-render-resource-access.md
2026-06-15 16:04:36 +01:00

3.1 KiB

id ticket title status created completed ref_decisions tags
PLN-0111 real-render-worker-establishment Define Read-Only Render Resource Access done 2026-06-15
DEC-0033
runtime
renderer
worker
hal
resources

Briefing

DEC-0033 requires the worker backend to resolve render resources by stable ids through compact read-only access, without copying banks, snapshotting banks, requiring Arc in the public contract, or accessing mutable Hardware/Gfx/FrameComposer.

Decisions de Origem

  • DEC-0033: Real Render Worker Contract.

Alvo

Define shared read-only render resource traits in HAL and implement them over existing local bank storage without changing bank ownership semantics.

Escopo

  • Define compact HAL traits for read-only glyph and scene bank access by id.
  • Keep the public contract id-based and read-only.
  • Implement the traits in the local driver/resource owner currently used by rendering.
  • Add tests proving banks are read through the new interface.

Fora de Escopo

  • No worker thread.
  • No bank copying or snapshotting.
  • No public Arc requirement.
  • No asset residency policy changes.

Plano de Execucao

Step 1 - Define HAL read-only traits

What: Add worker-facing resource access contracts. How: Define traits for resolving glyph and scene banks by stable ids. Return borrowed read-only references or compact read-only views, not mutable handles. File(s): crates/console/prometeu-hal/src/*, likely a new render resource module.

Step 2 - Implement local resource access

What: Expose current local bank storage through the new traits. How: Implement the read-only traits for the existing memory bank/resource owner used by prometeu-drivers. File(s): crates/console/prometeu-drivers/src/memory_banks.rs, frame_composer.rs, or adjacent resource modules.

Step 3 - Thread access through backend-facing APIs

What: Make future backends able to receive resource access without Hardware. How: Add narrow parameters/types where needed so a backend can be given read-only resources independently from the full platform. File(s): HAL contracts and driver modules touched above.

Step 4 - Add resource access tests

What: Prove id lookup and read-only behavior. How: Add tests for resident/missing glyph and scene banks through the new traits and verify no mutable API is exposed. File(s): HAL/driver tests.

Criterios de Aceite

  • Worker-facing render resource access is defined in prometeu-hal.
  • Resource access is by stable id and read-only.
  • The public contract does not require Arc, bank copies, bank snapshots, Hardware, Gfx, or FrameComposer.
  • Local driver storage implements the traits.

Tests / Validacao

  • cargo test -p prometeu-hal -p prometeu-drivers
  • rg "Arc<.*RenderResource|snapshot.*bank|&mut Hardware|&mut Gfx|FrameComposer" crates/console/prometeu-hal crates/console/prometeu-drivers -n

Riscos

  • Returning concrete bank internals may overexpose driver implementation.
  • Accidentally requiring Arc in the trait would make a storage strategy part of the public contract.