Some checks failed
Intrepid/Prometeu/Runtime/pipeline/pr-master There was a failure building this commit
3.9 KiB
3.9 KiB
| id | ticket | title | status | created | ref_decisions | tags | |
|---|---|---|---|---|---|---|---|
| PLN-0135 | system-run-cart | Validate Games Root Launch End To End | done | 2026-07-03 |
|
Briefing
PLN-0132 through PLN-0134 specify, discover, display, and launch games
from a local games root. This plan closes the slice by adding end-to-end
validation evidence and manual smoke instructions for the product behavior the
user wants: point the SO at a directory, click a listed game, and boot it.
Objective
Prove the complete --games-root -> Home list -> click -> LoadCartridge -> GameRunning path while preserving direct --run boot and the absence of
userland run_cart.
Dependencies
- Source decision:
DEC-0036. PLN-0132,PLN-0133, andPLN-0134must be complete.- Existing test cartridge fixtures, especially
test-cartridges/stress-console.
Scope
- Add automated integration coverage for the full games-root Home launch path where the existing host/firmware test seams allow it.
- Add or document a minimal local games-root fixture using existing directory cartridges.
- Validate invalid-candidate omission at the end-to-end boundary.
- Validate direct
--runstill works after games-root wiring. - Capture manual smoke-test commands for release-mode functional verification.
Non-Goals
- No new product UI polish.
- No screenshot automation unless the existing test harness already supports it cleanly.
- No return-to-Home after a running Game.
- No Game A -> Home -> Game B orchestration.
- No
.pmcvalidation. - No broad performance tuning beyond confirming release-mode smoke behavior.
Execution Method
- Add an integration-style firmware or host test that constructs a games root with a valid Game directory cartridge and boots to Hub/Home with that root.
- Drive the Home selection path through the same action path used by user input, not by calling the cartridge loader directly.
- Assert that the machine reaches
LoadCartridgeorGameRunning, depending on the most stable observable state available in the test harness. - Add a negative case with an invalid candidate and assert it is omitted or reported as a diagnostic without appearing in Home.
- Add a regression assertion that no public guest syscall named
system.run_cartis required by this path. - Re-run direct boot tests or add a small regression test proving
--run test-cartridges/stress-consoleremains independent from--games-root. - Record manual smoke commands in the relevant spec or developer-facing doc:
cargo run --release -p prometeu-host-desktop-winit -- --games-root test-cartridgescargo run --release -p prometeu-host-desktop-winit -- --run test-cartridges/stress-console
Acceptance Criteria
- Automated tests cover a valid games-root Home launch path.
- Automated tests cover invalid candidate omission or diagnostics at the end-to-end boundary.
- Automated or documented validation proves direct
--runstill works. - Manual smoke instructions use release mode for realistic interactive speed.
- Validation evidence shows no guest syscall participates in launch.
discussion validatepasses.
Tests
- Run
cargo test -p prometeu-system. - Run
cargo test -p prometeu-firmware. - Run
cargo test -p prometeu-host-desktop-winit. - Run
cargo test -p prometeu-hal syscallsto keep the removed syscall surface guarded. - Manually smoke test:
cargo run --release -p prometeu-host-desktop-winit -- --games-root test-cartridges. - Manually smoke test:
cargo run --release -p prometeu-host-desktop-winit -- --run test-cartridges/stress-console. - Run
discussion validate.
Affected Artifacts
crates/console/prometeu-system/crates/console/prometeu-firmware/crates/host/prometeu-host-desktop-winit/crates/console/prometeu-hal/src/syscalls/tests.rs- Runtime specs or developer docs containing smoke commands
discussion/workflow/plans/PLN-0135-validate-games-root-launch-end-to-end.md