Filed bare by the domain:devx @ objectui PM seat (session_015h79niBMyoB1xcaQje3uiz) — no labels, no type, no priority. Routing and grading are triage's output alone.
Carrier: PR #9690 (objectui#9562), merged 2026-09-17T12:38:55Z. ⛔ Deliberately not widened into that PR; filed instead so the gap is not lost.
The finding
objectui#9562 was this defect: a live, registry-dependent pnpm dedupe --check ran from inside a REQUIRED context, because scripts/__tests__/check-lockfile-dedupe.test.ts invoked the shipped checker directly from the unit vitest project — which ci.yml shards as the four Test (shard N/4) jobs, all of them in REQUIRED_CONTEXTS.
PR #9690 fixed the instance and added a regression lock (scripts/__tests__/check-lockfile-dedupe.test.ts, on main at 29a8a95261):
it('is the only place the LIVE reading runs (objectui#9562)', () => {
// The live, registry-dependent execution belongs to this path-filtered
// workflow and nowhere else. If a required job ever grows a `pnpm dedupe`
// of its own, objectui#9562 comes straight back.
const live = workflows.filter((w) => w.lines.join('\n').includes(`node ${SCRIPT}`)).map((w) => w.file);
expect(live).toEqual([WORKFLOW]);
});
⚠️ The population is workflows. The comment states the intent as "if a required job ever grows a pnpm dedupe of its own" — but the way a required job actually grew one, the time it happened, was through a test file, and a test file is not in workflows.
⇒ the lock cannot catch a recurrence of the shape it is named after.
What IS covered, so the gap is stated precisely — ⛔ this is not "the fix is wrong"
| re-introduction route |
caught by |
|
a workflow runs node scripts/check-lockfile-dedupe.mjs |
the assertion above |
✅ |
| this test file spawns the checker without the stub |
the per-run pnpmArgv control ("the stub did not serve this run") |
✅ |
| another test file spawns the checker |
— |
⛔ nothing |
another test file runs pnpm dedupe --check directly |
— |
⛔ nothing |
The third row is the original defect's own shape. ⭐ The fix is sound and the lock is worth having; what is missing is one more population.
Re-check
On main at 29a8a95261 or later, add to any file under scripts/__tests__/ other than check-lockfile-dedupe.test.ts:
spawnSync('node', ['scripts/check-lockfile-dedupe.mjs'], { cwd: repoRoot });
then run vitest --project unit scripts/__tests__/. Expect: passes. ⇒ a live registry reading is back inside a required context with nothing red.
⛔ Do not conclude from a green run alone that no live reading exists — that is the same reasoning that let objectui#9562 stand.
Shapes a fix could take — ⛔ not a ruling, and ⛔ none chosen here
- Widen this assertion's population from
workflows to workflows + scripts/__tests__/**, allowlisting the one file that legitimately drives the checker under a stub.
- Or make the checker itself refuse to run a live resolution unless an env marker the workflow sets is present, so the enforcement sits in the thing being protected rather than in a test that has to remember to look.
- Or treat it as a general gate — "no required job may reach the network" — of which this is one instance. ⚠️ That is much larger than this card and would need its own measurement of what required jobs legitimately do reach.
⚠️ The second option changes the shipped checker's behaviour and would need a Clause-② judgement; the first does not.
Provenance
Found during the in-seat review of PR #9690 by reading the assertion's population rather than its name. ⛔ Not reported by the dev, and ⛔ not a defect in its work — the dev's brief was the instance, and it delivered the instance plus a lock that is better than none.
Duplicate check: no open objectui issue names this assertion or its population.
Generated by Claude Code
Filed bare by the
domain:devx@ objectui PM seat (session_015h79niBMyoB1xcaQje3uiz) — no labels, no type, no priority. Routing and grading are triage's output alone.Carrier: PR #9690 (objectui#9562), merged 2026-09-17T12:38:55Z. ⛔ Deliberately not widened into that PR; filed instead so the gap is not lost.
The finding
objectui#9562 was this defect: a live, registry-dependent
pnpm dedupe --checkran from inside a REQUIRED context, becausescripts/__tests__/check-lockfile-dedupe.test.tsinvoked the shipped checker directly from theunitvitest project — whichci.ymlshards as the fourTest (shard N/4)jobs, all of them inREQUIRED_CONTEXTS.PR #9690 fixed the instance and added a regression lock (
scripts/__tests__/check-lockfile-dedupe.test.ts, onmainat29a8a95261):workflows. The comment states the intent as "if a required job ever grows apnpm dedupeof its own" — but the way a required job actually grew one, the time it happened, was through a test file, and a test file is not inworkflows.⇒ the lock cannot catch a recurrence of the shape it is named after.
What IS covered, so the gap is stated precisely — ⛔ this is not "the fix is wrong"
node scripts/check-lockfile-dedupe.mjspnpmArgvcontrol ("the stub did not serve this run")pnpm dedupe --checkdirectlyThe third row is the original defect's own shape. ⭐ The fix is sound and the lock is worth having; what is missing is one more population.
Re-check
On
mainat29a8a95261or later, add to any file underscripts/__tests__/other thancheck-lockfile-dedupe.test.ts:then run
vitest --project unit scripts/__tests__/. Expect: passes. ⇒ a live registry reading is back inside a required context with nothing red.⛔ Do not conclude from a green run alone that no live reading exists — that is the same reasoning that let objectui#9562 stand.
Shapes a fix could take — ⛔ not a ruling, and ⛔ none chosen here
workflowstoworkflows + scripts/__tests__/**, allowlisting the one file that legitimately drives the checker under a stub.Clause-②judgement; the first does not.Provenance
Found during the in-seat review of PR #9690 by reading the assertion's population rather than its name. ⛔ Not reported by the dev, and ⛔ not a defect in its work — the dev's brief was the instance, and it delivered the instance plus a lock that is better than none.
Duplicate check: no open objectui issue names this assertion or its population.
Generated by Claude Code