Skip to content

Credential gate: runtime-facing wording matches the best-effort audit contract (#119 residual, replaces #224) - #228

Merged
F-e-u-e-r merged 1 commit into
mainfrom
credential-gate-wording-residual
Aug 29, 2026
Merged

Credential gate: runtime-facing wording matches the best-effort audit contract (#119 residual, replaces #224)#228
F-e-u-e-r merged 1 commit into
mainfrom
credential-gate-wording-residual

Conversation

@F-e-u-e-r

Copy link
Copy Markdown
Owner

Summary

Follow-up to #119/#222#119 remains correctly CLOSED. The README repair stands; this fixes the same defect family's residual surfaces closer to runtime: the module docstring and the BLOCK_MESSAGE an agent actually reads when blocked still claimed guaranteed logging while _log() swallows every exception. One file, hooks/gate-credential-destruction.py, +9/−4, text only.

Three sites collapse to the settled best-effort contract:

  1. Override behavior: overridden hits attempt an audit log entry (best-effort — see _log); failure never blocks.
  2. Fail-open traceback: the traceback audit entry is attempted on a best-effort basis — no promise it survives.
  3. Module-level audit contract: _log swallows EVERY exception, directory creation included; a failed or unwritable log drops silently; the log is friction and telemetry, not a guaranteed audit trail.

Runtime unchanged — machine-proven

  • AST identical modulo string constants (zero executable control/data-flow change); ast.parse green.
  • _log() byte-identical; block path still exit 2; approved-override path still exit 0; fail-open behavior unchanged.
  • Zero unqualified guaranteed-logging wording remains anywhere in the file.
  • hooks/verify-before-stop.py byte-identical (explicitly out of scope); README mirrors unchanged; skills/metadata/markers zero-byte.
  • checks.py green (hook test suites included).

Provenance

Landed verbatim from contributor PR #224's current head 9c06888 (frozen diff sha256 03522918…); declared adaptations: NONE; #224 is never merged (this repo's consolidation convention) and closes with a replacement comment after this merges. No review gate consumed: the semantic ruling was fixed by the live implementation at #119, and this PR only conforms text to it — the owner gate proved "text corrected, runtime unchanged" mechanically. No broader audit-log redesign.

🤖 Generated with Claude Code

https://claude.ai/code/session_0132RthrKSsMkywcEwtkXhkx

…contract (#119 residual)

Follow-up to #119/#222: the README repair stands correctly closed; this
fixes the same overstatement's residual surfaces closer to runtime —
the module docstring and the BLOCK_MESSAGE an agent actually reads when
blocked. Three wording sites collapse to the settled best-effort
contract: overridden hits ATTEMPT an audit log entry; the fail-open
traceback entry is attempted best-effort; _log swallows EVERY exception
(directory creation included), a failed or unwritable log drops
silently and never blocks — friction and telemetry, not a guaranteed
audit trail. Code behavior unchanged: AST identical modulo string
constants, _log() byte-identical, block/override exit codes unchanged,
hook-suites green. Landed verbatim from contributor #224's current head
9c06888 (frozen diff sha256 03522918…); declared adaptations NONE; #224
is never merged. No broader audit-log redesign.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0132RthrKSsMkywcEwtkXhkx
@F-e-u-e-r
F-e-u-e-r merged commit 5824f30 into main Aug 29, 2026
3 checks passed
@F-e-u-e-r
F-e-u-e-r deleted the credential-gate-wording-residual branch August 29, 2026 10:42
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