Remove the per-page "Run with admin" buttons. At launch the GUI asks for the
password once (pkexec) and collects root-only data (SMART + dmidecode board/
BIOS/RAM) via the internal `collect-priv` command, caching it for the session;
Health and Inventory read that cache so they always show the full picture.
- core/elevation.py: pkexec collect + session cache
- cli: hidden `collect-priv` command (SMART + dmidecode -> JSON)
- health/inventory: use the elevation cache when present, else non-root
- main_window: collect at launch (config elevate_on_launch), then refresh
Health/Inventory; falls back silently if cancelled/unavailable
- config: elevate_on_launch (default true)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The changelog dialog and update prompt showed raw Markdown (literal #, **)
instead of rendered styling, making notes hard to read. Render the in-app
changelog with QTextEdit.setMarkdown() and the update prompt's notes as rich
text (Markdown -> HTML via QTextDocument).
Closes#1
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Force an immediate version check instead of waiting for the 30-minute poll.
Reuses the background update check; no-op while awaiting restart after an update.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The update prompt and changelog dialogs inherited the app's light text color on a
default light Fusion background, making them unreadable. Style QDialog/QMessageBox
with the dark theme and readable text.
First milestone release — a complete, installable, self-updating RigDoctor:
live monitoring, crash capture + health report, desktop GUI, user-local
install/uninstall, and token-gated self-update with real release notes.
- feat(gui): in-app uninstaller — Setup "Uninstall RigDoctor" button and
`rigdoctor uninstall [--purge]`; removes venv/launchers/desktop entry
(detached so it can delete its own venv), with optional purge of
settings/token/logs (core/uninstall.py)
- feat(gui): in-app changelog — sidebar "Changelog" link listing release
history fetched from the update server (updates.list_releases)
- chore: versioning rules + automation (D21) — git-cliff --bumped-version,
packaging/bump.sh, cliff.toml [bump] (pre-1.0: breaking -> minor)
- chore(release): stamp 0.1.0; milestone policy recorded in D19
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- feat(ci): set each Gitea release body from the matching CHANGELOG section
(was hardcoded "Automated release for…")
- feat(updater): show "What's new" — release notes dialog before applying (GUI)
and in `rigdoctor update` (CLI); fetch_latest/update_state now return notes
- feat(gui): "Restart now" button relaunches the app after an update is applied
- fix(packaging): build the self-extracting .run with a pure-Python extractor
(packaging/make_run.py) instead of makeself, so it attaches to every release
(it was silently skipped before)
- chore: adopt Conventional Commits + git-cliff (cliff.toml, packaging/
changelog.sh) for changelog generation going forward (D20)
- chore(gui): drop internal module refs (M4, M5, …) from Setup descriptions
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- GUI re-checks for new releases while running (every update_check_minutes,
default 30; 0 disables), so a newly published version is detected without a
restart; re-checks pause after an update is applied (awaiting restart)
- Health page "Run with admin" button: runs all checks incl. root-only SMART
via `pkexec rigdoctor report --json`, so the full report is available from the
UI (cancel keeps prior results)
- version 0.0.8, CHANGELOG
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Display v<version> (from __version__) beneath the Live indicator in the sidebar.
Bump version to 0.0.3 and update CHANGELOG.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>