# zit 0.6.3

zit 0.6.3 fixes incremental Git imports after a force-push or a deleted
branch when the source is a fresh complete fetch, and makes a cone clone or
pull say whether its peer applied the cone.

This release is from trunk. Horizon clones and their protocol extensions
are not included.

## Incremental imports from a fresh source

An `import-git --into` whose source no longer held a tip recorded by the
previous import (the old head of a force-pushed branch, or the tip of a
deleted branch) failed with `ConflictingOid` when that source was a fresh,
complete fetch, as a mirror that keeps no Git data between pulls builds
one. The export excluded only history beneath the recorded tips, so a
missing tip let already-imported ancestors back into the stream. The export
now excludes every commit the destination's map records, read by Git from
standard input, and adds only what is new. Shallow and persistent sources
behave as before.

## Cone acknowledgement

A cone-aware server now says `pragma cone-served` in each reply that applied
the whole requested cone. The client counts acknowledged and
unacknowledged replies, and reports the outcome:

```
cloned 412 artifacts into work in 3 rounds (96 elided by the cone; applied by the peer)
```

A peer that ignores the cone is still served correctly; the client filters
locally, and `clone` and `pull` say so (`filtered locally; the peer did not
acknowledge the cone`). An empty cone, one with no inclusion member, is now
refused when the cone is built.

## Sparse-cone draft

The sparse-cone draft gains the `cone-served` pragma and the empty-cone
refusal, states that compaction and local filtering drop only out-of-cone
blobs while every manifest and sub-manifest node is kept, and clarifies that
the per-round bound covers the tree walk rather than the pull inventory.
Each change is listed in the draft's Changes in This Revision appendix.

## Compatibility

The artifact and repository store formats are unchanged. `cone-served` is a
new server-to-client pragma; peers that do not know it ignore it, as the
sync protocol requires of unknown pragmas. Import maps written by 0.6.2 are
read unchanged.

## 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](RELEASE-NOTES-0.1.0.md).
