Show release notes in-app instead of opening the web releases page

New "Read Release Notes" entries in the Help menu (current installed
version) and the "Check for Updates" alert (the new, not-yet-installed
version) render a release's markdown notes in a Confab modal.

- UpdateCheckService.fetchReleaseNotes(forTag:) fetches a release's
  title + body from Gitea's public releases-by-tag API, caching the
  result by version tag in the settings table (a published release's
  notes don't change, so no need to refetch on every view).
- ReleaseNotesView reuses the existing MarkdownContentView renderer;
  shows a friendly "not available yet" state for versions with no
  published Gitea release (e.g. a dev build ahead of the last release).
- ReleaseNotesRequest carries which version to show atomically via
  .sheet(item:), per this project's established sheet-timing pattern.
- Removed the redundant "Release Page" button from the update alert
  now that notes show in-app; added an explicit .keyboardShortcut
  (.cancelAction) to its cancel button so Escape actually closes it —
  role: .cancel alone didn't do it, since NSAlert only auto-binds
  Escape to a button literally titled "Cancel".
This commit is contained in:
2026-08-03 13:13:36 +02:00
parent 6480a50eee
commit 32e6ce3c37
7 changed files with 219 additions and 1 deletions
+1
View File
@@ -136,6 +136,7 @@ class ChatViewModel {
var showHelp: Bool = false
var showCredits: Bool = false
var showHistory: Bool = false
var releaseNotesRequest: ReleaseNotesRequest? = nil
var showShortcuts: Bool = false
var showSkills: Bool = false
var showJarvis: Bool = false