Skip to content

fix: show all versions between installed and latest in What's New#203

Merged
quiet-node merged 2 commits into
mainfrom
fix/markdown-link-open-browser
Jun 7, 2026
Merged

fix: show all versions between installed and latest in What's New#203
quiet-node merged 2 commits into
mainfrom
fix/markdown-link-open-browser

Conversation

@quiet-node

Copy link
Copy Markdown
Owner

Overview

Two related improvements to the in-app updater experience:

  1. The "What's New" window now shows every release between the user's installed build and the latest, not just the newest version's notes. A user who skips several releases sees the full set of changes they missed.
  2. Markdown links now open in the system default browser. A bare <a target="_blank"> does nothing inside the Tauri WKWebView, so links in chat messages (and now changelog notes) were previously dead.

What changed

Browser-opening markdown links (src/components/MarkdownRenderer.tsx)

A delegated click handler intercepts anchor clicks and routes the href through the existing open_url Tauri command, the same mechanism TipBar already uses. Non-anchor clicks (text, the code copy button) fall through untouched. open_url accepts only http/https, so non-web schemes are rejected in the backend.

Multi-version changelog

  • src/view/update/changelog.ts: pure parser/selector helpers. parseChangelogSections splits release-please changelog markdown into one section per version (dropping the title, preamble, and Unreleased block); selectSections keeps the versions newer than the installed build, newest first; compareSemver orders them.
  • src/view/update/ChangelogAccordion.tsx: collapsible per-version notes, newest expanded by default so a multi-version jump is not a wall of text.
  • src/view/update/UpdateWindow.tsx: renders the accordion when the manifest body has parseable version headers, and falls back to the existing single-body / GitHub-link rendering otherwise, so old single-version manifests stay supported.

Updater manifest (.github/workflows/release-please.yml)

The manifest now embeds the full released changelog (every version section) via awk over CHANGELOG.md instead of fetching only this tag's GitHub Release body. The window slices it to the installed version client-side. The build fails loudly if no released sections are found rather than shipping blank notes. GITHUB_TOKEN is dropped from that step because it no longer calls the GitHub API.

How it works

On release, CI extracts everything from the first ## [x.y.z] header to EOF and signs it into the updater manifest's notes. The window parses those headers, keeps the versions above the running build, and renders them as an accordion. Links inside the notes, and links in chat, open in the default browser.

Testing

  • bun run test:coverage: 1574 tests pass, 100% coverage across statements, branches, functions, and lines, including the new parser, accordion, window wiring, and link handler.
  • bun run typecheck, bun run lint:frontend, bun run format:check, bun run build:frontend: all clean.
  • Backend Rust is untouched; its gates run unchanged in CI.

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
@quiet-node quiet-node changed the title feat: multi-version What's New + open markdown links in system browser fix: show all versions between installed and latest in What's New Jun 7, 2026
@quiet-node quiet-node force-pushed the fix/markdown-link-open-browser branch from 6abc70a to 5a601cc Compare June 7, 2026 19:53
@quiet-node quiet-node merged commit 792b098 into main Jun 7, 2026
3 checks passed
@quiet-node quiet-node deleted the fix/markdown-link-open-browser branch June 7, 2026 20:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant