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
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
finding(e2e): the boot-continuity probe cannot fail for any gate that decides after a session exists #6569
Found while implementing #6507 (PR #6565). Recording the measurement, not proposing an implementation.
What is missing
e2e/console-boot-indicator.spec.ts carries the campaign's acceptance bar: after React's first commit, the viewport centre must never stop being covered. It catches the objectui#6378 defect on the three gates #6506 converted, and it passes on a signed-OUT boot.
It cannot be made to fail for any gate that decides after a session exists.#6507 converted seven such gates. Per-site scenarios were built for them and they do not bind.
The measurement
Environment: production apps/console bundle, vite preview, Playwright driving the pre-installed Chromium 141.0.7390.37 at PLAYWRIGHT_BROWSERS_PATH=/opt/pw-browsers via executablePath. The harness runs; the acceptance spec passes 4/4.
Signed-in mock scenarios were built for RequireAiSurface (a runtime serving no agent) and AppContent's no-accessible-app bounce. Both drive cleanly, reach their destinations, and pass. Then:
Ablated the fix — replaced all seven RedirectWithSplash elements with a bare Navigate in source, rebuilt. packages/app-shell/dist/console/ConsoleShell.js and AppContent.js confirmed rebuilt; 508 console dist assets fresh. Both scenarios still passed.
Added 20x CPU throttling (Emulation.setCPUThrottlingRate), since objectui#6378 measured its window on a throttled profile. Both scenarios still passed.
So the scenarios were deleted rather than committed: an assertion that cannot fail is not coverage.
The diagnosis
Not a missing browser, and not a missing endpoint. The probe treats the pre-React #boot-splash as covering — correctly, it is on screen. On these mocked boots the redirect chain resolves before that indicator is torn down, so at the moment the gate decides there is no blank for the sampler to land in.
A per-site gate that CAN fail therefore needs the window reproduced with the indicator already gone: a slower boot to the decision point, or a fixture that tears the indicator down on React's first commit the way a real cold load does, or a probe that starts sampling from a later anchor.
What is NOT established
Whether the window is unreachable in principle on these boots, or only under this fixture's timing. One fixture, two sites.
Any rate. Each scenario was run a handful of times, not sampled.
Whether the same is true for the other five converted gates; two of them (RootRedirect, AuthenticatedRoute) are not mounted by apps/console at any session state and cannot be reached by this bundle at all.
Reusable material
The endpoint set for a signed-in mock boot was read off a real boot rather than guessed: /api/v1/auth/get-session, /auth/config, /auth/organization/list, /auth/me/localization, /api/v1/ai/agents, /api/v1/meta/{app,object,view,page,report,dashboard,_drafts}, /api/v1/discovery, /api/v1/runtime/config, /api/v1/i18n/{locales,translations}, /api/v1/data/sys_*, /api/v1/approvals/requests.
Standing coverage for the seven gates meanwhile is at the DOM level, and it does bind — 7 of 12 red under the same ablation with all five control cases green: packages/app-shell/src/console/__tests__/bootRedirectCoverage.test.tsx and AppContent.bootRedirectCoverage.test.tsx.
Triage: graded — closing not planned. This is an honest, well-measured record of a fixture limit, and the record is the value; the card itself proposes no implementation.
Rationale on the four axes, briefly: standing coverage for the seven post-session gates already binds at the DOM level (7/12 red under ablation with green controls — bootRedirectCoverage suites), so no invariant is unguarded today; hardening the e2e probe (slower-boot fixture, later sampling anchor, or teardown-on-first-commit) is test-infra capability expansion with no current pull — startup-focus says don't build it speculatively; and the ablation methodology here (delete assertions that cannot fail) is exactly right and needs no further action.
Reopen is free if a real blank-frame regression on a post-session gate ever ships past the DOM-level coverage — that event would supply the pull this card currently lacks. The endpoint set under "Reusable material" stays findable here for whoever builds a signed-in mock boot next. Maintainer veto by reopening, as ever.
Activity
os-support-ai commentedon Aug 26, 2026
Triage: graded — closing not planned. This is an honest, well-measured record of a fixture limit, and the record is the value; the card itself proposes no implementation.
Rationale on the four axes, briefly: standing coverage for the seven post-session gates already binds at the DOM level (7/12 red under ablation with green controls —
bootRedirectCoveragesuites), so no invariant is unguarded today; hardening the e2e probe (slower-boot fixture, later sampling anchor, or teardown-on-first-commit) is test-infra capability expansion with no current pull — startup-focus says don't build it speculatively; and the ablation methodology here (delete assertions that cannot fail) is exactly right and needs no further action.Reopen is free if a real blank-frame regression on a post-session gate ever ships past the DOM-level coverage — that event would supply the pull this card currently lacks. The endpoint set under "Reusable material" stays findable here for whoever builds a signed-in mock boot next. Maintainer veto by reopening, as ever.
Generated by Claude Code