From f818bdce2c7ff7f22538b4a1b92eff026b941b9d Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Fri, 31 Jul 2026 07:09:57 -0700 Subject: [PATCH] =?UTF-8?q?gate:=20run=20the=20inert-sync-lane=20ratchet?= =?UTF-8?q?=20in=20test:gate=20=E2=80=94=20it=20was=20wired=20to=20nothing?= =?UTF-8?q?=20(#3136)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## A gate that nothing runs `check:inert-sync-lanes` has existed since #3062 and been hardened three times (#3068, #3079, and #3122 pending). It is invoked by **nothing** — not `test:gate`, not any workflow. It is a `package.json` script that only runs if a human types it. Here is the round trip that cost, on `main`: | | | |---|---| | **#3108** | flagged `triage.ts:765`: *"the obvious next move is to convert the third with the same helper. **That would be wrong twice over.**"* Both blockers named, backed by `sync-workflow-ir-second-blocker.test.ts`. | | **#3114** | converted exactly that arm, replaced the warning with its own note, reported census 45 → 44. | | **#3126** | reverted it — after someone ran the ratchet by hand and found `main` red. | Hours apart. All three green in CI. **No behaviour changed on any board at any point.** The ratchet flagged it correctly the entire time; nothing ran it, so a caught defect cost three PRs instead of one failed check. This is not a criticism of #3114's author. A written warning at the exact line, with a test behind it, was overwritten within hours by a well-intentioned change — that is simply what unenforced prose does under fleet pressure. It is the fourth time this class has landed (#3051, the `resolveMoveFanoutColumnsSync` family, #3114, and my own `--triage` draft that failed to zero). ## What this does One line: adds `node scripts/check-inert-sync-lane-conversions.mjs` to `test:gate`, beside the cheap AST guards it belongs with (`check-no-nohup`, `check-capacity-pool-id`, `check-mock-completeness`). Single-pass parse; no measurable cost. ## Scope reduced from the earlier version This branch previously also restored the triage literal. **#3126 landed that first**, so I rebuilt it as the wiring alone rather than carry a half-redundant diff. #3127 is closed with nothing lost. ## Census before / after ``` before: COLUMN guards (the backlog): 18 after: COLUMN guards (the backlog): 18 ``` Unchanged — this converts nothing. It makes an existing check actually run. ## Verification `test:gate` exit 0 **with the ratchet inside it**, against current `main` (now green on the ratchet since #3126). Diff is one line of `package.json`. ## Related **#3122** restores 13 guards laundered through `mergeParkedColumns` — worth landing after this so the ratchet enters CI at full sensitivity. **#3135** attaches lanes at the last two live emitters. **#3131** corrects a 44% under-report in `--triage`. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 65a99a9d10..c25767646b 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "census:lifecycle-columns": "node scripts/lifecycle-column-census.mjs", "check:quarantine-ledger": "node scripts/check-quarantine-ledger.mjs", "check:mock-completeness": "node scripts/check-mock-completeness.mjs", - "test:gate": "node scripts/check-no-nohup.mjs && node scripts/check-no-cwd-relative-dashboard-test-reads.mjs && node scripts/check-no-kill-4040.mjs && node scripts/check-no-getdatabase.mjs && node scripts/check-capacity-pool-id.mjs && node scripts/check-no-node-only-core-imports-in-dashboard.mjs && node scripts/check-pi-versions-pinned.mjs && node scripts/check-no-test-timeout-appeasement.mjs && node scripts/check-changeset-format.mjs && node scripts/check-mock-completeness.mjs && sh -c 'pnpm --filter @fusion/engine test:core & engine_pid=$!; pnpm --filter @fusion/core test:pg-gate & pg_pid=$!; pnpm --filter @fusion/core test:unit-gate & unit_pid=$!; status=0; wait $engine_pid || status=1; wait $pg_pid || status=1; wait $unit_pid || status=1; exit $status' && pnpm --filter @runfusion/fusion test:ci-shape", + "test:gate": "node scripts/check-no-nohup.mjs && node scripts/check-no-cwd-relative-dashboard-test-reads.mjs && node scripts/check-no-kill-4040.mjs && node scripts/check-no-getdatabase.mjs && node scripts/check-capacity-pool-id.mjs && node scripts/check-no-node-only-core-imports-in-dashboard.mjs && node scripts/check-pi-versions-pinned.mjs && node scripts/check-no-test-timeout-appeasement.mjs && node scripts/check-changeset-format.mjs && node scripts/check-mock-completeness.mjs && node scripts/check-inert-sync-lane-conversions.mjs && sh -c 'pnpm --filter @fusion/engine test:core & engine_pid=$!; pnpm --filter @fusion/core test:pg-gate & pg_pid=$!; pnpm --filter @fusion/core test:unit-gate & unit_pid=$!; status=0; wait $engine_pid || status=1; wait $pg_pid || status=1; wait $unit_pid || status=1; exit $status' && pnpm --filter @runfusion/fusion test:ci-shape", "smoke:boot": "node scripts/boot-smoke.mjs", "local": "node scripts/start-local.mjs", "dev": "node scripts/dev-with-memory.mjs",