You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(pm): dispatch-gates names every CI-run gate whose source sweeps the repo root (#15344)
`check:driver-memory-census` counts a `vi.mock` of a frozen driver package as a
module binding wherever in the tree it is written, and names no path literal in
its source — so the dispatch derivation scored it `undetermined` for every card
and no `--commands` harvest could contain it. A seat derived its family, ran 57
of them with 53 green, and CI's lint job then failed on the one gate the
derivation could not offer.
The gate's truthful population is the whole repository, so it now says so with
the `whole-tree-population` marker the bucket already uses, vouched by the
liveness predicate that reads its `git ls-files` enumeration.
Fixing one gate is not the fix. `ROOT_WALK_RESIDUE_LEDGER` and its live
`--self-test` case make the class computed: every family whose own source
carries a recognised repo-root walk must declare whole-tree, declare path-less,
be derivable by path, or hold a justified exclusion row. The next unnamed census
gate reds in `check:pm-dispatch-gates` instead of in CI a cycle later.
The wider residue was measured rather than guessed: of the 186 gate scripts CI
runs, 44 are named by no derivation. The remainder are subtree walkers whose
remedy is the ordinary ROOT_DIR_WATCH_HINTS declaration, one per-gate judgement
each; that class is filed separately rather than swallowed by a forty-row table
nobody would revisit.
Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: scripts/check-driver-memory-census.mjs
+23Lines changed: 23 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -188,7 +188,30 @@ function walk(dir, out = []) {
188
188
* an ignore list of our own; the walk is a fallback for a checkout that is not a
189
189
* git repository (a published tarball, an unpacked source archive) so the gate
190
190
* degrades to "scans more" rather than to "scans nothing".
191
+
*
192
+
* ## Why this gate declares its population to the dispatch derivation (#15312)
193
+
*
194
+
* `scripts/pm/dispatch-gates.mjs` maps a card's file surface to the gate
195
+
* families that watch it, so a seat can run locally what CI will run. This gate
196
+
* names no path literal anywhere in its source, so that derivation scored it
197
+
* `undetermined` for every card in the tree and it appeared in no seat's
198
+
* runnable list. Measured cost: a PR added one `vi.mock('@objectstack/driver-memory')`
199
+
* to a new test file, the seat derived and ran 57 families with 53 green, and
200
+
* CI's Lint & Repo Gates then failed on THIS gate — a red the seat could not
201
+
* have been told about, one cycle late.
202
+
*
203
+
* The truthful population is the whole repository, which is exactly what the
204
+
* marker below says. `candidateFiles` enumerates every tracked `*.ts`,
205
+
* `*.tsx`, `*.mts`, `*.cts` and every `package.json` in the tree, with a
206
+
* repo-root walk as the non-git fallback; NO subtree narrows it, and a module
207
+
* binding on the frozen package is a red wherever in the tree it is written.
208
+
* ⛔ The remedy is the declaration and not a path literal: an "every file"
209
+
* literal is what that tool's header prices as a fabricated lead on every card.
210
+
*
211
+
* A card that edits this gate reaches it by identity anyway; the marker is for
212
+
* every OTHER card, which is all of them.
191
213
*/
214
+
// dispatch-gates: whole-tree-population -- `candidateFiles` is a `git ls-files` enumeration of every tracked *.ts/*.tsx/*.mts/*.cts and every package.json in the repository (repo-root walk as the non-git fallback), so no card's file surface can narrow this gate: a module binding on the frozen package is a red wherever in the tree it is written.
0 commit comments