3.1 KiB
3.1 KiB
| id | ticket | title | status | created | ref_decisions | tags | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0160 | system-os-cartridge-switch-orchestrator | Add Dummy Boy Visual Switch Test Cartridge | done | 2026-07-05 |
|
|
Briefing
DEC-0039 requires minimum evidence using two distinct test cartridges. The
existing stress cartridge proves execution/logging but is not visually distinct
enough for switch validation. A second cartridge, dummy-boy, must render an
oscillating-color square.
Objective
Add a simple test-cartridges/dummy-boy cartridge that renders a visible square
with changing colors so Game switching can prove visual/session identity.
Dependencies
- Source decision: DEC-0039.
- Can be implemented independently of PLN-0157 through PLN-0159.
- Required before PLN-0161 end-to-end validation.
Scope
- Add
test-cartridges/dummy-boy/manifest.json. - Generate or add
test-cartridges/dummy-boy/program.pbx. - Add empty or minimal assets payload if the loader requires
assets.pa. - Implement Dummy Boy behavior:
- Game cartridge identity distinct from stress;
- deterministic visible square;
- color oscillates across frames;
- no dependency on final launcher UX.
- Add build/generation documentation or tests so the cartridge can be regenerated safely if needed.
Non-Goals
- Do not add final game content.
- Do not add
.pmc. - Do not depend on host screenshots for the first validation unless an existing harness already supports it.
- Do not change stress cartridge behavior.
Execution Method
- Inspect the stress cartridge and any PBX generator tooling:
test-cartridges/stress-console;crates/tools/pbxgen-stress;- bytecode assembler helpers in
crates/console/prometeu-bytecode.
- Choose the smallest maintainable generator path:
- extend existing PBX generator if appropriate; or
- add a focused
pbxgen-dummy-boytool; or - add deterministic generated PBX with source instructions.
- Create
manifest.jsonwith uniqueapp_id, titleDummy Boy, Game mode, and version. - Generate
program.pbxthat renders the square and advances color over frames. - Add tests or smoke checks that the cartridge is discoverable by games-root discovery.
Acceptance Criteria
test-cartridges/dummy-boyexists and loads as a Game cartridge.- Dummy Boy has a unique
app_idand title distinct from Stress. - Dummy Boy renders a visible square.
- Square color changes deterministically over time.
- Games-root discovery sees both Stress and Dummy Boy.
- Existing stress cartridge remains unchanged.
Tests
cargo test -p prometeu-halcargo test -p prometeu-systemcargo test -p prometeu-firmware- Run any cartridge generator tests added by this plan.
- Add or update tests for games-root discovery including Dummy Boy.
Affected Artifacts
test-cartridges/dummy-boy/manifest.jsontest-cartridges/dummy-boy/program.pbxtest-cartridges/dummy-boy/assets.paif requiredcrates/tools/*cartridge generator tooling if neededcrates/console/prometeu-system/src/services/game_library.rstests if needed