Skip to content

fix(updater): generate latest.json manifest (workaround tauri-action#1098) + bun release#187

Merged
ajianaz merged 1 commit into
developfrom
fix/updater-manifest
Jul 21, 2026
Merged

fix(updater): generate latest.json manifest (workaround tauri-action#1098) + bun release#187
ajianaz merged 1 commit into
developfrom
fix/updater-manifest

Conversation

@ajianaz

@ajianaz ajianaz commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Fixes auto-update. Every release since v0.2.0 is missing latest.json, so the in-app updater errors with "Could not fetch a valid release JSON from the remote".

Root cause (confirmed in v0.3.2 run logs + tauri-action#1098): tauri-action@v1 fails to collect the .sig artifacts → Signature not found for the updater JSON. Skipping upload... → no latest.json. Signing secrets ARE correctly set; the .sig files ARE generated on disk — the action just doesn't assemble them into the manifest.

Workaround (deterministic — no reliance on tauri-action's manifest logic):

  1. Each platform build uploads its signed updater bundle + .sig as a workflow artifact (actions/upload-artifact@v4).
  2. A new publish-updater-json job downloads them + runs scripts/build-updater-manifest.ts, which reads each .sig and maps it to the matching release-asset URL (via gh release view) → writes a Tauri v2 latest.json (version/notes/pub_date/platforms{os-arch:{signature,url}}) → gh release upload --clobber.

Also: release runner switched to bun (oven-sh/setup-bun@v2 + bun install + tauriScript: "bunx tauri"); removed the invalid updaterKeepSingleGroup input.

Verified locally: YAML parses; bun build scripts/build-updater-manifest.ts transpiles clean; FE unchanged (svelte-check 0 err, vitest 61).

End-to-end needs a release cut to confirm — the manifest job only runs on tag push. Suggest cutting v0.3.3-beta.1 to verify latest.json appears in the release + the in-app updater resolves. Linux (deb/rpm) has no auto-update bundle (no AppImage target) → omitted from the manifest by design.

…1098)

tauri-action@v1 fails to collect the `.sig` artifacts ("Signature not
found for the updater JSON. Skipping upload..."), so the auto-update
manifest `latest.json` is never uploaded — every release since v0.2.0 is
missing it, and clients error with "Could not fetch a valid release JSON
from the remote".

Workaround (deterministic, doesn't depend on tauri-action's flaky manifest
logic):
- Each platform build uploads its signed updater bundle + `.sig` as a
  workflow artifact (the `.sig` exists on disk; tauri-action just doesn't
  collect it).
- A new `publish-updater-json` job downloads those artifacts and runs
  scripts/build-updater-manifest.ts, which reads each `.sig` + maps it to
  the matching release-asset URL (via `gh`) and writes a Tauri v2
  `latest.json` (version/notes/pub_date/platforms), then uploads it to the
  release with `gh release upload --clobber`.

Also:
- Switch the release runner to bun (oven-sh/setup-bun@v2 + bun install +
  tauriScript: "bunx tauri"), matching the project tooling preference.
- Remove the invalid `updaterKeepSingleGroup` input (not a valid
  tauri-action@v1 input — it was warned + ignored).

NOTE: end-to-end verification requires a release cut (tag push) — the
manifest job only runs there. Suggest cutting v0.3.3-beta.1 to confirm
latest.json appears + the in-app updater resolves.

Linux (deb/rpm) has no auto-update bundle (no AppImage target); it's
omitted from the manifest by design (updater_key: "").
@github-actions

Copy link
Copy Markdown

🔍 Cora AI Code Review

No issues found. Code looks good!


Review powered by cora-cli · BYOK · MIT

@ajianaz
ajianaz merged commit 00b0db4 into develop Jul 21, 2026
8 checks passed
@ajianaz ajianaz mentioned this pull request Jul 21, 2026
ajianaz added a commit that referenced this pull request Jul 21, 2026
* chore(release): v0.3.3

Patch release — auto-update now works, unified search, HTTP-only version
gate, server version in Settings, bun tooling.

- bump version 0.3.2 → 0.3.3 (package.json, Cargo.toml, Cargo.lock,
  tauri.conf.json)
- CHANGELOG entry

Contents (since v0.3.2):
- Added: unified search across memories + documents — "Memories | All"
  toggle (#184, #185)
- Fixed: auto-update — generates latest.json manifest (workaround
  tauri-action#1098 that left every release since v0.2.0 without it) (#187)
- Changed: version detection fully HTTP-only (#183); uteke server version
  in Settings → Connections (#186); tooling switched to bun (#186, #187)

Verified: cargo fmt/clippy(-D warnings)/test (18), svelte-check (0 err),
vitest (61), npm build.

* feat(settings): make codecora.dev clickable (opens in browser)

The "codecora.dev" line under CorIn vX.Y.Z in the Settings sidebar is now
a link — clicking opens https://codecora.dev in the system browser via
@tauri-apps/plugin-shell (preventDefault + shellOpen), matching how
DocumentsView handles external links. Accessible (real href) + hover style.
@ajianaz ajianaz mentioned this pull request Jul 21, 2026
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