The native Install Update menu stayed disabled because its refresh searched only the top-level menu, while the item lives inside the KanbanGit submenu. Give that submenu a stable ID and resolve the install item through it. The menu enables for available updates and retryable installation failures, and disables during checks, downloads and installation. Remove the Update badge from the Dock icon.
A failed macOS upload must not consume an app version. Remove the separate Resume mode and make both tag pushes and manual dispatch run the full build, signing, notarization and publication pipeline. A rebuilt release can replace partial files at the same version until that version reaches latest.json. Each replacement checks the authenticated feed and uses the existing object's ETag. Files at or below the published feed version remain protected, identical retries stay valid, and the feed is promoted only after every public download is verified. Release downloads now require cache revalidation.
Publication stays serialized by the existing macos-release concurrency group. A failed tag can be moved to a corrected commit on main and pushed again using the exact lowercase macos-vMAJOR.MINOR.PATCH name. Once the feed has been promoted, even a later job failure requires a new version for changed binaries. Ambiguous S3 errors fail closed; if a first-release feed lookup has the AWS CLI empty-error bug, an authenticated empty listing is required to prove it is missing.
Validation:
94 publisher/workflow tests, covering rebuilt partial uploads, protected published versions, feed failures, ETag conflicts, removal of Resume and moved tags.
18 Rust unit tests and 4 updater JavaScript tests passed. The signed upgrade test remains opt-in and was not rerun.
Native macOS updater smoke test passed, including actual install-menu enable/disable transitions and the existing WebView checks. It required macOS GUI access outside the sandbox.
Cargo Clippy with all targets/features and warnings denied, Rust formatting, ESLint, workflow YAML parsing and diff checks passed.
No production release objects or tags were changed, and a new signed release was not published. These native UI changes take effect in the next app release.
Base and PR target: main, pulled before branch creation at 3d5ee223e8.
The native Install Update menu stayed disabled because its refresh searched only the top-level menu, while the item lives inside the KanbanGit submenu. Give that submenu a stable ID and resolve the install item through it. The menu enables for available updates and retryable installation failures, and disables during checks, downloads and installation. Remove the Update badge from the Dock icon.
A failed macOS upload must not consume an app version. Remove the separate Resume mode and make both tag pushes and manual dispatch run the full build, signing, notarization and publication pipeline. A rebuilt release can replace partial files at the same version until that version reaches latest.json. Each replacement checks the authenticated feed and uses the existing object's ETag. Files at or below the published feed version remain protected, identical retries stay valid, and the feed is promoted only after every public download is verified. Release downloads now require cache revalidation.
Publication stays serialized by the existing macos-release concurrency group. A failed tag can be moved to a corrected commit on main and pushed again using the exact lowercase macos-vMAJOR.MINOR.PATCH name. Once the feed has been promoted, even a later job failure requires a new version for changed binaries. Ambiguous S3 errors fail closed; if a first-release feed lookup has the AWS CLI empty-error bug, an authenticated empty listing is required to prove it is missing.
Validation:
- 94 publisher/workflow tests, covering rebuilt partial uploads, protected published versions, feed failures, ETag conflicts, removal of Resume and moved tags.
- 18 Rust unit tests and 4 updater JavaScript tests passed. The signed upgrade test remains opt-in and was not rerun.
- Native macOS updater smoke test passed, including actual install-menu enable/disable transitions and the existing WebView checks. It required macOS GUI access outside the sandbox.
- Cargo Clippy with all targets/features and warnings denied, Rust formatting, ESLint, workflow YAML parsing and diff checks passed.
No production release objects or tags were changed, and a new signed release was not published. These native UI changes take effect in the next app release.
Base and PR target: main, pulled before branch creation at 3d5ee223e8d33ff0284572cfc1acdbd1910bbd73.
Twyco
changed title from KAN-65: Rebuild failed macOS releases without Resume to KAN-65: Fix update menu and rebuild failed macOS releases2026-09-28 06:02:07 +00:00
Twyco
merged commit d0c5d65f0e into main2026-09-28 06:04:04 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The native Install Update menu stayed disabled because its refresh searched only the top-level menu, while the item lives inside the KanbanGit submenu. Give that submenu a stable ID and resolve the install item through it. The menu enables for available updates and retryable installation failures, and disables during checks, downloads and installation. Remove the Update badge from the Dock icon.
A failed macOS upload must not consume an app version. Remove the separate Resume mode and make both tag pushes and manual dispatch run the full build, signing, notarization and publication pipeline. A rebuilt release can replace partial files at the same version until that version reaches latest.json. Each replacement checks the authenticated feed and uses the existing object's ETag. Files at or below the published feed version remain protected, identical retries stay valid, and the feed is promoted only after every public download is verified. Release downloads now require cache revalidation.
Publication stays serialized by the existing macos-release concurrency group. A failed tag can be moved to a corrected commit on main and pushed again using the exact lowercase macos-vMAJOR.MINOR.PATCH name. Once the feed has been promoted, even a later job failure requires a new version for changed binaries. Ambiguous S3 errors fail closed; if a first-release feed lookup has the AWS CLI empty-error bug, an authenticated empty listing is required to prove it is missing.
Validation:
No production release objects or tags were changed, and a new signed release was not published. These native UI changes take effect in the next app release.
Base and PR target: main, pulled before branch creation at
3d5ee223e8.KAN-65: Rebuild failed macOS releases without Resumeto KAN-65: Fix update menu and rebuild failed macOS releases