Skip to content

feat: support external File Provider storage on macOS - #6

Open
OpenCow42 wants to merge 9 commits into
mainfrom
codex/external-file-provider-storage
Open

feat: support external File Provider storage on macOS#6
OpenCow42 wants to merge 9 commits into
mainfrom
codex/external-file-provider-storage

Conversation

@OpenCow42

Copy link
Copy Markdown
Owner

Summary

  • use the Apple-supported volume-backed NSFileProviderDomain initializer on macOS and gate every choice through checkDomainsCanBeStoredOnVolume(at:)
  • add stable configuration identity, exact registered-domain handling, opaque extension bindings, and a durable relocation journal
  • support recoverable moves between this Mac and eligible external volumes while preserving dirty local data and known-folder ownership
  • add macOS add/change/repair storage UI, placement health in Status, and actionable disconnected-volume messaging
  • keep iOS and visionOS on their existing local-domain behavior
  • update lifecycle, persistence, cleanup, architecture, and physical test documentation

Validation

  • focused macOS external-storage matrix passed: identity/migration, binding codec, relocation journal, volume eligibility/registration, app-model move/rollback/repair, placement status, known-folder lifecycle, and uninstall cleanup
  • macOS build passed
  • iOS Simulator build passed on iPhone 17 / iOS 26.5
  • generic visionOS build passed
  • git diff --check main...HEAD passed

Review notes

This is a draft until the physical external-drive matrix in doc/TESTING_AND_DEVELOPMENT.md is exercised with eligible encrypted APFS media, including unplug/replug, launch-while-missing, move rollback, and logout/removal behavior.

The broad legacy macOS test target still has a pre-existing networking-test isolation problem around the shared KDriveJSONRequestCapturingURLProtocol: the create-upload operation can stall, and parallel runs can race the lazy-download capture. The new feature suites pass cleanly and do not use that capture.

Apple references:

@OpenCow42
OpenCow42 force-pushed the codex/external-file-provider-storage branch from 3a94e8a to 69e54fd Compare July 26, 2026 10:08
@OpenCow42
OpenCow42 marked this pull request as ready for review July 26, 2026 10:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant