HZR 0.3.2
Pre-releaseHZR 0.3.2 — Honest accounting
HZR reported a reduction ratio that was measuring a shrinking fraction of the traffic it
claimed to cover. This release makes the uncovered part visible, hands agents the commands
that close it, and fixes the search mode whose name promised something it did not deliver.
Reference point: comparisons below are against upstream RTK v0.44.1, the engine HZR
forks. Where a row says upstream, that behaviour is unchanged in rtk today.
Already on
0.3.1? The implementation landed before that tag, so your runtime already has
it.0.3.2adds the MSRV fix that turned CI green and publishes these notes as the release
description.
Optimizer bypass is measured and named
- A command routed through
rawreaches the shell unfiltered. It delivers exactly as many
tokens as its baseline and therefore contributes zero avoided tokens. When RAW is included
in the accounting boundary, the baseline grows while net avoided output does not, so the total
reduction percentage goes down. The separate bypass share makes that loss of coverage explicit. hzr statsprints the bypass share directly beneath the headline: operations, delivered
tokens, and each bypassed tool ranked by cost.- Every bypassed read or search carries a copyable replacement, reconstructed from its
costliest recorded invocation —sed -n 120,180p fbecomes
hzr rtk -- read f --from 120 --to 180. - Where no equivalent exists (
cargo,git,ps,tar), the panel says so instead of
inventing one. - Upstream: RTK reports savings per command and has no notion of a bypassed route.
Agents are corrected, not only measured
- The
PreToolUsehook answers a bypassed read or search with the equivalent command already
filled in. - The decision is Ask, never Deny — raw stays one keystroke away, because it remains
correct for checksums, parsers, generated files and complete logs. - Commands with no first-class equivalent are never interrupted.
--mode exact is finally exact
- Exact mode delegated to a ranked term model: the query was lowercased, split on
non-alphanumerics, stripped of stop words, stemmed, and the survivors OR-ed into one regex,
sohzr search "fn record_degraded_rewrite" --mode exactmatched every file containingfn. - It is now a literal, case-sensitive lookup —
rtk rgai --literalin fork-core, wired to
HZR's exact mode. --pathaccepts several directories.--path crates fork-core/srcused to fail with
error: unexpected argument.
Query fn record_degraded_rewrite |
Files returned |
|---|---|
RTK upstream v0.44.1 — rgai |
21 (ranked terms) |
HZR 0.3.1 and later — --mode exact |
1 (literal) |
Accounting coverage can return to COMPLETE
- Coverage was
line_count(degraded-rewrites.log) == 0over an append-only file that nothing
truncated, so one install performed while the daemon was down pinnedhzr statsto
▲ INCOMPLETEpermanently. - It is now an open gap: the next managed rewrite closes it, and the lifetime count stays
visible, so closing a gap never looks like erasing one.
The density codec is reachable and measurable
hzr-codecexisted but nothing called it — not the hook path, not the planner, not MCP.- It is now the
hzr_codecMCP tool, and its transforms are recorded in the efficiency ledger
under acodecsubsystem. - The
shadowprofile reports what compression would have saved without altering the text.
Engine health is read, not asserted
caveman-codewas reported with a hardcoded state and a hardcoded version string, so an
installation missing the runtime looked identical to a working one.- The version now comes from
engines.lock.toml; a missing bridge or package is reported as
degraded together with the command that repairs it. - Engines that rest by design no longer colour the overall verdict.
The live observatory proves memory and search
- ICM
Readyrequires a successful supervised probe and a read-only snapshot of the canonical
store. FTS5-only retrieval is a supported ready capability; a missing database is
unavailable, never a synthetic empty project. - Project memory is a privacy-safe topic graph — opaque node IDs, aggregate counts, bounded
relationships. Memory bodies and store paths never enter the API. - grepai reports generation and configuration fingerprints, artifact freshness, watcher
PID/uptime and ownership. A cached semantic canary must return visible hits before semantic
search isReady, and the canary cannot credit its own ledger. - Provider tokens and cost appear only from accepted receipts. Without a receipt source the UI
saysNo provider receiptsrather than displaying an invented zero.
One rule behind all of it
- "Did this operation go through the optimizer?" was answered in three places — the ledger, a
hand-written SQL predicate and the CLI — with three different answers. - It is now one classifier in
hzr-core::operation, and the SQL predicate is generated from
the same marker list, so the terminal, the dashboard and the ledger cannot drift apart again.
Fixed in 0.3.2
- A
letchain inhzr-core::operationcompiled locally but not on the declared MSRV
(rust-version = "1.85"), failing themsrvCI job and blocking the release workflow. - The GitHub Release description is taken from this file instead of an auto-generated commit
list, so the published release and the repository state the same thing. - CI uses the official Node 24 editions of GitHub's checkout, Node, Go, artifact and attestation
actions. Go caching is disabled where engine sources are cloned only after setup, eliminating
both the Node 20 deprecation annotations and the misleading missing-go.sumcache warning.
Upgrading
hzr updateNothing in your ledger is rewritten. The bypass panel appears on the next hzr stats, and
coverage closes on the next rewrite the daemon serves.
Verification
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-targets --all-features
rustup run 1.85.0 cargo check --locked --workspace --all-targets --all-features
scripts/verify-fork-core.sh --test
cd visualizer && bun test && bun run typecheck && bun run buildThe tag workflow additionally builds Linux and macOS bundles for x64 and ARM64, attests build
provenance and publishes the pre-release.