-
v0.6.1
Stablereleased this
2026-07-15 18:12:47 +00:00 | 9 commits to main since this releaseHighlights
This release hardens the remote write path against malicious manifests, adds three-way concurrent-edit detection, and publishes a stable storage read contract for the upcoming read-only mobile client.
Security
- Contain remote-driven filesystem writes within the sync root. A crafted remote manifest could previously publish writes outside the sync root via symlinked ancestors. A new TOCTOU-safe symlink-ancestor guard (
internal/fsguard) resolves and validates the write path before applying restores. (CODE-REVIEW finding #1, High) - Reject absolute-symlink uploads at the walker. A local absolute symlink no longer flows straight through the upload pipeline; it is rejected during the walk.
- Gate delete propagation on a committed baseline. Delete propagation is only valid against a committed baseline, preventing spurious deletions when no baseline exists.
Features
- Concurrent-edit detection via a stored baseline sha. Adds
files.synced_sha256(migration0004) as the three-way merge base. A locally-modified file whose remote sha differs is now resolved against the stored baseline instead of unconditionally. Seewiki/decisions/concurrent-edit-baseline-sha.md. - Published storage read contract. A new
internal/contractpackage publishes the bucket read contract with golden fixtures and a drift guard, so the upcoming read-only mobile client can read the bucket directly as an independent consumer. Seedoc/storage-read-contract.md.
Fixes
- Decide symlink retargets by local row status, not just target match —
decideSymlinkpreviously only compared the remote target against the walker. - Fix manifest-only changes (symlinks) never publishing or finalizing.
Docs
- Add the Android mobile client doc page.
- Fix retype build warnings across the doc site (stale head-object references, a broken wiki-link, and dangling anchors).
Upgrade notes
This release introduces database migration
0004_synced_sha256.sql, applied automatically on first run.Full changelog: v0.5.0...v0.6.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
5 downloads
- Contain remote-driven filesystem writes within the sync root. A crafted remote manifest could previously publish writes outside the sync root via symlinked ancestors. A new TOCTOU-safe symlink-ancestor guard (