feat(m6): one-click install + apply controls on Environment page — 0.10.0
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>
This commit is contained in:
@@ -30,7 +30,7 @@ class GovernorTests(unittest.TestCase):
|
||||
def test_powersave_is_warning(self):
|
||||
f = gameenv.evaluate_governor({"powersave"})
|
||||
self.assertEqual(f.severity, "warning")
|
||||
self.assertIn("cpupower", f.suggestion)
|
||||
self.assertEqual(f.fix, "cpu_governor") # offers the live Apply dropdown
|
||||
|
||||
def test_dynamic_is_info(self):
|
||||
self.assertEqual(gameenv.evaluate_governor({"schedutil"}).severity, "info")
|
||||
@@ -43,7 +43,7 @@ class SwappinessTests(unittest.TestCase):
|
||||
def test_high_is_info_with_suggestion(self):
|
||||
f = gameenv.evaluate_swappiness(60)
|
||||
self.assertEqual(f.severity, "info")
|
||||
self.assertIn("swappiness", f.suggestion)
|
||||
self.assertEqual(f.fix, "swappiness") # offers the live Apply dropdown
|
||||
|
||||
def test_low_is_ok(self):
|
||||
self.assertEqual(gameenv.evaluate_swappiness(10).severity, "ok")
|
||||
|
||||
Reference in New Issue
Block a user