[object Object]

← back to Secrets Manager

TK-11683: document ENOENT-exclusion tradeoff (codex-check/Grok) — single-cycle self-healing vs chronic-WARN masking

b0935a9a484e14ddb280bd71cd1b4d861b4101b4 · 2026-09-16 12:34:12 -0700 · Steve Abrams

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qf3DHSrZSGBXkNENgsYdM8

Files touched

Diff

commit b0935a9a484e14ddb280bd71cd1b4d861b4101b4
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Sep 16 12:34:12 2026 -0700

    TK-11683: document ENOENT-exclusion tradeoff (codex-check/Grok) — single-cycle self-healing vs chronic-WARN masking
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01Qf3DHSrZSGBXkNENgsYdM8
---
 scan-transcripts.mjs | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/scan-transcripts.mjs b/scan-transcripts.mjs
index e5f9ff8..34f5aea 100644
--- a/scan-transcripts.mjs
+++ b/scan-transcripts.mjs
@@ -72,6 +72,18 @@ function runScan(projectsDir) {
   //     NOT a measurement gap (nothing to certify), so it does NOT flip to WARN.
   //     A genuinely-unreadable file (a real, non-ENOENT error surviving the
   //     retry) still counts as unreadable → WARN (fail-safe, cannot certify clean).
+  //
+  // RECORDED TRADEOFF (codex-check via Grok, 2026-09-16): ENOENT could in theory
+  // be an atomic-rename to a DIFFERENT .jsonl not in this run's enumeration, which
+  // would let a persistent secret go unscanned this cycle. Accepted deliberately
+  // because: (a) Claude Code appends to a stable <uuid>.jsonl and does NOT rename
+  // transcripts between .jsonl names — the observed vanish is pure delete/rotate;
+  // (b) this is a SCHEDULED durable-state canary, so any file that truly persists
+  // is caught on the NEXT run once it is stable in the enumeration (a miss is
+  // single-cycle, self-healing); (c) the strict alternative (WARN on every ENOENT)
+  // reintroduces the chronic-WARN noise that masks a real FAIL as "just the flaky
+  // canary" (TK-11795) — the worse failure. Flip to strict WARN only if Claude
+  // Code's transcript write model ever changes to cross-name renames.
   for (const f of files) {
     let text;
     try { text = fs.readFileSync(f, 'utf8'); scanned++; }

← 11e21a4 TK-11683: harden transcript scanner read loop (mid-write rac  ·  back to Secrets Manager  ·  auto-data-snapshot: 2026-09-17T09:53:49 (2 data files) — reg af8153b →