Skip to content

release: commitward 0.3.0 - #10

Merged
lyubomir-bozhinov merged 1 commit into
mainfrom
release/0.3.0
Jul 30, 2026
Merged

release: commitward 0.3.0#10
lyubomir-bozhinov merged 1 commit into
mainfrom
release/0.3.0

Conversation

@lyubomir-bozhinov

Copy link
Copy Markdown
Member

Version bump only — Cargo.toml + Cargo.lock, matching 7ed509a (release: commitward 0.2.1). Tagging and publishing stay human steps.

Why 0.3.0 and not 0.2.3

No signature moved, but compile() behaves differently for every caller (#9):

pub fn compile(cps: Vec<Checkpoint>) -> Result<Vec<CompiledCheckpoint>, CheckpointError> {
    merge(cps, anchor_checkpoints())   // ← anchor last, so an on-disk entry cannot shadow it
        .into_iter().map(compile_one).collect()
}

A caller that compiles N checkpoints now gets N+1 back. Every compiled registry — including an empty one — carries anchor-gate-integrity, which watches the gate's own registry and hook files and is compiled into the binary, so no YAML edit removes it.

That is the point rather than a side effect: the registry could not be the sole protector of the registry, so one checkpoint now lives outside it.

What consumers will feel

A commit touching a registry or the commit-msg hook now always fires at least one checkpoint — including the commit that first adopts a registry. Acknowledge it with a HITL-ACK line like any other fire; it fires, it does not block.

The NF3 "no checkpoints supplied" warning still fires when the caller supplied nothing, with its claim narrowed to what is now true — the compiled set is never empty, so the warning asks about the caller's input instead.

Additive in the same release: anchor_checkpoints() is public, so a consumer can inspect the floor rather than trust it.

Verification

cargo test --locked 40 passed / 0 failed · lock refreshed via cargo check.

Minor rather than patch: no signature moved, but `compile()` behaves differently
for every caller.

It now merges `anchor_checkpoints()` into the compiled set — last, so a
same-named on-disk entry cannot shadow it (#9). Every compiled registry,
including an empty one, therefore carries `anchor-gate-integrity`, which watches
the gate's own registry and hook files. A caller that compiled N checkpoints gets
N+1 back, and a commit touching a registry or hook now always fires at least one
checkpoint — including the commit that first adopts a registry. Acknowledge it
with a HITL-ACK line like any other fire.

That is the point of the change: the registry could not be the sole protector of
the registry, so one checkpoint now lives outside it, in the binary.

Additive in the same release: `anchor_checkpoints()` is public, so a consumer can
inspect the floor rather than trust it.
@lyubomir-bozhinov
lyubomir-bozhinov marked this pull request as ready for review July 30, 2026 07:22
@lyubomir-bozhinov
lyubomir-bozhinov merged commit 0144a2e into main Jul 30, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant