Full-suite repair, engine source-scan cluster. The package code organization waves moved ~30 engine modules into subdirectories (plugins/, execution/, scheduling/, healing/, worktree/, executor/ peels); the log-severity manifest, prompt carve-out, emit-surface, failure-lane, and worktree-invariant scanners now read the moved locations, verified per file via git log --follow. Two scans caught real drift rather than moves: the lifecycle census had 12 unexamined column guards (resolved with DELIBERATE-LITERAL markers for the mailbox archived tab, the FN-9059 lease-owner terminality check, and the FN-9056 legacy done fallback — baseline re-recorded with zero absorbed debt), and planning-claim gained a genuine second writer in self-healing's FN-8998 transport-failure recovery, admitted to the allowlist with its CAS-guarded justification. 9 files / 119 tests green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
/*
|
|
FNXC:LifecycleColumnCensus 2026-08-13-21:58:
|
|
Mailbox folder tabs reuse the word `archived`. A bare `activeTab === "archived"` must stay a
|
|
column-guard hit so a genuine lifecycle comparison that happens to use that variable name still
|
|
fails `--strict`. The mailbox sites mark a helper with DELIBERATE-LITERAL instead of a global
|
|
receiver exemption.
|
|
*/
|
|
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
|
|
import { findComparisons } from "../lib/lifecycle-column-census-ast.mjs";
|
|
|
|
test("a bare activeTab archived comparison stays in the column backlog", () => {
|
|
const findings = findComparisons(
|
|
"t.ts",
|
|
'if (activeTab === "archived") loadArchivedInbox();',
|
|
);
|
|
|
|
assert.deepEqual(
|
|
findings.map(({ columnId, receiver, kind }) => ({ columnId, receiver, kind })),
|
|
[{ columnId: "archived", receiver: "activeTab", kind: "column" }],
|
|
);
|
|
});
|
|
|
|
test("a mailbox archived-tab helper with DELIBERATE-LITERAL is not backlog", () => {
|
|
const findings = findComparisons(
|
|
"MailboxView.tsx",
|
|
`/*
|
|
DELIBERATE-LITERAL — mailbox folder tab, not a board column.
|
|
*/
|
|
function isMailboxArchivedTab(tab) {
|
|
return tab === "archived";
|
|
}
|
|
`,
|
|
);
|
|
|
|
assert.deepEqual(
|
|
findings.map(({ columnId, receiver, kind }) => ({ columnId, receiver, kind })),
|
|
[{ columnId: "archived", receiver: "tab", kind: "deliberate" }],
|
|
);
|
|
});
|