fix(updater): embed full release changelog in updater manifest#182
Merged
Conversation
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
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.
Problem
The in-app "A new version of Thuki is available!" window showed only a bare link
(
https://github.com/quiet-node/thuki/releases/tag/vX.Y.Z) under RELEASE NOTESinstead of the actual changelog.
Root cause is entirely in CI. The "Generate updater manifest" step in
release-please.ymlhardcoded:The Tauri updater surfaces the manifest
notesfield asupdate.body, andUpdateWindow.tsxrendersbodyas markdown. Frontend and backend were alreadycorrect: they faithfully rendered the URL string they were given.
Fix
In the
Generate updater manifeststep:gh release view "$TAG" --json body --jq .body.latest.jsonwithjq --rawfileinstead of a heredoc, so newlines,quotes, backticks and
$in the changelog stay JSON-safe (the old heredocinterpolation could not handle these).
creates the release with a non-empty body before this job runs, so a blank
body indicates upstream breakage and should not silently ship an empty
manifest. No URL fallback is written: the frontend already has a graceful
"View them on GitHub" fallback when
bodyis empty.GITHUB_TOKENto the step soghis authenticated.No application code changes: the frontend/backend already render
bodyasmarkdown.
Verification
Local validation (a YAML-only CI change is not exercised by the test suite):
jqoutput is valid JSON.$,&,apostrophes, multi-line) round-trips byte-identical through the manifest.
Scope note
This is forward-only for the build pipeline. v0.11.2's already-published
latest.jsonwas regenerated and re-uploaded separately (signature/url/pub_dateunchanged, only
notesreplaced) so existing users on 0.11.1 see real notes forthe 0.11.2 prompt.