Files
rigdoctor/docs/MODULES.md
T
jessey 2ccf7ca50c Add desktop GUI (M10): modern dark dashboard
PySide6/Qt front-end over the stdlib sensor core (only gui/ imports Qt).
- sidebar navigation + stacked pages (Dashboard live; Logs/Health/Inventory
  placeholders for M3-M5)
- live dashboard: circular gauges (GPU temp/load, CPU temp, memory) plus
  collapsible per-subsystem cards with progress bars and metric rows
- background sampling thread -> Qt signal so the UI stays responsive
- temperature colors: icey-blue (cold) -> green -> orange -> red (hot)
- dark theme via QSS + Fusion

Supporting changes:
- cpu source: order temps as package, then cores numerically (fixes CLI too)
- render: expose format_value/metric_label, shared by CLI and GUI
- cli: `rigdoctor gui` (lazy import; prints install hint if PySide6 missing)
- pyproject: rigdoctor-gui script + [gui] extra (PySide6)
- gitignore: *.egg-info/, build/, dist/

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 16:53:32 +02:00

3.8 KiB
Raw Permalink Blame History

RigDoctor — Module Catalog (DRAFT v0.2)

Status: not started · 🟦 designing · 🟨 in progress · done

Final module set (D14). M7 (stress/repro) was dropped (D7). M10/M11 are the GUI and tray modules (D10/D11). GPU scope reads "all (NVIDIA first)" — NVIDIA is implemented first, others via the vendor abstraction (D4).

ID Module Bundle Key deps GPU scope Priority Status
M1 Sensor core Essential none (nvidia-smi, sysfs) all (NVIDIA first) P0
M3 Crash-capture logger Essential none (opt: smartmontools) all (NVIDIA first) P0
M4 Health report (log scan) Essential none (opt: smartmontools) all (NVIDIA first) P0
M2 Live monitor (TUI) Monitoring none (stdlib curses) all P1
M8 Alerting Monitoring libnotify (opt) all P2
M5 System inventory Diagnostics none (opt: lm-sensors, dmidecode) all P1
M6 Gaming env checks Diagnostics none all P2
M10 Desktop GUI Desktop UI python3-pyside6 all P2 🟨
M11 Tray / menu-bar applet Desktop UI python3-pyside6 (+ AppIndicator on GNOME) all P2
M9 Installer (meta) none all P1
M7 Stress / repro dropped (D7)

Notes per module

  • M1 Sensor core — the foundation everything else samples from. Stdlib-only. Abstracts NVIDIA/AMD/Intel + hwmon behind one interface; ship the NVIDIA + hwmon path first.
  • M3 Crash-capture logger — the highest-value piece for the seed use case. fsync per sample; GPU-lost detection via query timeout; bounded rotation; systemd --user service with a user-selectable trigger mode (always-on / game-launch / manual — D6).
  • M4 Health report — turns scattered logs into a prioritized, plain-language findings list with suggested fixes (read-only, D9). Reuses M1 for a live snapshot. Also powers the guided diagnostic session (with M3): pick a game → focused capture → scan → findings (see SPEC §4).
  • M2 Live monitor — depends on M1; the terminal "HWMonitor for Linux" face. Stdlib-only.
  • M5 / M6 Diagnostics — inventory export + gaming-env checks; M6 flags risky settings and suggests the fix command but does not apply it (D9).
  • M8 Alerting — threshold/event notifications; integrates with the tray applet (M11).
  • M10 Desktop GUI — PySide6 graphical front-end over the core engine (dashboard, log browser, report viewer, logger controls). Optional; adds the Qt dependency. Bootstrapped early (ahead of its Phase 4 slot) at the user's request: dark-themed window with sidebar nav and a live dashboard (circular gauges + collapsible per-subsystem cards, temperature- colored values); Logs/Health/Inventory are placeholders until M3M5.
  • M11 Tray appletQSystemTrayIcon menu-bar applet. Dropdown shows live M1 readouts (CPU temp, GPU temp, memory used/total, status dot) and is led by a Run Diagnostic action (the guided diagnostic session), plus Open dashboard / Start-Stop recording / Snapshot / Quit (D13). Optional; shares the Qt dependency with M10.
  • M9 Installer — interactive wizard layered on the .deb (D8); apt-first dependency resolution; enables the logger service and trigger mode.

Bundles (final — D14)

  • Essential: M1 + M3 + M4 (the MVP, NVIDIA-only — D5)
  • Monitoring: M2 + M8
  • Diagnostics: M5 + M6
  • Desktop UI: M10 + M11 (adds PySide6)

MVP candidate — confirmed (D5)

M1 + M3 + M4 (Essential), NVIDIA-only, CLI-first. Gives a working tool that captures the GPU crash and explains the logs — deliverable before the installer, GUI/tray, or multi-vendor work.