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 }}
Repository navigation
flaky(e2e): nested-scroller test samples the second tail follow before it settles #4688
The Desktop E2E test a gesture a nested scroller consumed does not release the tail (apps/desktop/e2e/transcript-scroll.spec.ts:425) intermittently samples the transcript before tail-follow has settled after its second answer.
Observed in CI run 33795505196, which otherwise passed the build, typecheck, static checks, and affected standard tests:
Expected: <= 4
Received: 1779
at apps/desktop/e2e/transcript-scroll.spec.ts:498
The test already recognizes this ordering for the first answer and polls until the tail-follow write has landed:
The answer becoming visible and the transcript tail-follow write are separate state transitions. Under four-worker Xvfb load, two frames do not prove the second transition has completed. The failure screenshot shows the new answer present and the “scroll to bottom” affordance visible. The exact test passed immediately when rerun alone on macOS after a production build.
Suggested fix
Use the same state-based poll after the second answer that the test already uses after the first one, while preserving the strict <= 4 contract and the final assertion that the scroll button is absent:
awaitexpect.poll(async()=>(awaitscrollMetrics(page)).distance,{message: 'the transcript follows the second landed answer to the tail',}).toBeLessThanOrEqual(4);expect(awaitscrollButtonOffered(page)).toBe(false);
This is distinct from #4648: that report covered the viewport-resize precondition of a different test. Its call site has since been converted to a poll; this failure occurs after the second answer in the nested-scroller gesture test.
#4741 removed transcript-scroll.spec.ts in full — 22 tests across it and prompt-rail.spec.ts, which together held four of the five open flake reports. They assert scroll geometry against a compositor that settles on its own schedule: that needs a real layout engine, not Electron, and under four-worker Xvfb load the suite read a scroller mid-settle and blocked changes that never touched scrolling.
Coverage was deleted, not moved. The rebuild belongs one tier down — Storybook + Chromium for geometry — and is being worked out in #4727. retries: 0 is unchanged.
Reopening is the right call if the rebuild lands somewhere this report still applies to.
Activity
Adarsh-Me commentedon Sep 3, 2026
/take
test(desktop): remove the layout-tier E2E specs that block main (#4741)
Astro-Han commentedon Sep 4, 2026
Closing: the test this reports no longer exists.
#4741 removed
transcript-scroll.spec.tsin full — 22 tests across it andprompt-rail.spec.ts, which together held four of the five open flake reports. They assert scroll geometry against a compositor that settles on its own schedule: that needs a real layout engine, not Electron, and under four-worker Xvfb load the suite read a scroller mid-settle and blocked changes that never touched scrolling.Coverage was deleted, not moved. The rebuild belongs one tier down — Storybook + Chromium for geometry — and is being worked out in #4727.
retries: 0is unchanged.Reopening is the right call if the rebuild lands somewhere this report still applies to.