docs(runner-ui): ADR-0006 accepted — PySide6 desktop cockpit, phased (#263) - #271
Merged
Conversation
…263) Owner signed off AC1 of epic #262 on 2026-07-24, overriding the spike's localhost-web-app recommendation. ADR-0006 flips Proposed -> Accepted with the owner's six decisions: 1. UI: native Python desktop app on PySide6 (Qt) — QtCharts + embedded ConPTY terminal in one native window; web app rejected. 2. Charter expanded to a Claude Code "cockpit": runner fleet control + embedded terminal + live monitoring + usage/pricing/tokens (grounded in local ~/.claude/projects/**/*.jsonl transcripts, no external API). 3. Stack: CPython >=3.12 + uv (committed uv.lock); deps PySide6/pywinpty/ psutil (+ stdlib subprocess); fastapi/uvicorn dropped. 4. Control: shell-out only + WSL2 two-way interop + PAT-free read-only default (proven); per-action UAC elevation for Windows NSSM mutations. 5. Code home: in-repo tools/runner-ui/. 6. Phasing: Wave1 shell+fleet / Wave2 usage-cost-token / Wave3 terminal. Context/grounded-facts and the verbatim AC2 cross-platform proof are kept. The throwaway spike proof (tools/runner-ui/spike/) is removed — spike code never merges; its output survives verbatim in the ADR Evidence section. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SATRHKa6mDHDuirhP6QuwL
This was referenced Jul 24, 2026
Closed
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #263
Owner signed off epic #262 AC1 on 2026-07-24. This flips ADR-0006 from Proposed to Accepted, recording the owner's six FINAL decisions (the spike's localhost-web-app recommendation is overridden):
~/.claude/projects/**/*.jsonltranscripts x published rates — no external API, no invented data).uv(committeduv.lock); deps PySide6 / pywinpty / psutil (+ stdlibsubprocess);fastapi/uvicorndropped. Python-on-Windows provisioning is a build prerequisite.tools/runner-ui/.Preserved verbatim: the Context/grounded-facts and the AC2 cross-platform probe output. Security invariant intact: cockpit reads service state only, never
~/.forge/runner.env, never surfaces the PAT.Also removes the throwaway
tools/runner-ui/spike/proof code (it had been carried onto main by an earlier squash) — spike code never merges; its output survives verbatim in the ADR Evidence section. Main now carries only the ADR.md.Verification
Docs-only change (one ADR
.mdedited; throwaway spike proof deleted). No runtime surface to exercise. ASCII-safe (no smart quotes / em-dashes) so PowerShell 5.1 readers are fine. No tokens/PATs pasted anywhere — nothing for secret-scan to trip on. CI on self-hosted runners: actionlint / plugin-validate / test / secret-scan.🤖 Generated with Claude Code