Skip to content

sync: plain mirrors earn durability evidence; unsatisfiable offload_requires is a config error #156

Description

@mbertschler

Problem (friction log F21, S1 — confirmed live)

The mirror sync path contains no vector-advance call at all, so offload_requires naming a mirror destination waits forever. In the walk, the reference config's laptop gated on the crypt-mirror cloudbox — not refused, not warned, just a gate that can never open, discovered only when offload was finally attempted. (#121 later added an offload-time pre-check that catches locally configured crypt mirrors; the walk hit the peer-relayed blind spot tracked by #145.)

Decision (Martin, 2026-07-24 — option 3a)

  • Plain (non-crypt) mirrors earn evidence: a mirror sync that ran the full BLAKE3 --checksum comparison is content-verified end-to-end and advances the vector with method rclone-blake3. (Shallow runs and crypt mirrors advance nothing, as today.)
  • Unsatisfiable requirements are config errors: offload_requires naming a locally-configured destination that can structurally never gate (crypt mirror) is rejected at config load — fail-early instead of wait-forever or offload-time-only. The error points at CA/packed layouts (and plain-mirror-with-verification) as alternatives.

Plan

Reference-setup amendment for this already landed in design/reference-setup.md ("Offload gates deliberately name only targets that produce durability evidence"); update it again to re-admit plain mirrors once this ships.

See design/friction-log.md F21.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions