Repository navigation
Cover macOS manager updates beside apps with framework links - #44
Merged
CryptoKey98 merged 2 commits intoOct 18, 2026
Conversation
…r-improvements Prepare 0.9.0: custom app identity, updater reliability and discovery fixes
Managers 0.8.1 to 0.8.3 scanned the entire application folder for links while adopting portable metadata, so updating /Applications/Craft Apps Manager.app rolled back whenever another app (for example an Electron app such as Visual Studio Code) contained framework symlinks. 0.9.0 scoped that check to the folder and its metadata; this adds an end-to-end apply test that reproduces the old failure, so the scope cannot regress. The link check also guards installed bundles and staging folders, so its error no longer claims the path is inside an archive. The macOS guide explains how 0.8.x users can update manually, since the previous manager's helper performs the swap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CryptoKey98
merged commit Oct 18, 2026
810acb7
into
CryptoKey98:integration/manager-improvements
7 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
On macOS, updating 0.8.1 → 0.9.0 from
/Applicationsfails and rolls back:The swap is performed by a copy of the previous manager. In 0.8.1–0.8.3,
adopt_updated_portablecallsfiles::no_links(base), which walks the whole application folder. Any other app with framework symlinks (Electron apps such as VS Code, plus many others) makes the launch step fail after the new bundle is published, soswap_macosrestores the old one. Each attempt leaves a ~66 MB.craft-manager-update-*folder behind. It only happens whenportable.txtis not beside the app, because the earlylocal_storagereturn skips the scan otherwise.0.9.0 (3ea87ef) already limits the check to the folder itself and its metadata files. This PR keeps that from regressing and helps users who are already stuck.
Changes
full_apply_ignores_links_inside_other_applications: runsapply_macos_withend to end with a siblingOther.appcontaining a framework symlink, and asserts that the update is published,previous.appis kept, the sibling link is untouched and the result islaunch_requested. With the 0.8.1no_links(base)call restored, this test fails with the reported error. Until now no full-apply test exercised a successful swap.files::no_linksalso guards installed bundles and staging folders, so "Archive contains a linked path" pointed at the wrong cause. It now says "Linked path is not allowed: …".Testing
cargo test --lib self_update: 28 passed on macOS.cargo test -- --test-threads=1: 202 passed, 1 failed. The failing test,updates::planning_tests::custom_destination_keeps_pinned_release_and_rejects_a_late_folder_collision, fails the same way on unmodifiedmain, so this change didn't cause it. A parallelcargo testrun also shows ~24 failures from shared state in portable/settings/updates tests, again on unmodifiedmain.🤖 Generated with Claude Code