* Fix that websocket do not work with Sharepoint libraries by updating the 'websocketEndpoint' to use the 'drive_id' value when specified in the configuration file.
* Fix issue where the client will create many file versions when file modified time differ locally to that online, and does not evaluate which timestamp should be corrected - online or local
* Add missing TOC entry in application-config-options.md
* Add configuration option 'disable_version_check' to allow users to configure whether the application will check the GitHub API for release information to assist in advising users of new application releases.
* When using --upload-only , the inbuilt WebSocket process is disabled and not used, thus, there is a spinlock that needs to be taken care of when using --upload-only
* When using WebSockets to listen for remote change, a local change will trigger an 'echo' of that local change, which we need to debounce if this signal is received within a short window
Implement full “Display Manager Integration” support for both GNOME and KDE desktop environments. This new feature allows the OneDrive Client for Linux to detect the active desktop session and automatically:
* Register the configured sync_dir as a “special place” or sidebar entry within the file manager (Nautilus on GNOME; Dolphin on KDE).
* Apply a custom “onedrive” folder icon to the synchronisation directory when the installed icon theme supports it.
* Cleanly install and uninstall required resources (icons, bookmarks, file manager integration) via the Makefile’s install and uninstall targets, thereby supporting system-wide installations, packaging workflows, and per-user installs.
* Introduce a new configuration option display_manager_integration (boolean) to enable or disable this integration behaviour at runtime.
* Update documentation and usage guidance to clearly explain what “Display Manager Integration” means, what this client implements (sidebar entry + icon) and what features remain out-of-scope (context menus, overlay badges, tray icons).
* Ensure safe, idempotent integration logic for both GNOME and KDE (bookmark manipulation, icon theme detection, cache refresh) with fallbacks and minimal dependencies.
With this merge, users installing via make install or system packages will benefit from enhanced desktop usability: the OneDrive folder appears visibly and intuitively within their standard file manager sidebar, making access and identification simpler. At the same time, the core sync engine remains focused on reliable file synchronisation, with the desktop integration layer remaining optional and disabled by default unless explicitly enabled via configuration.
* When using --dry-run use tracked renamed directories to avoid falsely indicating local data is new and uploading as new data
* Ensure comparison of renamed paths is consistent
* When using 'sync_list' and renaming online entries, only update the local database if the provided JSON is not in the database already to allow applyPotentiallyChangedItem() to operate as expected
* Add Docker environment variable 'ONEDRIVE_THREADS' to control the value for the number of worker threads used for parallel upload and download operations.
* Add missing element of shared folder DB tie values to idsFaked when using --dry-run
* Ensure that bad entries of '.*' are not added for 'skip_dir' to align to 'skip_file'
* Update application messaging on what configuration option to use to skip .files and .folders
* fix: database inconsistency due to unassigned variable
* fix: more debug logging, setting sharedByFolderName to Email as fallback
---------
Co-authored-by: Daniel Schiffner <d.schiffner@dipf.de>
Co-authored-by: abraunegg <alex.braunegg@gmail.com>
* Fix application crash after deleting file locally by removing a TOCTTOU (Time-of-check to time-of-use) race condition when deleting a file.
* Improve inotify removal messaging when exiting application to avoid confusion
Newer libcurl releases (8.12.x and above) default to HTTP/2 via ALPN, causing the WebSocket RFC6455 handshake to fail with "code:3, message: Bad request".
This change forces HTTP/1.1 and disables ALPN/NPN on WebSocket connections, restoring correct 101 Switching Protocols behaviour.
* Add option to remove source folders when using --upload-only --remove-source-files
* Parental path will only be removed if path is empty - that is, no other folders or files present
* Force DNS Timeout when forcing a libcurl fresh connection which will force DNS resolution as stale cache internally in curl is not being released
* Fix that 'online' state is correctly set if Internet access is not available at startup when using --monitor
* Curl 8.14.1 (or maybe earlier) has changed output messaging when curl exceptions are raised. This has caused the curl exception handling / retry handling to fail due to unable to match error log output.
* Add an exception fallback to ensure retry interval is enforced in case of unknown CurlException event
* Update calculateBackoff() function to prevent integer overflow
* OneDrive Personal and Business supports the relocation of Shared Folder links to other folders. Fix the support of relocated shared folders for OneDrive Personal
* If the file is a very short lived file, and exists when an initial exists() check is done, but then is removed shortly thereafter, we need to catch this as a filesystem exception
* Ensure that post successful download, the resumable offset point is reset to avoid `HTTP request returned status code 416 (Requested Range Not Satisfiable)` if the offset point is not reset and curl engine reused for another download