8.1 KiB
| id | ticket | title | status | created | completed | tags | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0005 | tile-bank-vs-glyph-bank-domain-naming | Glyph Bank Domain Naming Execution | accepted | 2026-04-10 |
|
Briefing
Implement DEC-0006 by renaming the concrete graphical bank artifact from TileBank to GlyphBank across runtime code, tests, documentation, and historical lessons, while preserving behavior and keeping the excluded tile-domain surfaces untouched. This is a rename-only migration. It must not alter payload format, rendering semantics, codec behavior, metadata structure, or memory layout.
Decisions de Origem
- DEC-0006: Glyph Bank Domain Naming Contract
Alvo
Land a consistent runtime-and-docs migration that:
- renames the concrete bank artifact and its module/type surface to
GlyphBank; - renames
BankType::TILEStoBankType::GLYPH; - renames pool and loader/runtime bank-specific APIs accordingly;
- preserves
TileLayer,TileMap,ScrollableTileLayer,HudTileLayer, andTileSize; - rewrites maintained docs and lessons according to artifact meaning rather than blanket token replacement.
Escopo
prometeu-halconcrete bank type/module/enum renames.prometeu-driversrenderer, memory-bank, hardware, and asset-manager bank-specific renames.prometeu-systemcallsites and dispatch paths that refer to the asset-bank enum variant.- Tests, helpers, fixtures, and strings that still describe the concrete bank as
TileBank. - Discussion lessons and maintained discussion artifacts that refer to the concrete graphical bank artifact.
Fora de Escopo
- Any format, algorithm, codec, metadata, or layout change.
- Renaming
TileLayer,TileMap,ScrollableTileLayer,HudTileLayer, or related layer/map structures. - Renaming
TileSizeor geometric tile-size concepts. - Redesigning tile/glyph semantics beyond the naming boundary established by DEC-0006.
Plano de Execucao
Step 1 - Rename the HAL concrete bank surface
What:
Rename the concrete bank module and type surface in prometeu-hal from TileBank to GlyphBank.
How:
Rename tile_bank.rs to glyph_bank.rs, update lib.rs exports/import paths, rename TileBank to GlyphBank, and rename concrete-bank-specific constants if they are artifact-specific rather than geometric. Keep TileSize unchanged even if it continues to live near the bank implementation or must be re-exported from the renamed module in a compatibility-preserving layout inside this refactor.
File(s):
crates/console/prometeu-hal/src/tile_bank.rscrates/console/prometeu-hal/src/lib.rs- any direct imports of
prometeu_hal::tile_bank::*in runtime crates
Step 2 - Rename the asset-bank contract
What:
Migrate the asset-bank enum and related asset-facing terminology from TILES to GLYPH.
How:
Rename BankType::TILES to BankType::GLYPH, update any JSON/serde expectations and validation paths, and rename asset-facing metadata helpers only where they describe the concrete bank artifact rather than the geometric tile model. Preserve behavior and fail-fast semantics unchanged.
File(s):
crates/console/prometeu-hal/src/asset.rscrates/console/prometeu-hal/src/cartridge_loader.rscrates/console/prometeu-system/src/virtual_machine_runtime/dispatch.rscrates/console/prometeu-system/src/virtual_machine_runtime/tick.rscrates/console/prometeu-system/src/virtual_machine_runtime/tests.rs
Step 3 - Rename memory pools and concrete-bank runtime APIs
What: Rename bank-specific pool interfaces and storage paths that refer to the concrete graphical bank.
How:
Rename TileBankPoolAccess, TileBankPoolInstaller, tile_bank_slot, install_tile_bank, tile_bank_pool, and related fields/traits/vars to Glyph* equivalents. Keep semantics and slot behavior unchanged.
File(s):
crates/console/prometeu-drivers/src/memory_banks.rscrates/console/prometeu-drivers/src/hardware.rscrates/console/prometeu-drivers/src/gfx.rscrates/console/prometeu-drivers/src/asset.rs
Step 4 - Rename concrete-bank decode/load path and tests
What: Update the asset manager and concrete-bank decode path to the new artifact name.
How:
Rename functions such as decode_tile_bank_*, perform_load_tile_bank, and related test helpers/messages to GlyphBank naming. Keep payload interpretation, palette handling, and runtime materialization identical to current behavior. Do not rename TileSize.
File(s):
crates/console/prometeu-drivers/src/asset.rs- affected tests in
crates/console/prometeu-drivers/src/asset.rs - any helper or stress/test utility strings such as
missing_tile_bank
Step 5 - Apply renderer and hardware editorial cleanup
What: Rename only the references that describe the concrete bank artifact inside renderer and hardware documentation/comments.
How:
Update comments, docs, field names, and user-facing/runtime-facing strings so that references to the bank artifact become GlyphBank/glyph bank, while preserving tile terminology for layers, maps, and geometric concepts. Review gfx.rs carefully because it contains both domains.
File(s):
crates/console/prometeu-drivers/src/gfx.rscrates/console/prometeu-drivers/src/hardware.rs- any crate-level docs/comments on the bank artifact path
Step 6 - Rewrite maintained lessons and discussion docs by meaning
What: Migrate maintained lessons and relevant discussion text to the new canonical artifact name.
How:
Update published lessons and maintained discussion artifacts so that references to the concrete graphical bank become GlyphBank, but references to tile layers, tilemaps, grid semantics, or tile geometry remain tile. Use manual review, not blanket replacement.
File(s):
discussion/lessons/DSC-0016-tilemap-empty-cell-semantics/LSN-0022-tilemap-empty-cell-convergence.mddiscussion/lessons/DSC-0001-runtime-learn-legacy-import/LSN-0011-mental-model-gfx.mddiscussion/lessons/DSC-0001-runtime-learn-legacy-import/LSN-0009-mental-model-asset-management.md- any maintained agenda/decision/plan artifacts still intentionally retained and referencing the concrete bank artifact
Criterios de Aceite
- The canonical concrete bank type/module name in runtime code is
GlyphBank. - The canonical asset-bank enum variant is
BankType::GLYPH. - Pool interfaces and concrete-bank runtime helpers use
Glyph*naming consistently. TileLayer,TileMap,ScrollableTileLayer,HudTileLayer, andTileSizeremain unchanged.- No behavior, payload format, or renderer semantics change as part of this migration.
- Tests, helper names, and runtime-facing strings do not keep active mixed
TileBank/GlyphBanknaming for the same artifact. - Maintained lessons and docs use
GlyphBankfor the concrete bank artifact while preservingtilewhere it refers to layer/map/geometric concepts.
Tests / Validacao
Unit Tests
- Update and run unit tests that directly construct or decode the concrete graphical bank path.
- Confirm renamed bank/pool/helper symbols compile without compatibility shims.
Integration Tests
- Run
prometeu-hal,prometeu-drivers, andprometeu-systemtest targets affected by the rename. - Verify asset loading still succeeds for the renamed
BankType::GLYPHpath.
Manual Verification
- Review representative docs and lessons to confirm
GlyphBankonly replaces the concrete bank artifact meaning. - Review
gfx.rsandtile_layer.rsboundaries to confirm tile-domain structures were not accidentally renamed. - Search the repository for residual
TileBankreferences and classify any remaining occurrence as either acceptable historical residue outside scope or a migration miss.
Riscos
- The repository uses
tilein two different domains, so blind search-and-replace is likely to over-rename excluded surfaces. - Renaming the enum variant from
TILEStoGLYPHtouches serialization contracts and can break test fixtures or external packer assumptions if not coordinated. - Moving
tile_bank.rstoglyph_bank.rsmay cause broad import churn across crates and tests. - Historical lessons can easily drift into editorial inconsistency if the rewrite is done mechanically instead of semantically.