Release notes

HOL Guard v3.56.0a5

Preview

HOL Guard v3.56.0a5, released October 24, 2026, is a preview release with 9 additions, 4 improvements, 22 fixes and 9 other changes across 41 merged pull requests. Highlights: Decide a case statement as the lists its arms hold; Lay out the Supply Chain screen as a roster with a ruled details ledger.

Changes since the previous release on this channel: alpha/v3.56.0a4alpha/v3.56.0a5

9 added · 4 improved · 22 fixed · 9 other

Published Original GitHub release for alpha/v3.56.0a5

Key facts

Version
v3.56.0a5
Channel
Preview
Published
Previous release
alpha/v3.56.0a4
Merged pull requests
41

Documented changes

44 typed entries

Verified contributors

Attribution coverage

attribution complete; history inventory partial.

Scope

Guard v3.56.0a5 is a preview release published 2026-10-24. Upstream documents: Guard 3.56.0a5 is an opt-in prerelease cut from 51c7c19. Stable installations remain on the stable channel. 43 commits • 41 merged pull requests • 3 contributors since Guard 3.56.0a4. Its comparison base is alpha/v3.56.0a4. It includes 43 verified contribution deliveries with public evidence links.

Changes

Added

9
  • commandDecide a case statement as the lists its arms hold (#5856) Evidence for this change
  • dashboardLay out the Supply Chain screen as a roster with a ruled details ledger (#5867) Evidence for this change
    • The roster leads. The status hero comes first, then package managers with search and filters. Audit and Sync act on the whole roster, so they now sit after it.
    • One ruled details ledger. Recent activity, workspace audit, supply chain intel, connected apps, the safety check source and the Guard Cloud capabilities share a new SupplyChainDetailSection. On wide screens the…
    • Supply chain intel shows the bundle facts as a definition list, severity counts as plain text, and top advisories as a list. Loading, error and empty states each have their own copy.
  • dashboardDraw what leaves the device on the About page (#5866) Evidence for this change
  • nativeRead a whole command group as the list inside it (#5849) Evidence for this change
  • nativeProve a repository count and an attribute check as reads (#5846) Evidence for this change
  • nativeRead a sparse-checkout listing as the read it is (#5851) Evidence for this change
  • gauntletReport the decision each case actually drove (#5835) Evidence for this change
  • nativeVerify a trust attestation end to end in Rust (#5817) Evidence for this change
  • nativePort the truthful protection-health report to Rust (#5833) Evidence for this change

Improved

4

Fixed

22

Other changes

9
  • Guard 3.56.0a5 is an opt-in prerelease cut from 51c7c19. Stable installations remain on the stable channel. 43 commits • 41 merged pull requests • 3 contributors since Guard 3.56.0a4. Evidence for this change
  • nativeRead a local CLI's help text in the resident (#5843) Evidence for this change
  • commandRead a nameless env behind exec where the bare spelling is read (#5875) Evidence for this change
  • nativePin the MCP launch gate both halves decide (#5847) Evidence for this change
  • redactionRecord the operator shapes the parity vectors missed (#5844) Evidence for this change
  • nativeRead the recorded native decision back the way Guard does (#5845) Evidence for this change
  • nativePass the recording flag in the Bash post-delivery tests (#5839) Evidence for this change
  • gauntletHost a file-tool call in the approve-then-retry lane (#5830) Evidence for this change
  • gitleaksAllow file digests in contribution authoring records (32b9172) Evidence for this change
    • Merged pull request #5802: fix(redaction): mask secrets written as exported shell assignments (#5802)
    • Merged pull request #5850: fix(native): keep a JSONC comment's line breaks and report real positions (#5850)
    • Merged pull request #5845: test(native): read the recorded native decision back the way Guard does (#5845)
    • Merged pull request #5868: refactor(supply-chain): record the evidence identifiers the resident derived (#5868)
    • Merged pull request #5842: fix(detection): refuse an unexaminable Gemini extension root instead of reporting none
    • Merged pull request #5851: feat(native): read a sparse-checkout listing as the read it is (#5851)
    • Merged pull request #5835: feat(gauntlet): report the decision each case actually drove (#5835)
    • Merged pull request #5856: feat(command): decide a case statement as the lists its arms hold (#5856)
    • Merged pull request #5849: feat(native): read a whole command group as the list inside it (#5849)
    • Merged pull request #5838: fix(native): carry an operator's choice to an Oh My Pi MCP tool (#5838)
    • Merged pull request #5830: test(gauntlet): host a file-tool call in the approve-then-retry lane (#5830)
    • Merged pull request #5869: refactor(native): read a skill's document in the native runtime (#5869)
    • Merged pull request #5840: fix(native): prove a literal-status exit step in a command chain (#5840)
    • Merged pull request #5853: fix(command): read the env options that only name the environment (#5853)
    • Merged pull request #5834: fix(release): replace interrupted delivery uploads when publication is retried (#5834)
    • Merged pull request #5829: fix(scanner): read a credential written after an answer word as a value (#5829)
    • Merged pull request #5841: fix(native): let a restored release replace the security root its failed upgrade left (#5841)
    • Merged pull request #5858: fix(command): keep the activity record for a rule whose risk class the effect table does not name (#5858)
    • Merged pull request #5848: fix(native): name a JSON number's Python type the way json.loads does (#5848)
    • Merged pull request #5870: fix(shell): read an env prefix behind a launcher as the parser reads it (#5870)
    • Merged pull request #5827: fix(commands): read an absolute path that does not exist like a relative one (#5827)
    • Merged pull request #5867: feat(dashboard): lay out the Supply Chain screen as a roster with a ruled details ledger (#5867)
    • Merged pull request #5861: refactor(native): keep one copy of the lists the false-positive rules read (#5861)
    • Merged pull request #5852: fix(native): read a collapsing relative path as the current directory (#5852)
    • Merged pull request #5875: test(command): read a nameless env behind exec where the bare spelling is read (#5875)
    • Merged pull request #5854: fix(sink): let the native parser name every prefix the contained sink peels (#5854)
    • Merged pull request #5865: fix(github): read a trailing --help as help rather than as the command it follows (#5865)
    • Merged pull request #5871: refactor(supply-chain): keep one ecosystem support table (#5871)
    • Merged pull request #5844: test(redaction): record the operator shapes the parity vectors missed (#5844)
    • Merged pull request #5839: test(native): pass the recording flag in the Bash post-delivery tests (#5839)
    • Merged pull request #5880: fix(sync): wait briefly for catalog discovery before posting the runtime session (#5880)
    • Merged pull request #5843: perf(native): read a local CLI's help text in the resident (#5843)
    • Merged pull request #5872: fix(command): read past a bare exec when projecting an environment prefix (#5872)
    • Merged pull request #5817: feat(native): verify a trust attestation end to end in Rust (#5817)
    • Merged pull request #5831: ci(gitleaks): allow file digests in contribution authoring records
    • Merged pull request #5836: fix(native): review globs that print or bind credential-directory listings (#5836)
    • Merged pull request #5866: feat(dashboard): draw what leaves the device on the About page (#5866)
    • Merged pull request #5846: feat(native): prove a repository count and an attribute check as reads (#5846)
    • Merged pull request #5837: fix(aibom): sync skill inventory that Guard Cloud accepts and report rejections (#5837)
    • Merged pull request #5847: test(native): pin the MCP launch gate both halves decide (#5847)
    • Merged pull request #5863: fix(ci): record why the locked zod leaves the advisory's code unreached (#5863)
    • Merged pull request #5833: feat(native): port the truthful protection-health report to Rust (#5833)
    • Merged pull request #5879: fix(ci): let the Gauntlet runtime build name its own size bound (#5879)

Upgrade and compatibility

None documented.

Compare with the previous release

Predecessor on the same channel: alpha/v3.56.0a4

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