Project
Changelog
v0.1.0, 2026-08-04 (first public beta)
The first public release. A standalone version control system built from scratch for the agentic coding era, with no git anywhere in or under it.
Core model
- Snaps (parentless content-addressed trees), knots (stable work identity, hash-chained versions), buoys (named pointers over tied history only), workspaces (any number per buoy, one per knot ever).
- Scan-on-command capture: the working copy is the knot; no staging area.
tieas the one merge verb: linear everyday lands, merge knots only for genuinely diverged histories.syncexplicit, never automatic.- Conflicts as data inside snaps; merges never block, no
--continue. - Auto-rebase cascade on history rewrites (
edit,squash), workspace-held knots exempt;absorbroutes edits to the knots that own the lines; additivesplitby file or hunk. - Op journal with full before and after views: every mutation is one undoable
op, failed mutations roll back atomically, and the journal keeps the last
50 ops by default (
hav op limit). hav sweep: an explicit reachability sweep that frees what nothing retained can reach.- Format gate: opening a repo checks its recorded schema version first. Repos
written by a newer hav are refused with
upgrade hav, older repos migrate forward in place, and reading never rewrites the format marker. - First-capture gate: hav ships no ignore opinions and writes no config for
you. The first capture counts the tree before storing anything and asks
before ingesting what looks like an unignored dependency tree, and
hav previewshows the per-directory breakdown without reading or storing anything.
Sharing
- Remotes as paths (
init --barehubs) or harbor URLs.hav harbor serveis a dumb HTTP transport: anonymous reads, one bearer token for pushes, all crypto client-side. - Push and pull fast-forward only; untied WIP, workspaces, and the op journal never leave the machine.
- Sealed crews: whole lines of work encrypted client-side inside a shared
repo. Ciphertext travels to everyone, only members can open it, and going
public is always a member's explicit
tie --reveal. - Per-crew variant sets: a tree entry holds at most one public variant plus
any number of sealed per-crew variants, so ten crews can each keep their
own
.envat one path and no crew owns a path.hav crew useroutes edits to the active crew,hav sealandhav unsealmove a file across the boundary, and the publish gate asks before a capture would make a sealed-only path public. Every variant merges independently, so cross-crew edits never conflict. - Crew config travels with relevance: pulling a fork to merge a public PR does not import the crews its owner made for themselves.
hav key rotate: swap a machine's key with a two-key overlap, so there is no lockout window.- Two-regime storage (
hav pack): large files content-defined chunked and deduped, history solid-compressed, object identity unchanged.
Platforms
- Developed and tested on macOS; Linux shares the code paths. Windows builds and is platform-gated where it matters (exec bits, identity path), and is not yet exercised on real Windows. See Status and limits.