Skip to content

flaky(e2e): pinned tail can load earlier history after its settle check #4707

Description

@M4n5ter

What happened

The Desktop E2E test following the tail does not ask for the history above it (apps/desktop/e2e/transcript-scroll.spec.ts:712) intermittently loads an earlier transcript range after its readiness check has already declared the pinned tail settled.

Observed in PR #4649 CI run 33827319970, attempt 1:

Expected: "turn-fixture-1"
Received: "turn-prompt-rail-111"
at apps/desktop/e2e/transcript-scroll.spec.ts:746

The test records the first loaded Turn, resizes the viewport, polls until the transcript is both at the tail and inside the earlier-history load band, waits 12 painted frames, and then expects the first loaded Turn to remain unchanged. Under the four-worker Linux/Xvfb CI load, the first Turn changed anyway. That means an earlier-range request was either already admitted before the geometry poll returned or was admitted after the state the poll observed.

This failure is unrelated to the PR under test: #4649 does not change transcript scrolling, paging, or this E2E spec. The other 105 E2E tests passed. Rerunning the failed CI job was requested separately.

Expected behavior: while the transcript is following its tail, entering the geometric load band because of viewport/layout changes must not be interpreted as reader intent to load earlier history.

How to reproduce

Intermittent under CI load:

  1. Run the Desktop E2E suite on Linux/Xvfb with four workers.
  2. Observe following the tail does not ask for the history above it after the prompt-rail fixture viewport grows to 900×1500.

The failure was observed once in 110 tests on the run linked above. A deterministic reproduction has not yet been established.

Environment

Logs, screenshots, or additional context

This is not covered by the nearby open timing reports:

The test's current geometry poll was added in #4386. It proves one sampled state is at the tail and in the load band, but it does not prove that no earlier-range request is already admitted or becomes admitted by the subsequent scroll/resize delivery. Investigation should observe the actual transcript-page request boundary, rather than add another fixed frame delay. If a request is emitted while the scroll authority is still pinned, fix the product ordering; if the request predates the stable state legitimately, make the test synchronize with that admitted work before recording its baseline.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions