-
Notifications
You must be signed in to change notification settings - Fork 912
Fix: File Provider Synchronization Status #9335
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
i2h3
commented
Jan 20, 2026
- This migrates the file provider synchronization status reporting from UNIX sockets to the XPC connection.
- Agents.md of the repository was updated.
- Files excluded from synchronization no longer result in a warning state in the menu bar extra.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR migrates file provider synchronization status reporting from UNIX sockets to XPC connections, improving the architecture of the macOS file provider extension communication. It also updates the AGENTS.md documentation with macOS-specific development guidelines and fixes an issue where excluded files would incorrectly trigger a warning state in the menu bar.
Changes:
- Replaced socket-based sync status communication with XPC-based
FileProviderServiceimplementing the newAppProtocol - Removed socket-based sync status tracking code from
FileProviderSocketServerandFileProviderSocketController - Updated AGENTS.md with comprehensive macOS development guidelines
Reviewed changes
Copilot reviewed 37 out of 37 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/gui/tray/syncstatussummary.cpp | Updated to use FileProviderService instead of FileProviderSocketServer for sync status |
| src/gui/owncloudgui.cpp | Updated to use FileProviderService for sync status tracking |
| src/gui/macOS/fileproviderservice.h | New service class implementing AppProtocol for XPC communication |
| src/gui/macOS/fileproviderservice.mm | Implementation of FileProviderService with Objective-C delegate |
| src/gui/macOS/fileproviderxpc_mac_utils.h | Updated signature to accept FileProviderService parameter |
| src/gui/macOS/fileproviderxpc_mac_utils.mm | Sets up bidirectional XPC connections with AppProtocol export |
| src/gui/macOS/fileproviderxpc_mac.mm | Passes FileProviderService to connection processing |
| src/gui/macOS/fileprovidersocketserver.h | Removed sync status tracking methods |
| src/gui/macOS/fileprovidersocketserver.cpp | Removed sync status change handling code |
| src/gui/macOS/fileprovidersocketcontroller.h | Removed syncStateChanged signal |
| src/gui/macOS/fileprovidersocketcontroller.cpp | Removed reportSyncState and FILE_PROVIDER_DOMAIN_SYNC_STATE_CHANGE handling |
| src/gui/macOS/fileprovider_mac.mm | Instantiates FileProviderService singleton |
| src/gui/macOS/fileprovider.h | Added service() accessor method |
| src/gui/macOS/AppProtocol.h | Symlink to AppProtocol.h defining XPC interface |
| src/gui/CMakeLists.txt | Added AppProtocol.h and FileProviderService files to build |
| shell_integration/.../project.pbxproj | Removed ClientCommunicationService.swift, added new extension files and renamed ClientInterface file |
| shell_integration/.../FPUIExtensionServiceSource.swift | Updated copyright header format |
| shell_integration/.../FPUIExtensionService.swift | Updated copyright header format |
| shell_integration/.../ClientCommunicationService.swift | Removed entire file (functionality moved to extensions) |
| shell_integration/.../AppProtocol.h | New protocol defining app-side XPC interface for status reporting |
| shell_integration/.../FileProviderSocketLineProcessor.swift | Updated IgnoredFilesMatcher initialization with log parameter |
| shell_integration/.../FileProviderExtension.swift | Added XPC properties and updated to report sync status via XPC, updated exclusion handling comment |
| shell_integration/.../FileProviderExtension+Thumbnailing.swift | Updated copyright header format |
| shell_integration/.../FileProviderExtension+NSXPCListenerDelegate.swift | New extension implementing XPC listener delegate |
| shell_integration/.../FileProviderExtension+NSFileProviderServicing.swift | Extracted from FileProviderExtension+ClientInterface.swift |
| shell_integration/.../FileProviderExtension+NSFileProviderServiceSource.swift | New extension implementing service source protocol |
| shell_integration/.../FileProviderExtension+CustomActions.swift | Updated copyright header format |
| shell_integration/.../FileProviderExtension+ClientInterface.swift | Removed (split into multiple extensions) |
| shell_integration/.../FileProviderExtension+ClientCommunicationProtocol.swift | New extension implementing client communication protocol |
| shell_integration/.../FileProviderExtension+ChangeNotificationInterface.swift | New extension implementing change notification interface |
| shell_integration/.../FileProviderExt-Bridging-Header.h | Added AppProtocol.h import |
| shell_integration/.../IgnoredFilesMatcher.swift | Added log parameter for debugging ignore patterns |
| shell_integration/MacOSX/FinderSyncExt.entitlements.cmake | Added DEBUG_ENTITLEMENTS placeholder |
| shell_integration/MacOSX/FileProviderUIExt.entitlements.cmake | Added DEBUG_ENTITLEMENTS placeholder |
| shell_integration/MacOSX/FileProviderExt.entitlements.cmake | Added DEBUG_ENTITLEMENTS placeholder |
| shell_integration/MacOSX/CMakeLists.txt | Added conditional debug entitlements based on build type |
| AGENTS.md | Enhanced with macOS-specific development guidelines and detailed project structure |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...acOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+NSXPCListenerDelegate.swift
Outdated
Show resolved
Hide resolved
...NextcloudIntegration/FileProviderExt/FileProviderExtension+ClientCommunicationProtocol.swift
Outdated
Show resolved
Hide resolved
fe5d3c6 to
216757c
Compare
a409208 to
681c4a1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 41 out of 41 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift
Show resolved
Hide resolved
...acOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+NSXPCListenerDelegate.swift
Show resolved
Hide resolved
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift
Outdated
Show resolved
Hide resolved
9904dfd to
6161491
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 41 out of 41 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...acOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+NSXPCListenerDelegate.swift
Show resolved
Hide resolved
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift
Show resolved
Hide resolved
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift
Show resolved
Hide resolved
6d9d31a to
43e1dbb
Compare
- Introduced Objective-C AppProtocol for definition of requirements of the XPC service exposed by the main app. - The established XPC connections now are configured to export and recognize AppProtocol to enable bidirectional communication. - Introduced the FileProviderService class to implement AppProtocol on the app side in Objective-C++. - Outsourced ChangeNotificationInterface conformance of FileProviderExtension into dedicated source code file. Other: - Fixed get-task-allow entitlement for extensions in debug build configurations. Signed-off-by: Iva Horn <[email protected]>
…nchronization. Signed-off-by: Iva Horn <[email protected]>
Signed-off-by: Iva Horn <[email protected]>
43e1dbb to
75f1351
Compare
|
Artifact containing the AppImage: nextcloud-appimage-pr-9335.zip Digest: To test this change/fix you can download the above artifact file, unzip it, and run it. Please make sure to quit your existing Nextcloud app and backup your data. |
|



