@@ -27,4 +27,31 @@ When the gate blocks, the repair checklist now leads with `forge verify` so
2727the evidence gets recorded before the handoff snapshot. See
2828[ Cross-session memory] ( /concepts/cross-session-memory ) .
2929
30+ ** Clearer positioning for hooks and guardrails.** Forge's automatic hooks are
31+ Claude Code-specific, and — like every other advisory signal — they're
32+ off-by-default until you opt in with ` FORGE_ENFORCE=1 ` . The guardrails are
33+ defence in depth, not a security sandbox. Nothing about the runtime changed;
34+ the docs and CLI copy just match what the tool actually does. See
35+ [ CLI overview] ( /cli/overview ) and the
36+ [ Pre-action gate] ( /concepts/pre-action-gate ) .
37+
38+ ## Fixes
39+
40+ ** Secret redactor now preserves structured tool output.** Built-in tools like
41+ Bash, Read, and Grep return structured objects, and the previous redactor
42+ stringified those responses — which meant Claude Code silently discarded the
43+ rewrite and the unredacted output stayed visible. The redactor now walks the
44+ response recursively: strings are scrubbed in place, arrays and objects keep
45+ their keys and shape, and non-string leaves pass through untouched. Plain-string
46+ responses redact byte-identically to before, and a response with nothing to
47+ redact emits no rewrite at all.
48+
49+ ** ` FORGE_GUARD_STRICT=1 ` exit status is no longer swallowed.** The redactor's
50+ shell wrapper used to force a clean exit, hiding the strict-mode failure code
51+ from Claude Code so the ` DEGRADED ` signal never surfaced. The child's exit
52+ status is now propagated end-to-end, so strict mode's stderr feedback actually
53+ reaches you. Note that this hook runs after the tool has already executed —
54+ strict mode makes redactor degradation loud, but blocking a call before it runs
55+ is the job of the [ Pre-action gate] ( /concepts/pre-action-gate ) .
56+
3057</Update >
0 commit comments