From 8f4824f576e52aa35a9bda8a726d5efc2fc5025e Mon Sep 17 00:00:00 2001 From: Jessey van Offeren Date: Fri, 29 May 2026 16:59:13 +0200 Subject: [PATCH] chore(release): v0.43.0 Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 25 +++++++++++++++++++++++++ pyproject.toml | 2 +- src/rigdoctor/__init__.py | 2 +- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6e6c5b..cbccfec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,31 @@ All notable changes to RigDoctor are recorded here. Format follows (`MAJOR.MINOR.PATCH`, pre-1.0). `__version__` and `pyproject.toml` must match the git release tag (so the auto-updater, D18, can compare versions). +## [0.43.0] - 2026-05-29 +### 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). + ## [0.42.0] - 2026-05-29 ### Added - **Detect hard freezes that log no Xid.** The kernel-log scanner caught Xid codes, OOM, panic, diff --git a/pyproject.toml b/pyproject.toml index 376253b..588623f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "rigdoctor" -version = "0.42.0" +version = "0.43.0" description = "Modular hardware monitoring & crash diagnostics for Linux gamers." readme = "README.md" requires-python = ">=3.11" diff --git a/src/rigdoctor/__init__.py b/src/rigdoctor/__init__.py index 2dcfd8b..f894a8d 100644 --- a/src/rigdoctor/__init__.py +++ b/src/rigdoctor/__init__.py @@ -1,3 +1,3 @@ """RigDoctor — modular hardware monitoring & crash diagnostics for Linux gamers.""" -__version__ = "0.42.0" +__version__ = "0.43.0"