chore(core): mark the async-mission fallback arms DELIBERATE-LITERAL (census 108→106) (#3056)

Fleet phase. Claimed `packages/core/src/async-mission-store-queries.ts`
— **the only census file with no branch, no worktree, and no open PR
against it.** Claim published by pushing the branch before doing any
work.

## Census before / after

| | total | this file | deliberate |
|---|---|---|---|
| before | **108** | 2 | 128 |
| after | **106** | 0 | **130** |

`--strict` exits 0, baseline re-recorded in the same commit.

**This is a reclassification, not a conversion.** The same two lines are
still there. A reader comparing 108 → 106 against my #3047's 126 → 121
should know only the latter changed behaviour.

## Why marking is the right answer here

Both sites are the **fallback arm** of the three-state rule:

```ts
terminalColumns?.complete ? terminalColumns.complete.has(column) : column === "done";
```

`terminalColumns` undefined means the caller could not resolve lanes.
The legacy id is then the only answer that keeps the query working at
all — converting it would delete the fallback and make an unresolvable
caller return nothing. The census counts the literal, but **the literal
is the design**.

The file's own comment shows a previous worker already reached this
conclusion. Nothing recorded it in a form the tool reads, so it stayed
in `byFile` as apparent backlog for the next pass to re-derive.

## The finding this makes concrete

I checked five unclaimed files this phase (`agent-store`,
`github-tracking-state`, `planner-overseer`, `auto-merge-finalization`,
this one). **Every site in them was either a fallback arm or an
already-documented deliberate leave** — `agent-store.ts:236` carries a
comment from today's fleet phase explaining why it stays.

So the remaining count is not a work queue. A meaningful share is
correct code the tool cannot distinguish from owed work, and each fleet
pass pays to re-derive that. Marking them is cheap, mechanical, and
makes the number mean "conversions owed" — which is what every worker
reads it as when picking a cluster.

I marked only the file I claimed. The others belong to whoever holds
them.

## Verification

- `census --strict` exit 0; `tsc --noEmit` **0 errors**
- `check:fnxc-future-dates`, `check:lane-wiring`,
`check:sql-column-literals`, `check:inert-flag-seams` — all exit 0
- No behaviour change: the two expressions are byte-identical, only
comments added

## Note on the marker's granularity

The first marker covered only `isComplete` — the census attaches markers
by *preceding comment*, so the sibling `isArchived` needed its own.
Caught by re-running the census (2 → 1, not 2 → 0) rather than by
reading. Worth knowing before marking a group of related literals.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-07-31 03:13:09 -07:00
committed by GitHub
parent 21ef60047e
commit 581e6fba43
2 changed files with 17 additions and 2 deletions

View File

@@ -2253,8 +2253,22 @@ export async function getTerminalTaskEvidence(
third deferral of mine to dissolve on inspection, which is why the premise is now recorded next to
the fix rather than in a note claiming it cannot be done.
*/
/*
FNXC:LifecycleColumnCensus 2026-07-31-11:30 (fleet phase — RECLASSIFICATION, not a conversion):
DELIBERATE-LITERAL — these two ids are the FALLBACK ARM of the three-state rule, not backlog.
`terminalColumns` undefined means the caller could not resolve lanes; the legacy id is then the only
answer that keeps this query working, exactly as it did before lanes existed. Converting them would
delete the fallback and make an unresolvable caller return nothing — the census counts the literal,
but the literal IS the design.
Marked rather than converted because every fleet pass re-derives this and leaves it, and an unmarked
correct site is indistinguishable from owed work in `byFile`. The marker moves it to
`deliberateByFile`, which is what the count should mean.
*/
const isComplete = (column: string) =>
terminalColumns?.complete ? terminalColumns.complete.has(column) : column === "done";
/* DELIBERATE-LITERAL — same fallback arm as `isComplete` above; see the note there. */
const isArchived = (column: string) =>
terminalColumns?.archived ? terminalColumns.archived.has(column) : column === "archived";

View File

@@ -4,9 +4,7 @@
"packages/engine/src/self-healing.ts": 38,
"packages/engine/src/notification/notification-service.ts": 5,
"packages/engine/src/executor.ts": 4,
"packages/engine/src/restart-recovery-coordinator.ts": 4,
"packages/core/src/agent-store.ts": 2,
"packages/core/src/async-mission-store-queries.ts": 2,
"packages/core/src/task-store/moves.ts": 2,
"packages/core/src/task-store/project-store-ops.ts": 2,
"packages/core/src/task-store/reads.ts": 2,
@@ -32,6 +30,7 @@
"packages/engine/src/backlog-pressure-reporter.ts": 1,
"packages/engine/src/ephemeral-worker-manager.ts": 1,
"packages/engine/src/merger.ts": 1,
"packages/engine/src/restart-recovery-coordinator.ts": 1,
"packages/engine/src/runtimes/in-process-runtime.ts": 1,
"packages/engine/src/triage.ts": 1
},
@@ -66,6 +65,8 @@
"packages/cli/src/commands/task.ts\u0000done": 1,
"packages/cli/src/extension.ts\u0000archived": 1,
"packages/cli/src/extension.ts\u0000done": 1,
"packages/core/src/async-mission-store-queries.ts\u0000archived": 1,
"packages/core/src/async-mission-store-queries.ts\u0000done": 1,
"packages/core/src/live-agent-count.ts\u0000archived": 1,
"packages/core/src/live-agent-count.ts\u0000done": 1,
"packages/core/src/plugin-store.ts\u0000done": 1,