KAN-65: macOS DMG distribution and signed app updates #158

Merged
Twyco merged 1 commits from feature/KAN-65-macos-app-updates into main 2026-09-27 19:52:51 +00:00
Owner

KanbanGit for macOS gains automatic and manual signed app updates. Public downloads are now a drag-and-drop DMG containing KanbanGit.app and an Applications link; a separate signed .app.tar.gz is published for the updater.

The KanbanGit menu now contains About KanbanGit (version and build), Check For Updates…, and Install Update…. Startup checks and an adjustable 1/6/24-hour interval are enabled by default and can be disabled. Available updates appear in the menu, on the Dock icon, and in the local launcher. The local update window shows release notes and progress, and requires confirmation before downloading, installing and restarting.

The update feed and public key are bundled with the app. Remote workspaces receive no native updater permissions. Downloads require a valid updater signature and matching stable version, architecture, bundle ID and Apple Developer ID. Release publication verifies all immutable public artifacts before conditionally replacing the per-architecture latest manifest; conflicting metadata, concurrent replacements and downgrades are rejected. The new signing secret is present in repository Actions settings.

Validation:

  • 140 JavaScript tests and 15 regular Rust tests passed; ESLint, Rustfmt, Clippy (all targets/features), YAML parsing and diff checks passed.
  • Native WebView smoke test passed for version/build, notes escaping, confirmation/cancel, download progress, errors and preferences.
  • Real Developer-ID-signed 0.1.2 → 0.1.3 upgrade passed through Tauri's check/download/install APIs, including rejecting a tampered download and retaining external configuration/session fixture files. The separately invoked ignored integration test makes this repeatable with signed fixtures.
  • Signed Apple Silicon app, DMG and updater archive built. Mounted DMG verified to contain the signed app and /Applications link; real updater signature verified against the permanent public key.

Native release version is 0.1.2, build 2. Local test builds were signed but not newly notarized; the release pipeline retains its existing Apple notarization and Gatekeeper checks. Production publication remains a separate post-merge macos-v0.1.2 release. Existing 0.1.1 installations need the first updater-enabled version installed from the DMG.

Base and PR target: main, pulled with git pull --ff-only origin main before branch creation at 3e5c316b8f16a0d1b78100a5ac8f65f0b54edd46.

KanbanGit for macOS gains automatic and manual signed app updates. Public downloads are now a drag-and-drop DMG containing KanbanGit.app and an Applications link; a separate signed `.app.tar.gz` is published for the updater. The KanbanGit menu now contains About KanbanGit (version and build), Check For Updates…, and Install Update…. Startup checks and an adjustable 1/6/24-hour interval are enabled by default and can be disabled. Available updates appear in the menu, on the Dock icon, and in the local launcher. The local update window shows release notes and progress, and requires confirmation before downloading, installing and restarting. The update feed and public key are bundled with the app. Remote workspaces receive no native updater permissions. Downloads require a valid updater signature and matching stable version, architecture, bundle ID and Apple Developer ID. Release publication verifies all immutable public artifacts before conditionally replacing the per-architecture latest manifest; conflicting metadata, concurrent replacements and downgrades are rejected. The new signing secret is present in repository Actions settings. Validation: - 140 JavaScript tests and 15 regular Rust tests passed; ESLint, Rustfmt, Clippy (all targets/features), YAML parsing and diff checks passed. - Native WebView smoke test passed for version/build, notes escaping, confirmation/cancel, download progress, errors and preferences. - Real Developer-ID-signed 0.1.2 → 0.1.3 upgrade passed through Tauri's check/download/install APIs, including rejecting a tampered download and retaining external configuration/session fixture files. The separately invoked ignored integration test makes this repeatable with signed fixtures. - Signed Apple Silicon app, DMG and updater archive built. Mounted DMG verified to contain the signed app and /Applications link; real updater signature verified against the permanent public key. Native release version is 0.1.2, build 2. Local test builds were signed but not newly notarized; the release pipeline retains its existing Apple notarization and Gatekeeper checks. Production publication remains a separate post-merge `macos-v0.1.2` release. Existing 0.1.1 installations need the first updater-enabled version installed from the DMG. Base and PR target: `main`, pulled with `git pull --ff-only origin main` before branch creation at `3e5c316b8f16a0d1b78100a5ac8f65f0b54edd46`.
Twyco added 1 commit 2026-09-27 19:40:53 +00:00
feat(KAN-65): add signed macOS updates and DMG distribution
Native JavaScript checks / Native launcher and release tests (pull_request) Successful in 1m0s
CI/CD / preconditions (pull_request) Successful in 2s
CI/CD / test_and_check_app (pull_request) Successful in 7m2s
CI/CD / Publish immutable image (pull_request) Skipped
macOS checks / Native Rust tests and unsigned build (pull_request) Successful in 1m35s
20f9314659
Twyco merged commit 74bcf5d30c into main 2026-09-27 19:52:51 +00:00
Twyco deleted branch feature/KAN-65-macos-app-updates 2026-09-27 19:52:52 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: PetschStudios/KanbanGit#158