Skip to content

Guard 3.0.42

Choose a tag to compare

@github-actions github-actions released this 01 Sep 23:10
1bf9e85

Guard 3.0.42 is a stable release cut from 1bf9e85.
8 commits • 7 merged pull requests • 2 contributors since Guard 3.0.41.

Features

  • guard: Add native WebAuthn approval authority (#2720)
    • Add a root-authenticated native WebAuthn V4 approval authority with strict bounded CBOR/COSE ES256 and Ed25519 verification.
    • Bind exact challenge, origin/RP, credential id/rawId/type, UP/UV, counter, policy, harness, runtime, and identity scope in Rust.
    • Keep Python as an opaque bounded transport adapter for the browser proof envelope; the resident Rust authority performs all semantic and cryptographic validation.
  • guard: Decouple native hook decision receipts (#2719)
    • Emit a bounded, identity-bound Rust decision receipt for supported native hook decisions.
    • Hand receipts to a privacy-safe asynchronous writer with bounded admission, restart recovery, idempotent persistence, and fail-safe degradation.
    • Enforce receipt ownership, privacy, and no-environment native-route evidence in CI.
  • guard: Integrate NHD-056–070 native approval and I/O controls (1aad04b)

Fixes

  • ci: Pin native-wheel publish to the release enrollment root (#2727)
    • Keep native-wheel publication gated on the public enrollment-root pin.
    • Document that stable and alpha native-wheel jobs compile that pin from repository variables of the same names.
  • guard: Keep inspection hooks alive when native review cannot complete (#2725)
    • Keep schema-valid hook responses when native review or the local daemon cannot complete.
    • Continue the emergency-safe inspection floor for workspace source reads, grep/glob, and bounded local git inspection, and pause mutating, network, secret, MCP, and uncertain actions.
    • Install Cursor hooks through the attested Python interpreter so a missing execute bit cannot fail-close the IDE.
  • guard: Score Codex and Cursor hooks by live intercept (#2726)
    • Score Codex hook health from live PreToolUse and PermissionRequest intercepts instead of authenticated manifest identity.
    • Score Cursor hook health from live blocking hook intercepts instead of attested CLI or script identity.
    • Keep stale fallback identity, extra third-party hook groups, and attested-identity drift as repair work, not machine-wide local protection failures.
  • guard: Stop false local protection degraded state (#2722)
    • Local protection health now treats Grok as protected when catch-all PreToolUse and observe hooks are installed, even if managed_config.toml is missing.
    • Guard Cloud pending or stale sync no longer appears on the Restore local protection card. Only a disconnected or failed Cloud proof still shows as a separate Cloud action.
    • A single failed local check is named in the recovery summary instead of a generic count plus Cloud copy.
  • guard: Treat --delete-branch=false as a non-delete squash merge (#2723)
    • Treat gh pr merge --squash --delete-branch=false as a routine squash merge, not a GitHub delete.
    • Parse --delete-branch with the same boolean equals-true/false rules as --admin. A false value does not add delete_remote.
    • Malformed values such as --delete-branch=maybe fail closed as an unknown command.

Install

Install this release:

uv tool install "hol-guard[cisco]==3.0.42"

Full changelog: v3.0.41...v3.0.42

Thanks @kantorcodes, @michael Kantor!