test(engine): repoint source-scan contracts to the peeled module layout
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>
This commit is contained in:
41
scripts/__tests__/lifecycle-census-mailbox-tab.test.mjs
Normal file
41
scripts/__tests__/lifecycle-census-mailbox-tab.test.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
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" }],
|
||||
);
|
||||
});
|
||||
@@ -6,6 +6,7 @@
|
||||
"packages/dashboard/app/components/TaskContextMenu.tsx\u0000in-review": 3,
|
||||
"packages/engine/src/scheduler.ts\u0000in-progress": 3,
|
||||
"packages/engine/src/scheduler.ts\u0000in-review": 3,
|
||||
"packages/engine/src/self-healing.ts\u0000done": 3,
|
||||
"packages/engine/src/self-healing.ts\u0000in-review": 3,
|
||||
"packages/core/src/agents/live-agent-count.ts\u0000in-progress": 2,
|
||||
"packages/core/src/agents/live-agent-count.ts\u0000in-review": 2,
|
||||
@@ -32,7 +33,6 @@
|
||||
"packages/engine/src/merge/auto-merge-finalization.ts\u0000done": 2,
|
||||
"packages/engine/src/scheduler.ts\u0000archived": 2,
|
||||
"packages/engine/src/scheduler.ts\u0000done": 2,
|
||||
"packages/engine/src/self-healing.ts\u0000done": 2,
|
||||
"packages/engine/src/triage.ts\u0000triage": 2,
|
||||
"plugins/fusion-plugin-reports/src/store/report-store.ts\u0000archived": 2,
|
||||
"packages/cli/src/commands/task.ts\u0000archived": 1,
|
||||
@@ -67,12 +67,15 @@
|
||||
"packages/core/src/tasks/task-intake-owner-resolver.ts\u0000todo": 1,
|
||||
"packages/core/src/tasks/task-move-disposer.ts\u0000in-progress": 1,
|
||||
"packages/core/src/tasks/task-move-disposer.ts\u0000todo": 1,
|
||||
"packages/core/src/tasks/workspace-lease-types.ts\u0000done": 1,
|
||||
"packages/dashboard/app/components/command-center/liveSnapshotMetrics.ts\u0000in-progress": 1,
|
||||
"packages/dashboard/app/components/command-center/MissionControlPanel.tsx\u0000done": 1,
|
||||
"packages/dashboard/app/components/command-center/MissionControlPanel.tsx\u0000in-review": 1,
|
||||
"packages/dashboard/app/components/command-center/MissionControlPanel.tsx\u0000todo": 1,
|
||||
"packages/dashboard/app/components/DocumentsView.tsx\u0000archived": 1,
|
||||
"packages/dashboard/app/components/DocumentsView.tsx\u0000done": 1,
|
||||
"packages/dashboard/app/components/MailboxModal.tsx\u0000archived": 1,
|
||||
"packages/dashboard/app/components/MailboxView.tsx\u0000archived": 1,
|
||||
"packages/dashboard/app/components/MissionManager.tsx\u0000archived": 1,
|
||||
"packages/dashboard/app/components/RoutineEditor.tsx\u0000triage": 1,
|
||||
"packages/dashboard/app/components/ScheduleForm.tsx\u0000triage": 1,
|
||||
|
||||
Reference in New Issue
Block a user