Skip to content

fix(ci): restore releaseBody so latest.json notes is populated#34

Merged
RealZST merged 1 commit intomainfrom
fix/ci-release-body
May 1, 2026
Merged

fix(ci): restore releaseBody so latest.json notes is populated#34
RealZST merged 1 commit intomainfrom
fix/ci-release-body

Conversation

@RealZST
Copy link
Copy Markdown
Owner

@RealZST RealZST commented May 1, 2026

Summary

The release workflow refactor in 50df230 ("ci: parallelize Linux/Windows builds") split the single release job into create-release + release-desktop. In the process, the releaseBody input on tauri-apps/tauri-action@v0 was removed alongside the (now-unused) tagName / releaseName / releaseDraft inputs.

releaseBody is what tauri-action passes through to the Tauri bundler to fill the notes field of latest.json. Without it, every release from v1.2.0 onward has shipped a latest.json with "notes": "", so the desktop in-app update dialog has been silently falling back to the placeholder "Bug fixes and improvements." string instead of showing the actual changelog.

$ for v in v1.0.3 v1.1.0 v1.2.0 v1.2.1; do
    curl -fsSL "https://github.com/RealZST/HarnessKit/releases/download/$v/latest.json" \
      | python3 -c 'import json,sys;n=json.load(sys.stdin)["notes"];print(repr(n[:60]))'
  done
'## What\'s Changed\n* fix: sanitize MCP names for Codex...'  # v1.0.3 β€” fine
'## What\'s Changed\n* ci: add PR checks and CodeQL secur...'  # v1.1.0 β€” fine
''                                                              # v1.2.0 β€” broken
''                                                              # v1.2.1 β€” broken

(v1.3.0 was patched manually post-build β€” see release notes.)

The fix

Wire needs.create-release.outputs.changelog (which create-release already produces) into tauri-action:

        with:
          releaseId: ${{ needs.create-release.outputs.release_id }}
+         releaseBody: ${{ needs.create-release.outputs.changelog }}
          tauriScript: cargo tauri

Test plan

  • Next release (v1.3.1+) builds via this workflow
  • After that release publishes, latest.json's notes field is non-empty
  • Desktop in-app update dialog displays the real changelog instead of the fallback string

πŸ€– Generated with Claude Code

When the release workflow was split into create-release / release-desktop
jobs (50df230), the `releaseBody` input on tauri-action was dropped along
with the now-unused `tagName` / `releaseDraft` / `releaseName` inputs.

`releaseBody` is what tauri-action passes into the bundler to fill the
`notes` field of `latest.json`. Without it, every release since v1.2.0
has shipped a `latest.json` with `"notes": ""`, so the desktop in-app
update dialog has been showing the "Bug fixes and improvements." fallback
instead of the actual changelog.

Wire `needs.create-release.outputs.changelog` (which is already produced
by the create-release job) back into tauri-action so future releases
populate the in-app changelog automatically.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@RealZST RealZST merged commit 918e8b7 into main May 1, 2026
3 checks passed
@RealZST RealZST deleted the fix/ci-release-body branch May 1, 2026 18:42
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