Files
rigdoctor/CHANGELOG.md
T
jessey 09cbc57b8c
release / release (push) Successful in 13s
feat: in-app uninstaller, changelog viewer, version automation (0.1.0)
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>
2026-05-21 18:42:29 +02:00

119 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
All notable changes to RigDoctor are recorded here. Format follows
[Keep a Changelog](https://keepachangelog.com/); versioning is SemVer-style
(`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.1.0] - 2026-05-21
_First milestone release — a complete, installable, self-updating RigDoctor: live monitoring,
crash capture + health report, desktop GUI, user-local install/uninstall, and updates._
### Added
- **In-app uninstaller**: "Uninstall RigDoctor" button on the Setup page (and
`rigdoctor uninstall [--purge]`) — removes the venv, launchers, and desktop entry, with an
option to also wipe settings/token/logs. Runs detached so it can delete its own venv.
- **In-app changelog**: a "Changelog" link in the sidebar opens the release history (tags +
notes) fetched from the update server.
## [0.0.10] - 2026-05-21
### Added
- **"Restart now" button** after a successful in-app update — relaunches RigDoctor for you
instead of asking you to restart manually.
- **Real release notes**: CI now sets each Gitea release's body from the matching CHANGELOG
section (instead of "Automated release for…"), and the updater shows **"What's new"** — a
notes dialog before applying (GUI) and in `rigdoctor update` (CLI).
### Changed
- Setup page / `rigdoctor install`: dropped internal module references (M4, M5, …) from the
component descriptions — end users don't need them.
- Adopting **Conventional Commits** + **git-cliff** (`cliff.toml`, `packaging/changelog.sh`)
to generate CHANGELOG entries from commit history going forward (D20).
### Fixed
- The self-extracting **`.run` installer** is now built **without makeself** (a pure-Python
self-extractor, `packaging/make_run.py`), so it reliably attaches to every release — it was
silently skipped before because the CI runner couldn't install makeself.
## [0.0.8] - 2026-05-21
### Added
- **Periodic update checks**: the GUI now re-checks for new releases while running (every
`update_check_minutes`, default 30; 0 disables), so a newly published version is detected
without restarting. After applying an update, re-checks stop until restart.
- **"Run with admin" on the Health page**: runs all checks (including root-only SMART) via
`pkexec rigdoctor report --json`, so the full report — not just "SMART needs root" — is
available from the UI.
## [0.0.7] - 2026-05-21
### Added
- **User-local installer** `install.sh` (no root): creates a private venv, links
`rigdoctor`/`rigdoctor-gui` into `~/.local/bin`, and adds a desktop entry. Re-run to
upgrade; `--uninstall` to remove.
- **Self-extracting `.run` installer** via `packaging/make-run.sh` (makeself) — one
download-and-run executable bundling the wheel + `install.sh`; built and attached to each
release by CI.
- **Self-update apply (M13)**: `rigdoctor update` now installs the newer version via
authenticated pip (`rigdoctor[gui] @ git+https://oauth2:<token>@…@<tag>`); the GUI sidebar
"Update to v…" button applies it and prompts to restart. Token is scrubbed from output.
## [0.0.6] - 2026-05-21
### Added
- **Token-gated updates (M13)**: store a Gitea Personal Access Token, **encrypted in the OS
keyring** (Secret Service / GNOME Keyring via `secret-tool`) with a 0600-file fallback.
`rigdoctor login` / `logout` / `update [--check]`; GUI **Setup → Update access** panel
(token field, "Get a token", backend status) and sidebar states (connect / up-to-date /
"Update to v…" / access denied). Updates are gated to accounts on the Gitea server (D18).
- `libsecret-tools` added to the installer catalog (enables encrypted token storage).
### Changed
- D18 update mechanism revised from anonymous public HTTP to **authenticated HTTP (token)**
the Gitea instance requires sign-in for all anonymous access.
## [0.0.5] - 2026-05-21
### Added
- **M9 installer (first cut)**: detects distro / package manager / GPU; a catalog of optional
components (smartmontools, lm-sensors, dmidecode, pciutils, libnotify) with what each
enables; `rigdoctor install [--check] [-y]` installs missing apt packages via pkexec/sudo
with consent; GUI **Setup** tab with one-click install. Fixes the "smartmontools missing"
gap in the health report.
- **Update check (M13, check half)**: on GUI launch the sidebar checks the Gitea releases API
and shows "up-to-date", an "Update to v…" button if a newer release exists, or "update check
unavailable" if the API can't be reached anonymously.
## [0.0.4] - 2026-05-21
### Added
- **M4 health report**: scans kernel logs (NVIDIA Xid incl. 79 "fell off the bus", kernel
panic, OOM, MCE, PCIe AER, thermal, amdgpu reset), SMART health, NVIDIA driver/library
mismatch, journald persistence, and live temps → prioritized plain-language findings with
suggested fixes (read-only, D9).
- CLI `rigdoctor report` (text + `--json`).
- GUI **Health** tab: runs checks in the background; findings shown as severity-colored cards.
- Tests for the journal scanner.
## [0.0.3] - 2026-05-21
### Added
- Show the app version (`v<version>`) in the GUI sidebar.
## [0.0.2] - 2026-05-21
### Added
- **M3 crash-capture logger**: crash-safe JSONL (`fsync` per sample), size-based rotation,
GPU-lost/recovered event markers, atomic status file; `rigdoctor record run|start|stop|
status|report` (foreground `run` is the systemd-ready entrypoint).
- **GUI Recording/Logs page** (M10): start/stop/interval controls, live status, and the
post-crash report — driving the same recorder via shared `core.reccontrol`.
- Shared render helpers (`format_raw`, `format_headline`, `render_summary`) used by CLI + GUI.
- Tests for the crash log (writer, rotation, reader, summary, recorder).
- **Gitea Actions release workflow** (`.gitea/workflows/release.yml`): on push to `main`,
builds wheel + sdist and publishes a Gitea release `v<version>` with the artifacts.
### Changed
- **GUI-first** emphasis (D17): docs reframed; the CLI keeps full parity for headless/SSH.
- CPU core temperatures ordered (package, then core 0, 4, 8, …) at the source — fixes the
CLI ordering too.
- Distribution revised (D8): **user-local self-updating install** is primary, `.deb` optional.
### Planned (docs only)
- M12 session sharing / remote assist (D16); M13 no-root auto-update from the public repo
(D18); versioning/changelog convention (D19).
## [0.0.1] - 2026-05-21
### Added
- Initial release: planning docs and decisions (D1D15); **M1 sensor core** (NVIDIA GPU via
nvidia-smi, CPU via hwmon, memory + DDR5 SPD temps, NVMe); CLI (`snapshot`, `monitor`,
`sources`); and the **M10 desktop GUI** — dark dashboard with circular gauges and
collapsible, temperature-colored cards.