Feature/macos vfs - #3
Draft
restot wants to merge 61 commits into
Draft
Conversation
restot
marked this pull request as draft
December 28, 2025 03:36
added 22 commits
December 28, 2025 21:15
Provides high-level architecture, build commands, macOS extension context, and development patterns for Claude Code instances working in this repository.
- Add -fobjc-arc compiler flag for 3 FileProvider files in CMakeLists.txt - Convert manual retain/release to ARC bridging casts in fileproviderxpc_mac.mm - Remove manual memory management in fileproviderdomainmanager_mac.mm Under ARC, void* storage requires __bridge_retained/__bridge_transfer, and QHash<QString, NSObject*> handles retain/release automatically. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
bd-20k: Add columnString() helper that guards sqlite3_column_text NULL returns. Replaces 10 unsafe String(cString:) calls in metadataFromRow that would invoke undefined behavior on any SQL NULL column value. bd-1zv: Replace BFS+individual-delete loop in deleteDirectoryAndSubdirectories with a single recursive CTE DELETE wrapped in a transaction. Reduces O(n) SELECT+DELETE round trips to one query and ensures atomicity.
Replace all 4 DISPATCH_TIME_FOREVER waits with 30-second timeouts: - fileproviderdomainmanager_mac.mm: findExistingFileProviderDomains - fileproviderdomainmanager_mac.mm: removeAllDomains inner group - fileproviderdomainmanager_mac.mm: removeAllDomains outer group - fileproviderxpc_mac.mm: connectToFileProviderDomains The XPC wait fires from the main thread via QTimer - guaranteed deadlock if completion never fires. On timeout, a warning is logged and execution continues gracefully.
Replace heuristic auth type detection (password length/prefix) with
explicit authType parameter propagated through the XPC call chain.
- ClientCommunicationProtocol.h: add new 6-param method with authType
('bearer' or 'basic'); old 5-param method kept for backward compat
- ClientCommunicationService.swift: implement new authType method;
legacy method forwards with authType='bearer' (C++ always sends OAuth)
- FileProviderExtension.swift: setupDomainAccount accepts authType param
(defaults 'bearer'); uses explicit type instead of length/prefix guess;
persists/restores authType via UserDefaults key fp_credential_authType
# Conflicts: # src/gui/macOS/fileproviderdomainmanager_mac.mm
…ties fix - XPC: use dispatch_group_notify instead of dispatch_group_wait to avoid deadlocking the Qt main thread; auto-authenticate after connections are established - Don't unauthenticate/disconnect FileProvider domain on transient AccountState::Disconnected (network hiccups cause rapid state cycling) - Don't clear registered domains on removeAllDomains timeout to prevent duplicate domain registrations - FileProviderItem capabilities: reading is always implicit for items returned by PROPFIND; folders always get content enumeration - Set DEVELOPMENT_TEAM=S6P3V9X548 in Xcode project for all targets - Add tools/cleanup-fileprovider.sh: all-in-one cleanup/build/sign/deploy - Bump version to 3.1.12
Bundle dylibs, sign with Developer ID, notarize, create DMG, and optionally upload to GitHub release — all in one script.
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.
Addresses: opencloud-eu/Roadmap#52
Closes: opencloud-eu#166