Skip to content

fix(desktop): keep the app's Keychain access across updates on macOS - #3437

Merged
LHagfoss merged 2 commits into
mainfrom
fix/desktop-stable-signature-after-update
Nov 11, 2026
Merged

LHagfoss merged 2 commits into
mainfrom
fix/desktop-stable-signature-after-update

Conversation

@LHagfoss

@LHagfoss LHagfoss commented Nov 11, 2026 •

Copy link
Copy Markdown
Owner

What

macOS treats each ad-hoc app build as a new program, so Keychain asks again for paired-machine credentials after updates. When the user has created the local signing certificate, the updater now signs a separate copy of the verified download before installing and relaunching: bundled engine, desktop executable, then app bundle, followed by strict verification. A missing certificate or any failure logs the reason and installs the untouched ad-hoc download.

The custom updater already has a staging hook, so signing happens before relaunch rather than at the next startup. CLI and app share the codesign argument builder. Refresh the stale desktop lockfile entry for the local client crate so CI can use --locked. Certificate creation remains an explicit one-time script step, per the requested scope; no certificate is created automatically.

Changelog

Keep macOS Keychain access across app updates when the local signing certificate is configured.

Testing

Desktop clippy (--locked --all-targets -- -D warnings), desktop and workspace formatting, and 34 updater unit tests pass (one pre-existing network test ignored). Workspace cargo check --workspace --tests also passes. The identical shared-signing test is exercised by the desktop updater test run. Pure unit tests cover signing arguments, nested signing order, and skipping without an ad-hoc signature or certificate. No real Keychain items or signing identities were modified. Two consecutive live app updates remain a manual verification step.

Closes #3435

@github-actions github-actions Bot added the fix A bug fix label Nov 11, 2026
@LHagfoss
LHagfoss merged commit fc403ac into main Nov 11, 2026
10 checks passed
@LHagfoss
LHagfoss deleted the fix/desktop-stable-signature-after-update branch November 11, 2026 07:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix A bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(desktop): stop Keychain asking for rustcode-machines after every app update

1 participant