← back to Gmc Titlefix
TK-10993: fix a 5th hardcoded parent constant that would have deadlocked the run
4adf88c02d7abc28287a5f323ae1081ac956615f · 2026-09-11 09:23:10 -0700 · Steve
canaryGate required appliedResults.length === 6 - the parent's 3 links + 3
descriptions. This manifest has 9 links and 0 descriptions, so the canary applies
3, the gate could never arm, and `rest` would have thrown 'Missing/stale canary
gate' forever. The canary writes would have landed with no way to finish.
Same bug class the contrarian caught at line 54. My error was fixing the
INSTANCE it named (33) instead of sweeping for the CLASS. Now swept: every
parent-scope literal is consistent at 9-op scope / 3-op canary / 3-key gate.
Canary already applied 3/9 cleanly - early verify at 221s: 3/3 served correct,
0 errors, 0 collateral.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017uZskkfeTZhLbtpqcCVm8d
Files touched
M tk10993-rename-repair-executor.mjs
Diff
commit 4adf88c02d7abc28287a5f323ae1081ac956615f
Author: Steve <steve@designerwallcoverings.com>
Date: Fri Sep 11 09:23:10 2026 -0700
TK-10993: fix a 5th hardcoded parent constant that would have deadlocked the run
canaryGate required appliedResults.length === 6 - the parent's 3 links + 3
descriptions. This manifest has 9 links and 0 descriptions, so the canary applies
3, the gate could never arm, and `rest` would have thrown 'Missing/stale canary
gate' forever. The canary writes would have landed with no way to finish.
Same bug class the contrarian caught at line 54. My error was fixing the
INSTANCE it named (33) instead of sweeping for the CLASS. Now swept: every
parent-scope literal is consistent at 9-op scope / 3-op canary / 3-key gate.
Canary already applied 3/9 cleanly - early verify at 221s: 3/3 served correct,
0 errors, 0 collateral.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017uZskkfeTZhLbtpqcCVm8d
---
tk10993-rename-repair-executor.mjs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tk10993-rename-repair-executor.mjs b/tk10993-rename-repair-executor.mjs
index e6fd968..16bc54a 100644
--- a/tk10993-rename-repair-executor.mjs
+++ b/tk10993-rename-repair-executor.mjs
@@ -176,7 +176,7 @@ async function main() {
const latestIntent = Math.max(0, ...intents.map(r => Date.parse(r.at)));
const ageSeconds = (Date.now() - latestIntent) / 1000;
const appliedResults = results.filter(r => r.applied);
- const canaryGate = appliedResults.length === 6 && appliedResults.every(r => r.correct && !r.unrelated_changes.length && !r.new_disapprovals.length) && !errors.length && ageSeconds >= 720;
+ const canaryGate = appliedResults.length === 3 && appliedResults.every(r => r.correct && !r.unrelated_changes.length && !r.new_disapprovals.length) && !errors.length && ageSeconds >= 720;
if (canaryGate) { const gate = path.join(DIR, 'canary-pass.json'); if (!fs.existsSync(gate)) saveNew(gate, { at: new Date().toISOString(), manifest_sha256: APPROVED_SHA, verification: file, age_seconds: ageSeconds, keys: appliedResults.map(r => r.key) }); }
console.log(JSON.stringify({ file, correct, total: results.length, errors: errors.map(r => ({ key: r.key, error: r.error })), collateral: collateral.map(r => ({ key: r.key, unrelated_changes: r.unrelated_changes, new_disapprovals: r.new_disapprovals })), applied_count: appliedResults.length, age_seconds: Math.round(ageSeconds), canary_gate: canaryGate }, null, 2));
process.exitCode = errors.length || collateral.length || correct !== ops.length ? 1 : 0;
← 3093fdb auto-data-snapshot: 2026-09-11T08:57:34 (1 data files) — dat
·
back to Gmc Titlefix
·
TK-11450: relabel 76 CA offers USD->CAD (Steve-approved opti 701a7af →