Observed on 2026-08-26 while verifying objectui#3719 (branch claude/issue-3719-settings-valuedomain-combobox, worktree at 51f9c5bed+2). Filed unassigned; not touched, since it is outside that card's scope.
Fact
apps/console/src/components/FormPage.predicateScope.test.tsx > #6110 hop 1 — /forms/:name publishes the SESSION principal > hop1SessionPrincipal: the route alone binds current_user, with no scope handed in fails only under full-project parallel load, with:
Error: Test timed out in 15000ms.
❯ src/components/FormPage.predicateScope.test.tsx:336:3
Measured three times on the same tree, same commit:
| run | scope | result |
|---|
vitest run apps/console/ | 81 files / 920 tests | 920 passed (duration 246s) |
vitest run apps/console/ | 81 files / 920 tests | 1 failed — this test, 15023ms (duration 386s) |
vitest run apps/console/src/components/FormPage.predicateScope.test.tsx | 1 file / 8 tests | 8 passed |
So it is load-dependent, not a regression: the two full runs bracket an unrelated .md-only commit, and the isolated run is green at the same HEAD.
Why it is worth a card rather than a retry
AGENTS.md §"测试纪律" names this exact shape — an unbounded module load counted inside a bounded window — and prescribes hoisting the dynamic import() into the test file's module scope, explicitly not raising the timeout or adding the file to heavyDomTests. The failing test is annotated in-file as "⚠️ THE anti-inert case … every other DENIED case above hands FormPage the scope directly and stays green even if nothing in the app ever publishes it", i.e. it is the one case in the file that is not vacuous. A flaky anti-inert pin is the worst one to have flaky: the pressure when it goes red in CI is to weaken precisely the assertion that makes the other seven mean something.
FormPage reaches its renderer through the registry, so the suspected boundary is a lazy plugin import resolving inside the 15s budget only when the transform pipeline is not saturated (the slow run spent 851s in setup across the project).
Not verified here
Whether the specific unbounded import is FormPage's own React.lazy or one reached through @object-ui/react's registry — that needs the failure dump, which this run did not capture beyond the timeout line.
Generated by Claude Code
Observed on 2026-08-26 while verifying objectui#3719 (branch
claude/issue-3719-settings-valuedomain-combobox, worktree at51f9c5bed+2). Filed unassigned; not touched, since it is outside that card's scope.Fact
apps/console/src/components/FormPage.predicateScope.test.tsx>#6110 hop 1 — /forms/:name publishes the SESSION principal>hop1SessionPrincipal: the route alone binds current_user, with no scope handed infails only under full-project parallel load, with:Measured three times on the same tree, same commit:
vitest run apps/console/vitest run apps/console/vitest run apps/console/src/components/FormPage.predicateScope.test.tsxSo it is load-dependent, not a regression: the two full runs bracket an unrelated
.md-only commit, and the isolated run is green at the same HEAD.Why it is worth a card rather than a retry
AGENTS.md §"测试纪律" names this exact shape — an unbounded module load counted inside a bounded window — and prescribes hoisting the dynamic⚠️ THE anti-inert case … every other DENIED case above hands
import()into the test file's module scope, explicitly not raising the timeout or adding the file toheavyDomTests. The failing test is annotated in-file as "FormPagethe scope directly and stays green even if nothing in the app ever publishes it", i.e. it is the one case in the file that is not vacuous. A flaky anti-inert pin is the worst one to have flaky: the pressure when it goes red in CI is to weaken precisely the assertion that makes the other seven mean something.FormPagereaches its renderer through the registry, so the suspected boundary is a lazy plugin import resolving inside the 15s budget only when the transform pipeline is not saturated (the slow run spent 851s in setup across the project).Not verified here
Whether the specific unbounded import is
FormPage's ownReact.lazyor one reached through@object-ui/react's registry — that needs the failure dump, which this run did not capture beyond the timeout line.Generated by Claude Code