# zit 0.6.1

zit 0.6.1 adds an authoritative query for an imported Git default head and
corrects sparse sub-manifest writing when canonical partition boundaries
move or the parent's construction parameter is unknown.

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

## The imported default head

After Git rewrites its default branch, an abandoned check-in can have a
later timestamp than the replacement. Fossil's ordinary `trunk` name
resolution can consequently continue to select that abandoned check-in.
The source-head alias is updated, but consumers must not guess which Git
branch was selected as the import's default.

Use the new local query:

```sh
zit info --imported-head -F json -R mirror
```

Its JSON has the existing info shape: `name` is the canonical
`heads/<branch>` name and `hash` is the exact imported check-in. Use that
hash for subsequent file and tree reads. The selected branch is the one
pinned by the original import, from source HEAD or `--default-branch`.

The query describes the last successful import; it does not contact Git.
A failed incremental refresh leaves the previous imported head intact.
Missing, damaged or stale import metadata is an error, never a silent
fallback to `trunk`. Positional names cannot accompany the option.

Ordinary Fossil name resolution, importer alias behavior, branch membership
and abandoned history are unchanged.

## Canonical sparse writes

A change in one path range can shift MAX-sized partitions through adjacent
sub-manifests. Final-short-group merging can also require entries from an
untouched predecessor. The current k setting does not prove which k was
used to construct a parent tree.

The editor now permits localized opaque reuse only with established
partition evidence for the immutable parent and requested k. Roots the
editor has constructed canonically can retain that evidence within its
lifetime. An unknown or incompatible parent is reconstructed under the
requested rules rather than retaining an unproven shape. This fixes a
same-name edit after a k change that could previously preserve the wrong
partition.

Cold validation can require more reads than localized editing. In-memory
partition evidence is not a persistent proof that a later process can
reuse. Missing required nodes cause refusal before staged nodes are
published.

## Missing structural dependencies during commit

A sparse commit that needs an absent sibling sub-manifest can now fetch
required structural content from its saved remote and retry once, after
unwinding the first attempt's handles and locks. Delta parents with tree
baselines use the same recovery path. Malformed content and shunned nodes
do not trigger recovery; the shared resolver retains content-hash checks.

The recovery pull omits the wire cone but preserves the stored cone and
local receive filtering. It can transfer out-of-cone file blobs only to
discard them locally, so it may cost extra bandwidth. It does not silently
turn the stored repository dense. If required nodes remain unavailable,
the commit refuses explicitly without publishing a partial check-in.

`--no-sync` suppresses autosync, not the fetching of content required to
construct a valid commit. A dry run does not perform this recovery fetch;
it refuses with a fetch-first diagnostic instead. Recovery progress goes
to stderr, preserving the check-in result on stdout.

## Draft corrections and compatibility

The sparse-cone and sub-manifest drafts remain -00 and retain mandatory
canonical construction. Their corrected text describes the full structural
affected range, verifiable partition evidence, and demand fetch or explicit
refusal. There is no fixed cone-local rewrite or fetch radius. Regression
vectors cover MAX-cut propagation, final-small-group collapse and a changed
partition parameter.

The artifact and repository store formats are unchanged. Existing stores
remain readable. This release does not change Fossil's branch-resolution
rules or introduce a new synchronization protocol.

## 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).
