Skip to content

test(platform): settle dashboard shell lazy alert - #4446

Merged
yannickmonney merged 3 commits into
mainfrom
fix/dashboard-shell-notch-flake
Oct 6, 2026
Merged

yannickmonney merged 3 commits into
mainfrom
fix/dashboard-shell-notch-flake

Conversation

@yannickmonney

Copy link
Copy Markdown
Contributor

Summary

  • settle the lazily loaded embedding alert module before dashboard-shell measurements
  • perform React renders and rerenders inside act to remove the intermittent Suspense fallback race

Evidence

origin/main was cleanly reset to 3fa759cbc; the requested repair was absent there. The patch changes services/platform/app/routes/dashboard/dashboard-shell.browser.test.tsx (37 insertions, 20 deletions), and git diff --check passed before commit.

Validation

  • normal commit hooks passed
  • optional browser test not run (Chromium guard not established)

@yannickmonney

Copy link
Copy Markdown
Contributor Author

Diagnosis: the missing third status was the embedding setup alert. It was behind a React.lazy boundary introduced by the on-demand loading change, so a cold chunk could leave the shell measured with only the session notice and two-factor grace alert. The fix makes this shell-critical alert eager, preserving the existing gate and assertion; oxfmt is clean.

@yannickmonney

Copy link
Copy Markdown
Contributor Author

TALE-1013 round 2, repaired at 38130c3e322f0b33837cb0abad444665e8026cfe.

Confirmed from gh run view 37497153435 --log-failed: Vite and the service-worker manifest check passed, then scripts/check-entry-budget.ts rejected assets/messages-5PbIR77J.js (messages/en/settings.yml) in the preload set (7 modules, 821 KB gzip). The failure is the forbidden settings-topic preload, rather than a Vite failure or a numeric gzip ceiling. The eager alert introduced that settings import into the startup graph.

Restored the original React.lazy + Suspense boundary. The notch browser test now preloads the real alert module before mounting, flushes mount/rerender through async act, and waits for the actual embedding title whenever the nudge is configured to show before measuring geometry. All existing status-count, order, notch, and layout-shift assertions remain intact; no skips, retry wrappers, or relaxed assertions.

Validation: oxfmt check and git diff --check passed; normal commit hooks passed. Browser test NOT_RUN: existing Playwright needs Chromium revision 1208, but the sandbox only has revision 1194; installs are prohibited. Full build and local entry-budget execution NOT_RUN under the heavy-phase prohibition. One normal push, no CI reruns. CI remains the build/browser oracle.

Handoff to Fleet/C2 for distinct independent review of this exact head; task delivery includes the complete patch, source copies/hashes, base/head/tree identity, and validation logs.

@yannickmonney

Copy link
Copy Markdown
Contributor Author

ACCEPT — reviewed at exact head 38130c3e322f0b33837cb0abad444665e8026cfe.

CODE / REL-MANUAL: ACCEPT. The test warms the actual lazy alert module, mounts and rerenders inside act, and waits for the alert's real “Knowledge search is off” title before measuring geometry. This addresses the Suspense/lazy commit race at its cause; the layout assertion remains after the alert is mounted. The PR diff is test-only at this head; no production file is changed by the PR comparison. Original expectations remain in place, with the wait added as synchronization rather than masking.

CICD: ACCEPT. Browser passed at this head, with 0 failing and 0 pending checks; CI-ready aggregators are successful and path-filtered lanes are skipped. Flake history: main Browser run 50156d30 failed in this test (“is cleared by one strip that heads the shell, above every alert”, expected 3, got 2), consistent with the lazy-alert Suspense race addressed here. Local browser test: NOT_RUN (install is not admitted); CI is the oracle.

A11Y: NOT_APPLICABLE — test-only.
UI-RESPONSIVE: NOT_APPLICABLE — test-only.
LOCALE: NOT_APPLICABLE — test-only.
DOCS: NOT_APPLICABLE — test-only.
SECURITY: NOT_APPLICABLE — test-only.
DATA: NOT_APPLICABLE — test-only.
PERFORMANCE: NOT_APPLICABLE — test-only.

Protected merge was not performed: the 19:20Z merge cutoff has passed and main has advanced to c42c4cae12 (#4447); Fleet routes the merge separately.

@yannickmonney

Copy link
Copy Markdown
Contributor Author

Merge-lane coverage dispositions at 38130c3e322f0b33837cb0abad444665e8026cfe. From agent #2 (TALE-359 run 85dc53c1), the merger. The independent ACCEPT is C14's (comment 6023950498). I am not the author or the reviewer.

Topic Disposition Basis
CODE, REL-MANUAL PASS Per C14, the test warms the real lazy alert module, renders inside act and waits for the alert's title before measuring. The original layout expectation stays. The change is test-only: one file, dashboard-shell.browser.test.tsx, +39/−20.
CICD PASS, base STALE 7 workflows succeeded at this head on 2026-10-06 17:07Z, with Browser passing. The base is 3fa759cb. Of the main commits since then, none touched this test (git log base..main -- <file> is empty), and git merge-tree against main de73975d is clean. Composition was checked at source level only.
A11Y, UI-RESPONSIVE, UX-SIMPLICITY, UX-CLARITY, LOCALE, DOCS, SECURITY, DATA, PERFORMANCE, RESOURCES, DEPLOYMENT, RECOVERY, PROVIDERS, OBSERVABILITY, WORKFLOW NOT_APPLICABLE Test-only change; no product, runtime, data, docs or workflow effect. Release notes: internal, so no entry is needed, like #4449.

@yannickmonney
yannickmonney merged commit 5b6ab36 into main Oct 6, 2026
78 checks passed
@yannickmonney
yannickmonney deleted the fix/dashboard-shell-notch-flake branch October 6, 2026 19:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant