Scope M12 down to a single shared-terminal mode (D23, amends D16):
- Share page rewritten terminal-only: host shares their PTY/shell; guest watches
and may type only if the host ticks "Allow the guest to type" (read-only
otherwise — the D9 consent exception). Terminal is larger; either side can pop
it full-screen (Esc to exit).
- Removed the read-only stats view + HTTP server (core/share.py) and the
`rigdoctor share serve` CLI; deleted their tests.
- Docs: D23 added; SPEC/MODULES/ROADMAP updated (M12 → done, terminal-only).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Make the environment report actionable, not just advisory.
Install (reuses M9 installer):
- Add GameMode, MangoHud, cpupower to the component catalog (so they also show
on the Setup page); catalog.by_id() lookup.
- "tool not installed" findings (GameMode/MangoHud) get an Install button.
Apply runtime-reversible tunables (D22, realizing the D9 consent-gated milestone):
- core/fixes.py: dropdown of live options + Apply for CPU governor, NVIDIA
persistence, PCIe ASPM policy, vm.swappiness, THP. One pkexec command each,
no reboot, reverts on reboot; chosen value validated against live options;
writes go to sysfs/procfs/nvidia-smi, never GRUB. GRUB/mitigations stay
suggestion-only.
- Finding gained optional action (install) + fix (apply) ids; shared
finding_card renders the matching control; Environment page wires both and
re-checks after a change.
Tests for fixes (parse, command builders, value validation, gameenv wiring).
Docs: D22 added (amends D9); SPEC/MODULES/ROADMAP updated. 0.9.0 -> 0.10.0.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>