fix(games): let the GUI Add-game dialog link a launcher & log folder #47
@@ -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
|
(`MAJOR.MINOR.PATCH`, pre-1.0). `__version__` and `pyproject.toml` must match the git
|
||||||
release tag (so the auto-updater, D18, can compare versions).
|
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
|
## [0.42.0] - 2026-05-29
|
||||||
### Added
|
### Added
|
||||||
- **Detect hard freezes that log no Xid.** The kernel-log scanner caught Xid codes, OOM, panic,
|
- **Detect hard freezes that log no Xid.** The kernel-log scanner caught Xid codes, OOM, panic,
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "rigdoctor"
|
name = "rigdoctor"
|
||||||
version = "0.42.0"
|
version = "0.43.0"
|
||||||
description = "Modular hardware monitoring & crash diagnostics for Linux gamers."
|
description = "Modular hardware monitoring & crash diagnostics for Linux gamers."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
"""RigDoctor — modular hardware monitoring & crash diagnostics for Linux gamers."""
|
"""RigDoctor — modular hardware monitoring & crash diagnostics for Linux gamers."""
|
||||||
|
|
||||||
__version__ = "0.42.0"
|
__version__ = "0.43.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user