feat: complete Steam execution

This commit is contained in:
2026-07-20 15:51:11 -04:00
parent bc0090c63d
commit 7d1077c0cb
13 changed files with 438 additions and 83 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ R-014,12,Pegasus adapter tests,post-v1
R-015,8,Lean and Ready policy tests,planned
R-016,7,Phase 1 contracts Phase 2 native and Phase 3 Steam capability tests,in-progress
R-017,8,window-switching acceptance tests,planned
R-018,4,Phase 1 policy and Phase 2 owned native-process lifecycle tests,in-progress
R-018,4,Phase 1 policy Phase 2 owned native-process lifecycle tests and Phase 4 provider-handoff evidence,in-progress
R-019,15,vendor launcher tests,post-v1
R-020,6,Bluetooth CLI and TUI tests,planned
R-021,11,installer destructive VM tests,planned
1 requirement_id owner_phase initial_evidence status
16 R-015 8 Lean and Ready policy tests planned
17 R-016 7 Phase 1 contracts Phase 2 native and Phase 3 Steam capability tests in-progress
18 R-017 8 window-switching acceptance tests planned
19 R-018 4 Phase 1 policy and Phase 2 owned native-process lifecycle tests Phase 1 policy Phase 2 owned native-process lifecycle tests and Phase 4 provider-handoff evidence in-progress
20 R-019 15 vendor launcher tests post-v1
21 R-020 6 Bluetooth CLI and TUI tests planned
22 R-021 11 installer destructive VM tests planned
+28
View File
@@ -0,0 +1,28 @@
# Phase 4 Steam execution evidence
- Date: 2026-07-20
- Requirement IDs: R-005, R-016, R-018, R-024
- Phase/gate: phase 4 / Steam execution
- Scope: typed native and Flatpak Steam launch plans, configuration provenance,
argument-safe client submission, private logs, structured errors, and representative
native plus Proton execution
- Exclusions: direct executable launch, provider-client ownership, strong game-lifetime
tracking, automatic Steam shutdown, and minimal-session behavior
- Host: Linux 7.1.4-arch1-1; NVIDIA GeForce RTX 5070 using the `nvidia` driver;
Steam 1.0.0.87-1
- Commands: `kiln launch steam:105600 --dry-run --json`; `kiln launch steam:105600
--json`; `kiln launch steam:12810 --dry-run --json`; `kiln launch steam:12810
--json`; `make check`
- Expected result: Kiln emits a typed `steam -silent -applaunch <appid>` plan, submits
it without shell interpolation, returns promptly with unknown lifecycle confidence,
launches one native and one Proton title through Steam, and reports missing clients
as structured failures
- Observed result: Terraria App ID 105600 loaded through Steam Linux Runtime and its
native `Terraria.bin.x86_64`; Overlord II App ID 12810 loaded through
`GE-Proton11-1` and `Overlord2.exe`; both returned cleanly after user exit
- Safety and cleanup: Steam was stopped before the temporary compatibility change and
final restore. The original `config.vdf` was restored byte-for-byte with SHA-256
`9251c6dbf08602857399916808208bd58dd415b5d5b000acc01f1c9044d89c37`, mode and
ownership unchanged, and Steam restarted
- Automated result: 61 tests passed with the complete local gate
- Result: pass
+16
View File
@@ -0,0 +1,16 @@
# Phase 4 status
Phase 4 is complete.
| Exit condition | Evidence | Status |
|---|---|---|
| Steam launch plans | Typed native and Flatpak unit tests | Passed |
| Safe client submission | Shell-free CLI integration test with private logs | Passed |
| Failure handling | Structured missing-client integration assertion | Passed |
| Native representative | Terraria App ID 105600 through Steam Linux Runtime | Passed |
| Proton representative | Overlord II App ID 12810 through GE-Proton11-1 | Passed |
| Host cleanup | Original Steam config restored byte-for-byte; Steam restarted | Passed |
| Repository gates | `make check` | Passed |
Full provider-client lifecycle tracking remains later session-hardening work. Phase 5
can now prove the minimal compositor, terminal, login/session, and recovery path.
+1 -1
View File
@@ -33,4 +33,4 @@ This directory is the starting point for project planning and later implementati
## Integrity note
The numbered topic files are the current v0.22 source of truth. `99_FULL_SPEC_ARCHIVE.md` preserves the complete monolithic v0.4 specification for historical and integrity checks, so it no longer matches the evolving numbered files byte-for-byte.
The numbered topic files are the current v0.23 source of truth. `99_FULL_SPEC_ARCHIVE.md` preserves the complete monolithic v0.4 specification for historical and integrity checks, so it no longer matches the evolving numbered files byte-for-byte.
+2 -2
View File
@@ -2,9 +2,9 @@
> Performance-first Linux gaming appliance with a unified launcher backend
| **Status** | Implementation — phases 03 complete; phase 4 ready |
| **Status** | Implementation — phases 04 complete; phase 5 ready |
|--------------------|----------------------------------------------------|
| **Version** | 0.22 |
| **Version** | 0.23 |
| **Created** | July 17, 2026 |
| **Document type** | Living project specification |
| **Current target** | Purpose-built, performance-focused gaming distribution |
@@ -145,6 +145,7 @@
| 0.20 | 2026-07-18 | Replaced the unused hosted-CI plan with mandatory local verification, made Rust 1.97.1 the minimum and reviewed compiler, and scheduled closure of the remaining configuration and adversarial-test gaps before phase 3. |
| 0.21 | 2026-07-18 | Closed the pre-phase-3 gaps with local configuration defaults, validation, explanation and safe edits; native launch-plan configuration integration; removal of the obsolete file-lock dependency; bounded redacted process logs; and expanded adversarial tests. |
| 0.22 | 2026-07-18 | Completed Phase 3 with bounded read-only Steam library and app-manifest parsing, stable App ID identities, provider-scoped CLI discovery, adversarial fixtures, and a non-launching check against the local Steam installation. |
| 0.23 | 2026-07-20 | Completed Phase 4 with typed native and Flatpak Steam launch plans, shell-free client submission, structured failures, and real native Terraria plus GE-Proton Overlord II acceptance tests. |
## 21. Reference notes