diff --git a/CHANGELOG.md b/CHANGELOG.md index 580281c..8455224 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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.3.1] - 2026-05-21 +### Fixed +- Changelog/release notes now **render Markdown** instead of showing raw `#`/`**` markup — + the in-app changelog uses `QTextEdit.setMarkdown()` and the update prompt renders notes as + rich text (closes #1). + ## [0.3.0] - 2026-05-21 ### Added - **System inventory (M5)**: CPU, GPU (model/driver/VBIOS/VRAM/PCIe), motherboard/BIOS, RAM diff --git a/pyproject.toml b/pyproject.toml index 219f76d..9fd9fd0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "rigdoctor" -version = "0.3.0" +version = "0.3.1" 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 20d7a5c..f848e74 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.3.0" +__version__ = "0.3.1" diff --git a/src/rigdoctor/gui/main_window.py b/src/rigdoctor/gui/main_window.py index bb2c7e4..7c9d47f 100644 --- a/src/rigdoctor/gui/main_window.py +++ b/src/rigdoctor/gui/main_window.py @@ -7,6 +7,7 @@ import sys import threading from PySide6.QtCore import Qt, QProcess, QTimer, Signal +from PySide6.QtGui import QTextDocument from PySide6.QtWidgets import ( QApplication, QButtonGroup, @@ -171,7 +172,9 @@ class MainWindow(QMainWindow): box = QMessageBox(self) box.setWindowTitle(f"Update to {self._latest_tag}") box.setText(f"Update RigDoctor to {self._latest_tag}?") - box.setInformativeText(self._latest_notes or "(no release notes)") + notes_doc = QTextDocument() + notes_doc.setMarkdown(self._latest_notes or "_(no release notes)_") + box.setInformativeText(notes_doc.toHtml()) # render Markdown as rich text (#1) box.setStandardButtons(QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Cancel) box.button(QMessageBox.StandardButton.Ok).setText("Update") if box.exec() != QMessageBox.StandardButton.Ok: @@ -232,9 +235,9 @@ class MainWindow(QMainWindow): return blocks = [] for tag, date, notes in releases: - head = tag + (f" ({date})" if date else "") - blocks.append(f"{head}\n{'─' * len(head)}\n{notes or '(no notes)'}") - view.setPlainText("\n\n".join(blocks)) + title = f"## {tag}" + (f" — {date}" if date else "") + blocks.append(f"{title}\n\n{notes or '_(no notes)_'}") + view.setMarkdown("\n\n".join(blocks)) # render Markdown instead of raw text (#1) def _check_updates(self) -> None: self._update_checked.emit(updates.update_state())