Skip to content

release: v0.36.1 — widen bareguard peer range to admit 0.13.x - #31

Merged
hamr0 merged 1 commit into
mainfrom
chore/bareguard-0.13-range
Aug 13, 2026
Merged

release: v0.36.1 — widen bareguard peer range to admit 0.13.x#31
hamr0 merged 1 commit into
mainfrom
chore/bareguard-0.13-range

Conversation

@hamr0

@hamr0 hamr0 commented Aug 13, 2026

Copy link
Copy Markdown
Owner

v0.36.1 — admit bareguard 0.13.x (manifest bump, no code change)

Closes the conditional coordination item tracked in #30 (bareguard 0.13.0 is now live on npm).

What & why

bareguard 0.13.0 changed gate.annotate() — a malformed fact (non-object, array, missing surface, or one that throws when read) is now rejected into a distinct annotate_malformed audit row instead of normalized into a silently-honored one; surface must be an explicit boolean.

judgeToAnnotation is already compliant by construction (verified at source, not on the maintainer's word):

  • returns a single object literal → dodges the array/non-object rejection;
  • surface: v.verdict !== 'honored' → always an explicit boolean;
  • meta is String()-coerced scalars → JSON-safe (immune to 0.13.0's meta JSON-round-trip copy) and has no __proto__ key (immune to __proto__ stripping).

So this is a manifest range bump only: >=0.9.0 <0.13.0>=0.9.0 <0.14.0 in both peerDependencies and devDependencies (conservative <0.14.0 ceiling — each future bareguard minor is re-verified before admission).

Validation against bareguard 0.13.0

  • Installed 0.13.0 locally; typecheck + build:types exit 0.
  • bareguard-touching tests (shell-tools + both integration-bareguard suites): 84/84 pass.
  • Full suite: green except one pre-existing load-induced timing flake in spawn.test.js (idle-watchdog vs child cold-start under concurrent-suite load) — reproduced 0/3 in isolation, and spawn does not import bareguard so a devDep bump cannot affect it.

No test change needed

Our tests exercise the pure judgeToAnnotation render (which already asserts surface is an explicit boolean); nothing calls the real gate.annotate, so 0.13.0's changed annotate semantics touch no test here.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Gnmz6puuaZrv4NmSr1FpfT

bareguard 0.13.0 shipped a gate.annotate() behavior change (a malformed fact is
now rejected into an annotate_malformed audit row instead of silently honored;
surface must be an explicit boolean). judgeToAnnotation is already compliant by
construction — single object literal, surface: v.verdict !== 'honored' (explicit
boolean), meta of String()-coerced scalars (JSON-safe, no __proto__ key) — so no
bare-agent code change is needed; this is a manifest range bump only
(>=0.9.0 <0.13.0 -> >=0.9.0 <0.14.0 in peerDependencies + devDependencies).

Validated against bareguard 0.13.0: typecheck + build:types clean; the
bareguard-touching tests (shell-tools + both integration-bareguard suites) pass
84/84; the one full-suite miss was a pre-existing load-induced timing flake in
spawn.test.js (idle-watchdog vs child cold-start), reproduced 0/3 in isolation and
structurally unaffected by a devDep bump. Closes the #30 coordination item.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gnmz6puuaZrv4NmSr1FpfT
@hamr0
hamr0 merged commit b1a454b into main Aug 13, 2026
2 checks passed
@hamr0
hamr0 deleted the chore/bareguard-0.13-range branch August 13, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant