Release notes

HOL Guard v3.60.0a72

Preview

HOL Guard v3.60.0a72, released November 11, 2026, is a preview release with 4 additions, 9 fixes and 1 other change across 13 merged pull requests. Highlights: Write policy clears, imports and MCP requests in the native store; Build repair reports and reconcile results in the runtime.

Changes since the previous release on this channel: alpha/v3.60.0a71alpha/v3.60.0a72

4 added · 9 fixed · 1 other

Published Original GitHub release for alpha/v3.60.0a72

Key facts

Version
v3.60.0a72
Channel
Preview
Published
Previous release
alpha/v3.60.0a71
Merged pull requests
13

Documented changes

14 typed entries

Verified contributors

1 verified contributor · 13 credits

Attribution coverage

attribution complete; history inventory partial.

Scope

Guard v3.60.0a72 is a preview release published 2026-11-11. Upstream documents: Guard 3.60.0a72 is an opt-in prerelease cut from 0cff72a. Stable installations remain on the stable channel. 13 commits • 13 merged pull requests • 1 contributor since Guard 3.60.0a71. Its comparison base is alpha/v3.60.0a71. It includes 13 verified contribution deliveries with public evidence links.

Changes

Added

4
  • policyWrite policy clears, imports and MCP requests in the native store (#7553) Evidence for this change
    • Clear: clear_policy_decisions accepts an explicit decision_ids list (sibling widening is skipped for it; an empty list clears nothing). GuardStore.clear_policy_decisions is a shim. Its first call deletes only…
    • Document import: new import_policy_rows op writes a compiled policy document in merge or replace mode. The new rows are signed in the same generation advance. import_policy_document keeps normalization, compile…
    • MCP request apply: new apply_mcp_policy_request op checks every condition before it writes, so a refusal changes nothing except the expiry of a request found past its deadline. The checks are: the request is…
  • guardBuild repair reports and reconcile results in the runtime (#7557) Evidence for this change
    • New runtime command guard-repair-report (feature native-guard-repair-report-v1):
    • op: "report" builds the guard.repair.v1 report from each step's raw result: daemon, native runtime (with the durable-runtime collapse), native install, onefile leaks, hooks, package shims, command queue. It…
    • op: "reconcile" works out reconciliation's repaired and failed harnesses, repaired package managers and error codes from what the launcher refresh, hook repair, Cursor rebind and package-shim pass returned. A package…
  • policyPublish policy snapshots through the native runtime (#7548) Evidence for this change
    • New runtime command policy-snapshot-publish --stdin (feature native-policy-snapshot-publish-v1). It reads a settings line and the existing materialize request, then:
    • materializes the snapshot in process, under a lock wait of 80% of the remaining build budget (capped at 60 s);
    • provisions the derived verifier key after materializing when a business binding is present;
  • daemonAnswer policy saves and clears in the native edge (#7544) Evidence for this change
    • The edge runs the existing handler checks (policy_upsert, policy_clear), then the approval gate: the high-risk check, then require_policy_write or require_policy_clear with the grant it issued.
    • It holds policy-integrity-generation.lock (the same file and flock the library takes, opened O_NOFOLLOW, 30s wait) across the write.
    • The resident store gains clear_policy_decisions. It clears in one transaction, widens an artifact clear to the remembered-command siblings the dashboard shows as one row, and advances the integrity generation over…

Fixed

9
  • daemonRelease approved Codex commands when the native runtime is the daemon (#7551) Evidence for this change
  • guardTreat Cursor's terminal pager like Git's default pager (#7550) Evidence for this change
  • guardLet agents start Guard's daemon with daemon ensure (#7554) Evidence for this change
  • guardLet diff and cmp compare piped output against a file (#7540) Evidence for this change
    • a dash with nothing piped in (diff - README.md) still asks;
    • diff - - and cmp - - still ask;
    • the other operand must be a readable file, so a directory (diff -r - old), a credential file or an outside secret keeps the review;
  • guardLet git ls-files filter by a glob pathspec (#7534) Evidence for this change
  • guardAccept od byte-count, offset, type and width options (#7537) Evidence for this change
  • commandTell Oh My Pi how to fix edit headers Guard cannot prove (#7546) Evidence for this change
    • Decorated header. For [FILE: src/a.ts#0AC4], [*** Update File: src/a.ts#0AC4] and other bracket lines that are not a plain [PATH#TAG] header, the edit keeps its review, so a person can still allow it once or…
    • Space before the tag. Oh My Pi trims a header before it cuts the #TAG, so the path/paths copy it adds to the hook input keeps a space written before # ([src/a.ts #0AC4] gives "src/a.ts "). Guard trimmed…
    • Held eval. The review reason for Oh My Pi and Pi eval now tells the agent to change files with the edit tool as well as run commands with bash.
  • piReview headless prompts when their turn starts (#7523) Evidence for this change
  • guardLet perl and ruby version probes run without review (#7535) Evidence for this change
    • Merged pull request #7523: fix(pi): review headless prompts when their turn starts
    • Merged pull request #7544: feat(daemon): answer policy saves and clears in the native edge
    • Merged pull request #7546: fix(command): tell Oh My Pi how to fix edit headers Guard cannot prove
    • Merged pull request #7537: fix(guard): accept od byte-count, offset, type and width options
    • Merged pull request #7534: fix(guard): let git ls-files filter by a glob pathspec
    • Merged pull request #7540: fix(guard): let diff and cmp compare piped output against a file
    • Merged pull request #7554: fix(guard): let agents start Guard's daemon with daemon ensure
    • Merged pull request #7548: feat(policy): publish policy snapshots through the native runtime
    • Merged pull request #7535: fix(guard): let perl and ruby version probes run without review
    • Merged pull request #7553: feat(policy): write policy clears, imports and MCP requests in the native store
    • Merged pull request #7551: fix(daemon): release approved Codex commands when the native runtime is the daemon
    • Merged pull request #7550: fix(guard): treat Cursor's terminal pager like Git's default pager
    • Merged pull request #7557: feat(guard): build repair reports and reconcile results in the runtime

Other changes

1

Upgrade and compatibility

None documented.

Compare with the previous release

Predecessor on the same channel: alpha/v3.60.0a71

Verified contributors

Credits derive from public pull-request authorship, verified commit authorship, or verified co-authorship — never from thanks text or release metadata. Each distinct contributor is listed once; the evidence ledger paginates every published credit record.

Contributors

Evidence ledger13 credits