Narrow master-key keychain fallback + App Store config/manifest fixes#135
Merged
Conversation
- MasterKeyKeychain.upsertItem: delete-then-add now only fires on errSecInteractionNotAllowed (mirrors MnemonicKeychain's 2026-07-01 narrowing); any other update failure throws instead of opening a master-key data-loss window on the recovery re-key path. - UIBackgroundModes [fetch]: the permitted identifier alone was not enough — BGTaskScheduler.submit failed with .unavailable, so background sync never ran. - LSRequiresIPhoneOS true (standard iOS-bundle marker this custom plist lacked). - CatchlightWidgets gains its own PrivacyInfo.xcprivacy (App-Group UserDefaults via the shared capture intents, reason 1C8F.1) — missing per-bundle manifests raise ITMS-91053 at upload. - App manifest: UserDefaults reasons now CA92.1 + 1C8F.1 (the App-Group suite is shared with the extension); FileTimestamp reasons now C617.1 + 3B52.1 (modification dates read in the user-picked sync folder). Verified in the built product: appex bundles the manifest; app Info.plist carries both new keys. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Summary
Owner-approved follow-ups from the 2026-07-23 mid-point review:
MasterKeyKeychain.upsertItemno longer deletes-then-adds on arbitrary update errors — only onerrSecInteractionNotAllowed, mirroring the MnemonicKeychain narrowing (2026-07-01). Anything else now throws, so an unexpected keychain error during phrase-recovery re-keying can no longer leave the device with no master key.UIBackgroundModes: [fetch]— without the mode,BGTaskScheduler.submitfailed with.unavailableand background sync never ran.LSRequiresIPhoneOS: true; a per-bundlePrivacyInfo.xcprivacyfor the widget extension (App-Group UserDefaults, 1C8F.1); app manifest reasons extended to 1C8F.1 (shared suite) and 3B52.1 (file dates in the user-picked sync folder).Tests
🤖 Generated with Claude Code