Desktop sync client — strategic spike #20
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Cordy/Cairn#20
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Nextcloud/ownCloud's headline feature is a desktop sync client (delta sync, conflict handling). Cairn today offers WebDAV (rclone/Finder/Cyberduck mount) but no true two-way delta-sync.
Spike, not yet an implementation commitment:
Biggest strategic gap vs the incumbents.
Decision record (spike, 2026-07-26): bless rclone bisync as the supported sync path; do NOT build a sync client for v0.4/v0.5.
Options considered:
Own sync client (Go, cross-platform tray app). True parity with Nextcloud Desktop, but it is a second product: conflict resolution, delta detection, three OS packagings, code signing (Apple notarization, Windows SmartScreen), auto-update infrastructure, and an endless client-support surface. Nextcloud's desktop client is by far its largest source of sync-corruption bug reports — this is the "slow and unauditable" trap in client form. Rejected for now.
Bless
rclone bisync(chosen). rclone is mature, cross-platform, already part of our interop test matrix, and speaks WebDAV natively.bisyncgives two-way sync with conflict handling;rclone mountcovers the "network drive" want on all three OSes. Cost to us: a documentation page (Cairn remote config incl. app-password, recommended bisync flags, systemd/launchd timer examples) plus periodic interop runs — near-zero code. Limitations to document honestly: no tray UI, resync needed after interrupted runs, polling not push.OS-native WebDAV mounts (Finder / Explorer). Already supported and tested; fine for online access, but not offline sync — complements 2, doesn't replace it.
Consequences:
docs/SYNC.mdcookbook (rclone bisync + mount recipes) instead of client code; the interop-rclone workflow already guards the underlying surface.Closing as decided; the SYNC.md cookbook is small follow-up work I'll include with the next docs pass.