Release notes

HOL Guard v3.60.0a31

Preview

HOL Guard v3.60.0a31, released November 8, 2026, is a preview release with 6 additions, 4 fixes and 5 other changes across 14 merged pull requests. Highlights: Write a relayed package call's forward and block receipts natively; Serve the cloud action evaluator as hol-guard-runtime cloud-action.

Changes since the previous release on this channel: alpha/v3.60.0a30alpha/v3.60.0a31

6 added · 4 fixed · 5 other

Published Original GitHub release for alpha/v3.60.0a31

Key facts

Version
v3.60.0a31
Channel
Preview
Published
Previous release
alpha/v3.60.0a30
Merged pull requests
14

Documented changes

15 typed entries

Verified contributors

1 verified contributor · 14 credits

Attribution coverage

attribution complete; history inventory partial.

Scope

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

Changes

Added

6
  • guard-runtimeWrite a relayed package call's forward and block receipts natively (#7420) Evidence for this change
    • is_plain stays structural, since it runs under the direct-evidence queue lock: exact record and package keys, a forward's policy- source, a block's policy-block source, and the package facts' types.
    • The detached writer rebuilds the package request's artifact through the same parse the gate ran (parse_package_intent: tool, arguments, workspace, PATH). If the rebuilt artifact id differs from the one the record…
    • Against that artifact it composes the allow_tool_call / block_tool_call store arguments. The scanner evidence is the firewall entry, then the decision's evidence, then the package evidence. The approval-context…
  • runtimeServe the cloud action evaluator as hol-guard-runtime cloud-action (#7418) Evidence for this change
    • Moves the guard-cloud-action JSON-lines loop (startup flags/env, 4 MiB line cap, oversize-line recovery) into guard_command::cloud_action_serve::serve.
    • guard-cloud-action now calls it; its behaviour and exit codes are unchanged.
    • hol-guard-runtime cloud-action [--binding-set PATH] [--activation-public-key HEX] runs the same loop. The native wheel already ships hol-guard-runtime, so a host that installs the wheel gets the evaluator without…
  • guard-runtimeWrite a safe-alternative block's receipt and silent inbox row natively (#7417) Evidence for this change
    • Receipt. A policy-safe-alternative block record carrying its review redaction level is now plain. Its receipt uses the risk categories of the call projected with its artifact, as the proxy's…
    • Silent inbox row. After the receipt, a review or require-reapproval block also gets the queue_blocked_approvals row that record_unprompted_review writes:
    • no prompt is shown;
  • guard-runtimeWrite an ask-blocked MCP call's receipt from the resident (#7416) Evidence for this change
    • An ask record is plain when its approval request has the exact shape _queued_approval accepts and carries no notice left to raise. A record that still carries one, an approval on a forward, or an approval on a…
    • Cline's approval flow opens the approval center in the browser (approval-center tier with auto_open_browser), and only the daemon's _open_approval_center can do that. Its ask records stay with the daemon. The…
    • Like the proxy, the receipt's risk categories come from projecting the call with its artifact: risk_input(artifact, params["arguments"]) uses the host-ordered arguments. Only a mapping's entries preserve that order…
  • guard-runtimeRaise a relayed MCP call's approval notice from the resident (#7414) Evidence for this change
  • runtimeRaise a connector-setup notice in the resident drain (#7395) Evidence for this change
    • It honours HOL_GUARD_DESKTOP_NOTIFICATIONS and the effective desktop_notifications config. A config that can't be read leaves notifications on, as the daemon does.
    • It notifies once per connector. The store answers with the first notified sibling's marker, and an in-process claim stops two records from showing the same request twice.
    • It signs the approval link the way the review link is signed, and marks the row notified once the notice is shown.

Fixed

4
  • guardKeep optional direct requests on eligible warm clients (#7412) Evidence for this change
    • Atomically lease an existing live idle native client for short evidence polls. A competing caller taking the last warm stream now causes a miss instead of a cold client spawn; a client dying after lease cannot respawn…
    • Skip optional PI/OMP direct-hook RPCs when the publisher cannot bind the daemon home. Keep evidence draining, ordinary daemon enforcement, native binding checks, and request deadlines unchanged.
  • cloud-reviewDeliver review events from a Guard home restored from an older copy (#7415) Evidence for this change
    • cloud_review_ack.rs: a review_event_sequence_conflict result now carries the event id, the same as a snapshot collision.
    • guard_store_review_settle.rs: conflicts are passed to the rebase step together with snapshot collisions. It now shares the collision codes with the ack module.
    • guard_store_outbox_recover.rs: a non-snapshot event can be rebased only when its sequence is at or below Cloud's mark. Others are filtered out before the group is validated.
  • guard-commandLet a repository that keeps its hooks inside itself start a checkout (#7413) Evidence for this change
  • guard-reviewRetry a command queue request a second after a gateway drops it (#7411) Evidence for this change
    • no Retry-After: wait one second, then retry (still at most two gateway retries before the error surfaces to the drain loop's own backoff)
    • Retry-After present: honor it exactly as before
    • every other sync caller: unchanged, keeps the 60-second default

Other changes

5
  • Guard 3.60.0a31 is an opt-in prerelease cut from 84ba6e4. Stable installations remain on the stable channel. 14 commits • 14 merged pull requests • 1 contributor since Guard 3.60.0a30. Evidence for this change
  • guard-runtimeLeave a fully recorded hook record off the daemon's evidence page (#7422) Evidence for this change
  • contextMap prompts to line ranges instead of pasting code (#7372) Evidence for this change
  • guard-runtimeSkip the path walk when the runtime candidate is already its resolved path (#7410) Evidence for this change
  • guard-reviewStop rereading drain lane state and runtime status per store call (#7409) Evidence for this change
    • Merged pull request #7420: feat(guard-runtime): write a relayed package call's forward and block receipts natively
    • Merged pull request #7409: perf(guard-review): stop rereading drain lane state and runtime status per store call (#7409)
    • Merged pull request #7412: fix(guard): keep optional direct requests on eligible warm clients
    • Merged pull request #7372: perf(context): map prompts to line ranges instead of pasting code
    • Merged pull request #7411: fix(guard-review): retry a command queue request a second after a gateway drops it (#7411)
    • Merged pull request #7414: feat(guard-runtime): raise a relayed MCP call's approval notice from the resident (#7414)
    • Merged pull request #7410: perf(guard-runtime): skip the path walk when the runtime candidate is already its resolved path (#7410)
    • Merged pull request #7413: fix(guard-command): let a repository that keeps its hooks inside itself start a checkout
    • Merged pull request #7417: feat(guard-runtime): write a safe-alternative block's receipt and silent inbox row natively
    • Merged pull request #7395: feat(runtime): raise a connector-setup notice in the resident drain (#7395)
    • Merged pull request #7418: feat(runtime): serve the cloud action evaluator as hol-guard-runtime cloud-action
    • Merged pull request #7416: feat(guard-runtime): write an ask-blocked MCP call's receipt from the resident
    • Merged pull request #7422: perf(guard-runtime): leave a fully recorded hook record off the daemon's evidence page
    • Merged pull request #7415: fix(cloud-review): deliver review events from a Guard home restored from an older copy

Upgrade and compatibility

None documented.

Compare with the previous release

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

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 ledger14 credits