fix: show all versions between installed and latest in What's New#203
Merged
Conversation
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
6abc70a to
5a601cc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Two related improvements to the in-app updater experience:
<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_urlTauri command, the same mechanismTipBaralready uses. Non-anchor clicks (text, the code copy button) fall through untouched.open_urlaccepts only http/https, so non-web schemes are rejected in the backend.Multi-version changelog
src/view/update/changelog.ts: pure parser/selector helpers.parseChangelogSectionssplits release-please changelog markdown into one section per version (dropping the title, preamble, and Unreleased block);selectSectionskeeps the versions newer than the installed build, newest first;compareSemverorders 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
awkoverCHANGELOG.mdinstead 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_TOKENis 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.