4.5 KiB
| id | ticket | title | status | created | completed | tags | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0040 | scene-bank-glyph-runtime-binding-leak | Scene glyph dependency spec and wire layout migration | done | 2026-04-24 | 2026-04-24 |
|
Briefing
Implement the specification-side portion of DEC-0021 by rewriting the SCENE payload contract so that each scene layer serializes a glyph dependency by canonical AssetId (i32) instead of a runtime glyph slot id. This plan covers only normative docs and wire-layout definition. It does not implement runtime code.
Decisions de Origem
DEC-0021— Scene Bank glyph dependencies MUST bind byasset_id, not runtime slot.
Alvo
- Canonical runtime specs under
docs/specs/runtime/. - Shared payload constants and comments under
crates/console/prometeu-hal/only where needed to reflect the normative wire layout.
Escopo
- Rewrite the
SCENEpayload description to replace per-layer runtime slot semantics with per-layerAssetId. - Define widened field width for serialized scene glyph dependencies.
- Remove any spec language implying passive missing-dependency status for scene composition.
- Align related comments/constants with the new payload field width and meaning.
Fora de Escopo
- Runtime bind/draw implementation.
- Reverse index implementation in
AssetManager. - Test fixture rewrites and tool migration.
- Any compatibility or versioning path for the old payload.
Plano de Execucao
Step 1 - Rewrite the normative SCENE payload contract
What:
Define the scene-layer dependency field as AssetId (i32) and remove all remaining wording that treats scene glyph linkage as runtime slot topology.
How:
Update the relevant docs/specs/runtime sections so the payload layout, field meaning, and operational consequences all match DEC-0021. State explicitly that the scene asset is cold-description only and MUST NOT encode runtime slot ids.
File(s):
docs/specs/runtime/15-asset-management.md- any scene/gfx spec chapter that documents
SCENEpayload fields or scene dependency semantics.
Step 2 - Update shared HAL wire-layout constants and inline documentation
What: Bring shared constants and comments into sync with the widened scene dependency field.
How:
Review crates/console/prometeu-hal/src/asset.rs and any nearby scene-related code comments. Update layer-header sizing constants and field comments if the payload header width changes from the previous single-byte dependency representation.
File(s):
crates/console/prometeu-hal/src/asset.rs- neighboring scene payload comments when affected.
Step 3 - Tighten the published fatal-error semantics
What: Make the public documentation consistent with the accepted fatal behavior for missing scene glyph dependencies.
How: Remove proposed/legacy wording that frames missing dependencies as recoverable status returns for scene activation/composition. Describe the bind-time and draw-time dependency absence as fatal machine errors with clear logging expectations.
File(s):
docs/specs/runtime/04-gfx-peripheral.mddocs/specs/runtime/16-host-abi-and-syscalls.md- any other spec chapter that describes
composer.bind_scene.
Criterios de Aceite
- The published
SCENEpayload contract defines per-layer glyph dependency asAssetId (i32). - No normative spec text claims that
SCENEserializes runtime glyph slot ids. - No normative spec text retains
ERROR_MISSING_DEPENDENCIESas the accepted contract for scene dependency failures. - Shared HAL constants/comments reflect the revised payload layout where applicable.
Tests / Validacao
Unit Tests
- Add or update compile-time/runtime assertions only if shared payload constants are exercised by existing tests.
Integration Tests
- None in this plan; verification is doc/contract oriented.
Manual Verification
- Review the updated spec text to ensure every
SCENEglyph dependency reference usesAssetIdlanguage. - Verify that the documented payload width matches
AssetId = i32. - Verify that fatal semantics for missing dependencies are stated consistently across spec chapters.
Riscos
- Spec-only edits can drift from the runtime implementation if later plans are not executed promptly.
- Scene payload layout changes may require touching multiple docs; missing one will leave contradictory contract text.
- If HAL constants are updated here before runtime code, temporary compile or test fallout may appear in later plans and must be handled intentionally.