Sync
Construct SyncManager::new(agent_identity), then connect(Arc<Locus>).await before calling sync(local_path, remote_path, options).await.
Workflow and current contract
Construct SyncManager::new(agent_identity), then connect(Arc<Locus>).await before calling sync(local_path, remote_path, options).await. The two path arguments are namespaces within the connected stores, not two independently configured remote clients. Calling sync without a connected Locus returns an error.
SyncOptions has direction, delete, follow-links, ignore patterns, preview/apply, progress callback, and concurrency fields. Its current default is apply: true and preview: false; explicitly set preview mode when inspecting a plan. It has no conflict_strategy, include_patterns, or dry_run fields, and there is no list_statuses API.
Bidirectional processing currently discards errors in some per-file concurrent branches. A returned success is not a complete per-file transfer receipt; inspect contents/results when accepting synchronization.
Source reference
syncdeclarations —local/agentfs/src/sync.rs.fsdeclarations —local/agentfs/src/fs.rs.