zit 0.10.1 fixes two horizon-clone defects that the nightly soak found, and
lets zit daemon record merges.
This release is from trunk. Stores, caches and the wire are unchanged from 0.10.0.
A torn header restamp no longer makes a store unreadable
After a horizon or cone clone committed, zit rewrote the store's 64-byte header in place to record that the store holds a horizon. A crash during that write could leave the new version with the old checksum, and every command then refused the store as corrupt, although all of its data was intact.
zit now recognises a header torn between its two versions and reads it as the stamp the write was leaving; the next restamp seals it. Any other damage to a header is still reported as corruption. A new horizon clone writes its version when the store is created, so it never restamps at all.
A deepen from a zit server completes
Since 0.9.0 a zit server can answer a request with an artifact it stores as a delta. When a sub-manifest arrived that way before its basis, the client stored it once the basis came but did not record that the tree's missing piece had arrived. A horizon clone's deepen then reported that it had not reached the origin and left the horizon where it was, though the content was already in the store. The deepen now completes. No data was lost; a retry also succeeded.
Merges through the daemon
committakes"parents"as well as"parent". The first is the primary parent and the rest are merged, written exactly aszit mergeand a commit write them. Two devices sending the same merge, with the same parents, time, user, comment and content, make the same check-in.merge_basereturns the common ancestorzit mergewould use.diffreturns the changed files between two check-ins, in the fields ofzit diff -F json.
zit help daemon documents the shapes.
Qualification
The release manifest records native qualification against the exact tagged source archive on macOS ARM64, Linux x86-64 and Linux ARM64, using the pinned Zig 0.17.0 toolchain. Publication is gated on unit and end-to-end tests, Git differentials, deterministic simulation, seeded fuzzing, and Fossil interoperability checks on every distributed target.
For the basis of the conformance claim, see the 0.1.0 release notes.