If your checkout moves mid-sync, the sync aborts instead of writing into the wrong tree.
What's wrong with this entry?
Sync now records the directory it resolved at the start and compares it against the current real path before applying anything. If they differ, the apply aborts with root_moved instead of writing into the wrong tree.
- A restarted sync worker re-hashes the files it had already seeded against the new location rather than trusting the old hashes.
- Startup decides whether the sync prompt is worth offering at all, and prints a dimmed status line while it works that out.
- Files refused as credentials during apply are counted separately.
Checking whether this checkout can sync
Strings lifted out of the shipped bundle, so the claim above can be checked against them.