prometeu-runtime/discussion/workflow/plans/PLN-0135-validate-games-root-launch-end-to-end.md

3.9 KiB

id ticket title status created ref_decisions tags
PLN-0135 system-run-cart Validate Games Root Launch End To End open 2026-07-03
DEC-0036

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, and PLN-0134 must 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 --run still 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 .pmc validation.
  • No broad performance tuning beyond confirming release-mode smoke behavior.

Execution Method

  1. 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.
  2. Drive the Home selection path through the same action path used by user input, not by calling the cartridge loader directly.
  3. Assert that the machine reaches LoadCartridge or GameRunning, depending on the most stable observable state available in the test harness.
  4. Add a negative case with an invalid candidate and assert it is omitted or reported as a diagnostic without appearing in Home.
  5. Add a regression assertion that no public guest syscall named system.run_cart is required by this path.
  6. Re-run direct boot tests or add a small regression test proving --run test-cartridges/stress-console remains independent from --games-root.
  7. Record manual smoke commands in the relevant spec or developer-facing doc:
    • cargo run --release -p prometeu-host-desktop-winit -- --games-root test-cartridges
    • cargo 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 --run still works.
  • Manual smoke instructions use release mode for realistic interactive speed.
  • Validation evidence shows no guest syscall participates in launch.
  • discussion validate passes.

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 syscalls to 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