• v0.43.0
    release / test (push) Successful in 12s
    release / release (push) Successful in 19s
    Stable

    jessey released this 2026-05-29 15:01:01 +00:00 | 0 commits to main since this release

    Added

    • GPU stress test + close thermal monitoring (rigdoctor stress, and a "Stress test…" button
      on System Health). Runs a GPU load and samples sensors at a high rate (default 0.5 s), then
      reports per-metric min/avg/peak, how long the core spent above each temperature threshold,
      power vs the limit, throttling (decoded from the NVML clocks-event bitmask), and any GPU fault
      (Xid / VA-space freeze / a query-timeout hang) that hit during the window — the on-demand way to
      reproduce load-correlated crashes. The load comes from an explicit --command (a game or a tool
      like gpu-burn), an auto-detected loader (gpu-burn/vkmark/glmark2/vkcube), or monitor-only when
      none is found (you launch the game; it tracks temps while you play).
    • Drive health & wear in the health report. A new core/drives.py parses the full
      smartctl --json for every drive into prioritized findings: the SMART verdict, a derived
      life-left % (NVMe percentage_used or the SATA wear-leveling attribute), power-on hours,
      data written (TBW), temperature, and the early-failure predictors (reallocated / pending /
      offline-uncorrectable sectors, NVMe media errors, low available spare). Replaces the old
      pass/fail-only SMART check; flows through the same elevated path (GUI launch / sudo rigdoctor report), degrading to per-drive "needs root" notes unprivileged.

    Fixed

    • GUI "Add game…" can now link a launcher. The dialog only asked for a name, so a custom
      game (e.g. SPT) couldn't be given its launch command or log folder from the app — those were
      CLI-only, leaving it unlaunchable from the GUI. It's now a proper form: name + an optional
      launch command/script (with a Browse… file picker) + an optional log folder (auto-detected
      from the script's folder when left blank).
    Downloads
  • v0.42.0
    release / test (push) Successful in 13s
    release / release (push) Successful in 17s
    Stable

    jessey released this 2026-05-29 14:11:55 +00:00 | 4 commits to main since this release

    Added

    • Detect hard freezes that log no Xid. The kernel-log scanner caught Xid codes, OOM, panic,
      MCE, PCIe AER, thermal events, and amdgpu resets — but a crash that logs no Xid slipped
      through. It now flags the NVIDIA open-kernel-module VA-space mapping fault (gpu_vaspace.c
      / dmaAllocMapping assertions, NVKMS GEM-allocation failures) — a driver-internal error that
      can storm for minutes and end in a freeze without the GPU ever "falling off the bus" (distinct
      from Xid 79). A new check_nvidia_module() notes when the open module (nvidia-*-open) is
      loaded — the context behind these faults — and a new ai_knowledge entry lets the assistant
      tell the no-Xid freeze apart from the Xid 79 hardware drop.
    • Add games no launcher reports (e.g. SPT). A user-authored custom-games list
      (core/customgames.py) shows alongside Steam/Lutris/Heroic in rigdoctor games and the GUI
      ("Add game…"), for standalone mod launchers (Single-Player Tarkov), itch.io downloads, or any
      hand-installed game. Each entry can carry a launch command and a log directory:
      rigdoctor games add "SPT" --command .../tarkov.sh (a sibling logs/ is auto-detected),
      rigdoctor games play "SPT" launches it under the crash-capture wrapper (tagged with the real
      name, not the script's), and the diagnostic now tails the game's own logs — SPT's
      server/launcher logs — alongside the kernel log so the analysis sees what the game logged
      before the freeze.
    Downloads
  • v0.41.0
    release / test (push) Successful in 12s
    release / release (push) Successful in 14s
    Stable

    jessey released this 2026-05-25 16:41:56 +00:00 | 9 commits to main since this release

    Added

    • Import a crash dump (.dmp) and explain it with AI. The Games page gains an
      "Import crash dump…" button (shown once an AI provider is configured) that opens a Windows
      minidump — the kind a Proton/Wine game writes when it hard-crashes — parses it, and hands the
      result to the opt-in AI assistant (D24; cloud sends still ask first). A new stdlib
      core/minidump.py reads the MDMP streams with struct (no new deps): the exception / crash
      reason (e.g. access violation 0xC0000005), the faulting module (which DLL the crash
      address lands in — nvwgf2umx.dll, d3d11.dll, an anticheat, the game's own .exe…), OS/CPU,
      and the loaded-module list. If minidump_stackwalk (Breakpad) or minidump-stackwalk
      (rust-minidump) is on PATH, its fuller report is appended best-effort. The model is told the
      dump came from a Windows process under Proton, so fixes stay Linux/Proton-side (Proton version,
      DXVK/VKD3D, driver, launch options) — never Windows admin/registry steps. New ai_knowledge
      facts cover the common exception codes and faulting-module signatures. CLI parity:
      rigdoctor ai dump <file>.
    Downloads
  • v0.40.0
    release / test (push) Successful in 13s
    release / release (push) Successful in 16s
    Stable

    jessey released this 2026-05-22 15:01:20 +00:00 | 12 commits to main since this release

    Added

    • RAM speed / XMP-EXPO check. Inventory now shows each module's configured speed and, when it's
      below the rated speed, the rating (e.g. 4800 MT/s (rated 5600)); System Health flags it
      ("RAM at 4800 MT/s (rated 5600 MT/s)") with the fix — enable XMP/EXPO in BIOS. With the profile
      off, dmidecode only reports the JEDEC base, so the rated speed is read from both dmidecode and
      the part number (matched against known DDR5 speed grades, so no false positives). Needs dmidecode
      (root / launch elevation). Completes the "underperforming hardware" trio with PCIe gen + refresh.
    Downloads
  • v0.39.0
    release / test (push) Successful in 12s
    release / release (push) Successful in 15s
    Stable

    jessey released this 2026-05-22 14:57:08 +00:00 | 14 commits to main since this release

    Added

    • Displays in the Inventory. A new core/displays.py lists each connected monitor with its
      resolution and current/max refresh — e.g. DP-1 · Samsung LC34G55T → 3440x1440 @ 165 Hz. Reads
      GNOME's Mutter DisplayConfig over D-Bus (works on X11 and Wayland), falling back to xrandr
      on other X11 desktops.
    • System Health flags monitors below their max refresh. If a monitor supports a higher refresh
      at its current resolution (e.g. a 165 Hz panel set to 60 Hz — an easily-missed gaming setting),
      Health reports it with the fix (raise it in Display settings). Max is computed at the current
      resolution, so it never suggests dropping resolution.
    Downloads
  • v0.38.0
    release / test (push) Successful in 13s
    release / release (push) Successful in 15s
    Stable

    jessey released this 2026-05-22 14:46:40 +00:00 | 20 commits to main since this release

    Added

    • PCIe link in the Inventory. Each NVMe drive now shows its negotiated PCIe link next to the
      model — e.g. Samsung SSD 980 PRO 1TB (931.5G) · PCIe Gen4 x4 — read from sysfs
      (current/max_link_speed + width). If a drive negotiates below its capability (a slower M.2
      slot, lane-sharing, or a downtrain) it's flagged: PCIe Gen3 x4 (capable of Gen4 x4). So you
      can confirm a Gen4 SSD is actually in a Gen4 slot. (SATA disks show no PCIe link.)
    Downloads
  • v0.37.1
    release / test (push) Successful in 11s
    release / release (push) Successful in 16s
    Stable

    jessey released this 2026-05-22 14:41:11 +00:00 | 24 commits to main since this release

    Fixed

    • rigdoctor update now uses the right method for how RigDoctor was installed. It detects
      apt (.deb), pip (venv/.run), or source installs (updates.install_kind()); only pip
      installs self-update in place. An apt install no longer fails with "No module named pip" —
      it (and the GUI Update button) shows sudo apt update && sudo apt install --only-upgrade rigdoctor; a source checkout points to git pull.
    Downloads
  • v0.37.0
    release / test (push) Successful in 12s
    release / release (push) Successful in 16s
    Stable

    jessey released this 2026-05-22 14:30:54 +00:00 | 26 commits to main since this release

    Added

    • Version footer — a footer across the bottom of the window shows RigDoctor v<version> in
      the bottom-right (moved out of the sidebar).

    Fixed

    • Pages scroll when content doesn't fit, and the window is no longer pinned to the tallest
      page's height.
      Long pages (Settings, Tuning, …) get a scrollbar when too tall — so controls
      like Uninstall are always reachable — and the window can now be resized smaller than the screen
      (min height dropped from "taller than the screen" to ~600px). Pages that manage their own
      scroll/fill (Dashboard, System Health, Inventory, Share) are unchanged.
    Downloads
  • v0.36.1
    release / test (push) Successful in 12s
    release / release (push) Successful in 16s
    Stable

    jessey released this 2026-05-22 13:50:23 +00:00 | 30 commits to main since this release

    Fixed

    • rigdoctor gui printed the wrong fix when PySide6 is missing — it suggested the non-existent
      python3-pyside6 package. Now it names the real split modules
      (python3-pyside6.qt{widgets,gui,websockets,svg} + python3-pyte).
    Downloads
  • v0.36.0
    release / test (push) Successful in 12s
    release / release (push) Successful in 16s
    Stable

    jessey released this 2026-05-22 13:39:57 +00:00 | 35 commits to main since this release

    Fixed

    • .deb now installs all dependencies automatically — no manual tool install. The previous
      Recommends: python3-pyside6 named a package that doesn't exist on Debian/Ubuntu (PySide6 is
      split per module), so apt silently skipped it and the GUI wouldn't start. Now it Recommends the
      actual modules the GUI imports — python3-pyside6.qt{widgets,gui,websockets,svg} + python3-pyte.

    Changed

    • apt install rigdoctor sets up the whole toolset. The .deb also Recommends the optional
      diagnostic/gaming tools (smartmontools, lm-sensors, dmidecode, pciutils, libnotify-bin,
      libsecret-tools, gamemode, mangohud) so they install by default — users never hand-install
      tools. cpupower is a Suggests (kernel-tied); --no-install-recommends still gives CLI-only.
    Downloads