• v0.6.1 9efe31b42c

    v0.6.1
    All checks were successful
    Validate / validate (push) Successful in 2m42s
    Release / validate-1 (push) Successful in 59s
    Release / validate (push) Successful in 0s
    Release / release (push) Successful in 1m10s
    Stable

    Ghost released this 2026-07-15 18:12:47 +00:00 | 9 commits to main since this release

    Highlights

    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 (migration 0004) as the three-way merge base. A locally-modified file whose remote sha differs is now resolved against the stored baseline instead of unconditionally. See wiki/decisions/concurrent-edit-baseline-sha.md.
    • Published storage read contract. A new internal/contract package 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. See doc/storage-read-contract.md.

    Fixes

    • Decide symlink retargets by local row status, not just target match — decideSymlink previously 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