Repository navigation
test(browser): settle dialog motion and startup errors before strict checks - #1492
Conversation
…checks Workflows (Chromium): the header alignment check read three bounding boxes while the editor dialog still ran its 12px entrance motion (#1403), so two controls in one row looked 10.16px apart. Add settleDialogMotion beside settlePanelMotion, use it before that check, and replace the two ad hoc copies that #1403 added. Membership (WebKit): the raw page-error check covered startup. WebKit reported its ResizeObserver loop while the search palette was open, before any journey step. Start the raw check once Messages is ready, as unread.spec does; the fixture still classifies startup errors. Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Signed-off-by: Logan Johnson <[email protected]>
ngoodger-block
left a comment
There was a problem hiding this comment.
LGTM. thanks for fixing
wesbillman
left a comment
There was a problem hiding this comment.
🤖 Star Lord’s automated source review via Wes’s account.
No actionable findings in the five-file change. Source assessment: 9/10 for minimalness, elegance and correctness. The shared helper waits for the popup’s entry transition before geometry measurements, preserving the existing geometry/focus assertions and app motion. The membership checkpoint retains the fixture’s full unexplained-error check and strict raw-error checking after startup. The disclosed limitation remains: a ResizeObserver warning confined to initial startup is classified only by the general fixture rule.
Independent Rocket (systems/lifecycle), Mantis (correctness/concurrency), and Groot (behavior/accessibility) lanes completed and were integrated by Star Lord.
Reviewed head 3594209e3ff49cb4e6091f611f39d9d8c641ca56 against base/merge-base 6c6ab458dfc8a536947f58b92f2dfadd10a00c8a. Public PR description and commit metadata inspected; no attached images or disclosure finding.
Validation: source-only review; no tests, builds, app launches or PR code executed. Existing head-bound CI run 39663414074 reports CI required and browser flake checks successful; Windows native validation and the Vitest flake lane were skipped. This does not prove all timing races are eliminated, native behavior, or human acceptance. Rendered error/retry focus and the author’s local adversarial timing experiments were not independently reproduced.
Bounded hosted cost evidence: CI tested merge 85b90192cbb33bb778b2846951be3edc9299878d of the pinned head/base. Compared with base run 39662749422, Chromium shard 1/9 retained 96 passes (test-command wall 301.53→405.15s; summed execution 521.72→683.61s), while WebKit shard 1/12 retained 86 passes (675.83→449.18s; 1123.08→748.54s). Both had zero failures/skips. The unchanged slowest file, history-loading, moved in opposite directions across engines. These sampled timing artifacts establish neither a PR-caused performance regression nor improvement; rendered job-summary HTML and whole-suite aggregates were not independently inspected.
Co-authored-by: Aaron <f425b86c3b780d43f8d9cf1802429d04dd985bf92eac44fca9468b5ad3887c5e@buzz.block.builderlab.xyz> * origin/main: fix(channels): confirm a requested member when the relay stores bot (#1519) test(browser): settle dialog motion and startup errors before strict checks (#1492) perf(messages): measure read-tracking rows once per frame (#1527) fix(settings): keep the chosen plugin row in place when details open or close (#1551) fix(messages): polish reaction pills and mention badges (#1506) Signed-off-by: John Tennant <[email protected]>
Signed-off-by: morgmart <[email protected]> Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <[email protected]> * origin/main: (24 commits) Unify chat and channel access, tidy the Solo chat menu (#1446) fix(todos): render nested TODOs with collapsible hierarchy and Markdown (#1483) fix(agents): Allow agents to propose updates to agents (#1478) fix(composer): prevent plugins from updating the recipient on a WIP draft message (#1497) fix(agents): can't delete an agent belonging to an archived channel (#1560) Bump tokio to 1.53.3 for RUSTSEC-2026-0386 (#1581) Unify attachment cards with neutral icon tiles (#1548) Polish edit context, channel join and profile actions (#1545) fix(claude-code): keep context across channel threads (#1516) fix(builderlab): let Create agent cancel a pending browser sign-in (#1526) test(sidebar-filters): start the focus journey on General (#1555) Add opt-in native MCP for macOS tests (#1528) Show unreads for channels after access changes (#1550) Deliver artifact changes through shared live routes (#1480) condense photo and video attachments into a compact grid (#1549) Add page-owned sidebar contributions (#844) fix(channels): confirm a requested member when the relay stores bot (#1519) test(browser): settle dialog motion and startup errors before strict checks (#1492) perf(messages): measure read-tracking rows once per frame (#1527) fix(settings): keep the chosen plugin row in place when details open or close (#1551) ...
🤖
Summary
Two browser tests failed on main in run 39654833735 (commit 3d26215). Both are test timing problems, not app defects. This PR changes test code only.
ResizeObserver loop completed with undelivered notifications. The CI trace shows that WebKit sent this warning during startup, while the search palette was open and before the test did anything in a channel. The strict check now starts when Messages is ready.unread.spec.mjsalready does the same thing (test(browser): fix six intermittent browser test failures and a composer caret bug #1239).Details
settleDialogMotion(dialog)intests/browser/navigation.mjs, next to the existingsettlePanelMotion. It waits until the dialog's starting style is removed, then waits for the dialog's animations to finish. Normalize dialog sizing, headers, spacing, and motion #1403 added two inline copies of this wait (inbox-drafts.spec.mjs,layout.spec.mjs). They now use the helper.tests/browserand the workflow journeys, and all rawreport.errorschecks. No other check compares separate vertical measurements while a dialog is still moving.membership.spec.mjsandunread.spec.mjsare the only raw error checks.Verification
membership,workflowsandinbox-draftsspecs pass in Chromium and WebKit (membership also passes with--repeat-each=3). The changedlayout.spec.mjstest passes in both engines. Biome andtscpass.