Skip to content

NockGuard v0.7.0: Ask tools stay visible, Wall counts records, stricter verify

Choose a tag to compare

@miraanocktech miraanocktech released this 14 Oct 01:21
· 10 commits to main since this release
8a7f241

NockGuard v0.7.0 changes what the proxy shows for ask tools, makes the Wall count audit records instead of calls, and tightens how verification reports a trail. It also fixes two proxy bugs and builds with a patched Go.

Upgrade notes: verify exit codes changed. nockguard verify --agent and verify --all now exit 1 for an empty trail (NO_ROWS) or a trail that runs past its signed checkpoint (UNANCHORED). v0.6.0 exited 0 for both. If a script treats a non-zero verify as a failure, it may now fail where it passed on v0.6.0. That is intended: v0.6.0 could report a trail as intact when the signed checkpoint did not cover all of it. The Wall's numbers will also be lower and labeled differently, as described below.

Install on macOS: brew upgrade nocktechnologies/tap/nockguard (installs nockguard and nockguard-wall). Linux and macOS archives with SHA256SUMS are attached below.

Changed

  • tools/list now keeps tools with an Ask verdict visible. Their calls are still held for local or Telegram approval. Denied tools stay hidden. An approved call records its final allow audit row before it is dispatched.
  • The Wall counts audit records, not calls, and says so: the header reads "records in view" and "threat records". Hidden tools from tools/list now show as a separate "tools hidden" count. They no longer count as rejected records, threats or part of the rejected share, so one rejected call no longer reads as 13 threats caught.
  • The Wall no longer scrolls sideways on narrow screens (390 px). Filters and tiles wrap, feed rows stack, and the evidence scope notes sit behind an "Evidence details" toggle on narrow screens. They stay open on wide ones.

Fixed

  • verify and verify --all report an empty signed trail as NO_ROWS and a trail that runs past its signed checkpoint as UNANCHORED. Only a non-empty, fully checkpointed trail reports PROTECTED. Evidence packs follow the same rule, so the CLI, the Wall and the packs agree.
  • verify --agent now checks the --audit file you pass. Before, it quietly checked the agent's default trail.
  • nockguard proxy now exits promptly when the upstream dies. It starts a one-second shutdown deadline, even if the client holds stdin open or stops reading stdout. It sends JSON-RPC -32603 errors for in-flight requests when the client can receive them, stops the upstream process group, and exits nonzero.
  • Fixed a race in the stdio proxy between a request and its response. The proxy now registers the response correlation before writing a request upstream, and clears its pending state if the write fails.
  • Output the upstream wrote before it exited is still delivered while the client reads. Shutdown waits for the client to go idle for one second, up to a ten-second cap.
  • Release archives and CI build with Go 1.26.9, and source and release binaries are checked with govulncheck.

Documentation

  • Wall installation guidance is corrected, and source line references are replaced with file links.
  • Homebrew and Linux archive installation are documented, including the Live Wall. Linux install now verifies the archive against SHA256SUMS first.
  • The /policy-lint, /vuln-scan and /threat-model helper commands, the Warden CLAUDE.md and README, and the model-API egress template now match the engine: unknown keys fail the load, mode defaults to deny, the full agent key list, per-agent audit trails and keygen --agent, egress-proxy --enforce, and the SSRF guard.
  • The helper template checks now report their own failures. A failed check exits instead of reading as a pass, and severity comes from real exit codes. The /vuln-scan helper also reads the verify verdict line before it labels an exit 1, so an empty trail or one past its checkpoint is no longer reported as a missing key.