Repository navigation
test(showcase): the boot-splash wait sees both English lines and the data-boot-splash marker - #23030
Merged
objectstack-fleet[bot] merged 1 commit intoOct 12, 2026
Conversation
…data-boot-splash marker The showcase smoke's render wait and its deadline assertion keyed the boot splash on /Initializing application/i. objectui 54159d3 changes that line to "Opening your console…", follows the browser's language, and leaves it out until the language's catalogue lands, so the first .objectui-sha bump past that commit would turn every surface check into a silent pass. A surface now counts as still on the splash when the language-independent [data-boot-splash] marker is in the page OR main's text matches /Initializing application|Opening your console/i. Both halves stay: today's pin (088e0f70) has no marker, so the line is the half that holds there. The platform-core.nav-surfaces-render checklist clause and negative name the two lines and the marker the same way (revision 5 -> 6). Claude-Session: https://claude.ai/code/session_012yK1ddAdAqfzwigRHZq3r2 Co-authored-by: Claude <noreply@anthropic.com>
objectstack-fleet
Bot
deleted the
claude/issue-22992-showcase-boot-splash
branch
October 12, 2026 11:35
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #22992
Clause-②: no
Dispatched by the
domain:devxseat 1 PM (claim comment 6122220922 on #22992); implementing sessionhttps://claude.ai/code/session_012yK1ddAdAqfzwigRHZq3r2.What changes
examples/app-showcase/e2e/showcase-smoke.spec.tskeyed the boot splash on/Initializing application/i, in two places: the render wait and the deadline assertion. objectui54159d3(objectstack-ai/objectui#12203) changes that line to "Opening your console…". It also shows the line in the browser's language, and leaves it out until that language's catalogue lands. So the first.objectui-shabump past that commit would turn every surface check into a silent pass.A surface now counts as still on the splash when EITHER holds:
[data-boot-splash]is in the page (apage.locator(...).count()). From objectui54159d3on, the splash root carries this attribute in every state (loading,message, error). It is the only language-independent sign./Initializing application|Opening your console/i. Today's pin088e0f70has no marker, so this is the half that holds there.Both uses follow:
docs/qa/platform-checklist/areas/platform-core.json, itemplatform-core.nav-surfaces-render:revision5 → 6, with a history entry. No gate pins the clause text.check-platform-checklist.mjsonly requiresrevisionto equal the last history entry, and the ablation below shows it reads this item.⛔ No
.objectui-shabump and no objectui edit.Both halves, proven on today's pin without the bump
No regression on
088e0f70. I read both objectui commits in a scratch bare clone:git grep data-boot-splashat088e0f70: exit 1. Control at54159d3: exit 0, with hits inLoadingScreen.tsxande2e/smoke.spec.ts.git grep -i 'Opening your console'at088e0f70: exit 1. The same grep over this repository at HEAD: exit 1.en.tsconsole.initializingreadsInitializing application…at088e0f70andOpening your console…at54159d3.So on today's pin the marker half never fires, and the new alternative matches no text the pinned console or the showcase can draw. For an en run, the predicate reduces to the old one.
String level. I took the regex literal out of the committed file (HEAD) and the pre-fix file:
088e0f70en: "Initializing application…"54159d3en: "Opening your console…"54159d3zh: 「正在打开你的控制台…」54159d3line absent: product name onlyThe two misses on splash rows are why the marker half exists.
The real spec against static fixtures. I ran the committed spec file, unmodified, under a scratch Playwright config:
Capability Maponly, Chromium/opt/pw-browsers/chromium.Each fixture is a main element holding one shape the console can be in.
8706217be9432bac07blob, byte-identical copy)088e0f70splash, "Initializing application…", no marker54159d3splash, en line + marker54159d3splash, zh line + marker54159d3splash, empty line + markerHEAD: 5 failed, 3 passed. Pre-fix: 1 failed, 7 passed. The failing HEAD rows each fail at the 25 s budget with the message named in the table.
Ablations
Each ablation was one in-tree mutation of the committed file through
scripts/ablation-replace.mjs, in WRAP mode. Each time the anchor hit once, the blob changed, an on-disk count was printed before the run, and the file was restored to the HEAD blobcf29f0737with an emptygit diff HEAD.Marker half off. The
count()read was replaced bysplashMarkers = 0;. 3 failed, 5 passed:54159d3splashes pass silently (0.26 s / 0.30 s);54159d3splash is still caught, by the line.Line half off: the marker alone.
BOOT_SPLASH_LINEwas replaced by a never-matching/(?!)/. 3 failed, 5 passed:088e0f70splash passes silently (0.66 s);This is the measured reason the marker never goes in alone on this pin.
Checklist revision.
revision6 → 5 onplatform-core.nav-surfaces-render.check-platform-checklist.mjsgoes from 8 problems to 9, and the new one names this item: "revision (5) must equal the last history entry's revision (6)".Not measured
The 49-surface e2e on today's pin: NOT MEASURED. This container has no vendored console:
packages/console/distis absent, and so is.cache/objectui-*. Producing one meansscripts/build-console.sh: a clone, install and turbo build of objectui's console closure at088e0f70. That comes on top of the showcase closure build, on a shared 4-core box with a ~10-minute foreground cap. The nightly /workflow_dispatchShowcase Smokeworkflow is the run that measures it. The equivalence argument above stands in for it on today's pin.Tests and gates
All at HEAD
8706217be.pnpm turbo run build --filter='@objectstack/example-showcase^...' --concurrency=2: 60/60 tasks, exit 0.pnpm --filter @objectstack/example-showcase run typecheck: exit 0.tsc --listFilesincludese2e/showcase-smoke.spec.ts(count 1).pnpm --filter @objectstack/example-showcase exec vitest run --maxWorkers=2: 33 files, 408 passed, 1 skipped. vitest excludese2e/**, so this suite cannot see the change; it was run as the package's own suite.ESLint (
--no-inline-config --format json) on the 2 changed files:platform-core.json: ignored, because the config'sfilesglobs cover JS/TS extensions only.This narrowing is a measurement, not a skip. The config enables no type-aware linting (the printed config has no
parserOptions.project). The spec's 4 rules read only the file's own AST, and the config's only disk reads are two ignore baselines this diff does not touch. So the diff cannot move the verdict on any file it does not touch. The repo-wide scan is CI's.Gates: the 42 commands
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderives from this diff, the same list as the dispatch. Run after the closure build, each with its exit captured before any pipe:pnpm check:platform-checklistexits 1. Its 8 problems are byte-identical to a run at the base9432bac07; see the acceptance notes.check:dual-build-cjs-loadsanswered PREREQUISITE NOT MET on a first pass, because eight packages outside the showcase closure had nodist/. I built them (a turbo cache hit), re-ran it, and it measured: exit 0, 107 entries.dispatch-gates --ran: "42 derived, 42 run, 0 NOT-MEASURED, 0 UNRUN", exit 0.Changeset
None:
skip-changeset.examples/app-showcaseis a private package, anddocs/qa/ships in no package.Acceptance notes
Opening your consolealternative covers no objectui commit that the marker does not also cover.54159d3is a single-parent squash that brought the new line and the marker together. Its parentddc2d8e3has neither: both greps exit 1. The control at the same commit, "Initializing application" inen.ts, exits 0. The alternative is kept as triage graded it, as the required half; on any real pin it is redundant with the marker, never harmful.enrun's splash reads 「正在初始化应用程序…」 (zh at088e0f70), and no English pattern matches it. The smoke runs Playwright'sDesktop Chromedevice at its default locale, so CI does not reach this. It closes with the bump, through the marker.pnpm check:platform-checklistis red onmainat9432bac07, with 8 problems inaccess-security.json,attachments-storage.jsonandsearch.json: absent symbol anchors, and one floor loss. Its output is byte-identical on the base and on this branch, and this diff adds nothing to it. The gate is not in per-PR CI (maintainer decision,lint.ymlNOTE). Its reporting channel is.github/workflows/platform-checklist-watchdog.yml.Generated by Claude Code