HZR 0.3.7
Pre-releaseHZR 0.3.7 — Honest accounting and bounded output
HZR 0.3.7 makes the local reduction estimate state exactly which observed traffic it covers.
MCP calls, hook-routed CLI work, native host file tools, and inherited-stdio passthrough now have
explicit accounting routes. Native or unmeasurable operations remain visible without receiving
invented token counts or savings credit, and provider-billed usage remains a separate receipt.
The release also makes every bounded result explain its bound and recovery path. Search reports the
mode that actually ran, context candidates identify enclosing symbols when possible, and long
installer, daemon, MCP, and agent operations emit progress or remain bounded by a timeout.
What changed
- Operation rows carry typed
channel,measurement, androutevalues.hzr stats
reports the measured coverage share, explicitly unmeasured bypasses, daemon-unavailable gaps,
and thehook_cli/mcp/native_hostsplit. - Claude receives a failure-silent
PostToolUseobserver for nativeRead,Grep,Glob,
Edit, andWrite. It sizes the serialized response, stores no tool content, changes no
result, and grants no savings credit. - Every successful MCP tool produces one neutral accounting row. Validation failures produce no
success row, and an accounting write lost with the daemon unavailable becomes a visible gap. - Inherited-stdio passthrough is explicitly
unmeasuredinstead of a misleading zero-token
delivery. Captured RAW output remains a neutral baseline with equal input/output estimates. - Bounded and ranged reads report file totals, omitted spans, and shell-safe recovery commands.
Long-line shortening names--level none; memory exploration reportsN of M shownand
points to--detail verbose. - Memory recall exposes
total_matches; bounded context memory names omitted bytes and the
record id; search responses exposenext_step. - Search text and structured output always report effective mode, fallback reason, and scan
diagnostics, including zero-hit results. Exact mode preserves trailing whitespace and is
explicitly per-line. - Search candidates use symbol outlines and line spans to resolve the smallest enclosing symbol.
Every unresolved symbol carries a typed reason, and aggregate outline failures are warnings. - MCP output schemas declare their nested properties and required fields and are checked against
representative structured content. - Installer and bundle downloads show progress outside a TTY and have an overall timeout. MCP
search/planning sends progress notifications; foregroundhzrdand long agent runs emit
liveness output. - Public symlink swaps use one portable helper. Re-running
hzr install --forcewith identical
bundle bytes preserves thecurrent-based public symlinks. - The dashboard separates optimized, measured RAW, native-observed, and unmeasured operations.
Upgrade impact
The ledger schema is migrated additively on first write; existing operation rows retain their
previous measured CLI interpretation. Indexes, memory records, project activation, and provider
receipts are not rewritten.
A normal install adds the native PostToolUse observer to HZR's marker-owned Claude hook entries.
Unrelated settings and hooks remain preserved by the existing transactional installer. In
project-only mode, the observer follows the same selected-workspace activation policy.
Upgrade and verify with:
hzr update
hzr --version
hzr hooks status
hzr stats
hzr doctor --workspace .Restart already-open agent sessions after upgrading so they reload the managed hook and MCP
contracts.
Verification
The release was checked with:
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-targets --all-features
scripts/verify-fork-core.sh --test
cd visualizer && bun run typecheck && bun test
scripts/smoke-install.sh /path/to/hzr.tar.gz /path/to/SHA256SUMSThe fork-core gate passed 1717 tests with one intentionally ignored test and matched the reviewed
141-warning inherited Clippy ratchet. The packaged smoke passed clean installation, project-only
activation, same-version re-attestation, tamper rejection, and upgrade/rollback checks. It also
verifies that doctor recognizes the canonical dispatcher, SessionStart initializer, and
PostToolUse observer. Provider-backed benchmarks were not regenerated because this release
changes coverage and output contracts, not model fidelity or billed-token measurement.