Skip to content

fix(app): make the browser tests pass after the beta merge - #59160

Merged
Hona merged 10 commits into
devfrom
fix-dev-e2e
Oct 26, 2026
Merged

Hona merged 10 commits into
devfrom
fix-dev-e2e

Conversation

@Hona

@Hona Hona commented Oct 26, 2026

Copy link
Copy Markdown
Member

Follow-up to the beta merge (be315b1db8). Beta skipped its failing browser tests with @quarantine; dev runs them, so e2e (linux) and e2e (windows) went red. This fixes every one and clears the quarantine list.

App fixes

Area Bug Fix
Folded user messages (session-ui/.../message-part.css) Active footer labels and actions forced visibility: visible, so a folded message's hidden footer still exposed a second Rewind, Fork, Move to queue and Delete to keyboard and screen readers visibility: inherit; drops the timestamp-only workaround
Session header (session-identity-header.tsx) <Show> read the actions JSX prop twice, so the Find bar and extension slot rendered twice; Mod+F focused the detached copy Render from the Show callback value
Background menu (requests/background.ts) Running subagents were listed in session order, mixing blocking and backgrounded work Blocking work first, then backgrounded
Timeline reveal pin (timeline/virtualizer.tsx) TanStack Virtual snaps back to its last target once within 1 px, undoing a later correction; a revealed shell sat 1 px low Always hand the pin offset to the virtualizer
Markdown tables (session-ui/.../markdown.css) user-select: none on header cells: a drag from a header selected nothing, and quoting lost the header row Remove it
Composer menus (composer/editor/editor.tsx) #58418 cut the menu padding to 6 px but the height math kept 8 px; history search showed a 4 px strip of a hidden row Padding constant 6

Stale tests, updated to beta's intended behaviour

Flakes fixed at the cause

  • Live Thinking: the clock jump fired the 60 s request timeout on an in-flight status request; wait for "Thinking" first.
  • Activity chips: the panel was measured before Inter loaded; pause the clock and wait for document.fonts.ready.
  • Painted motion: the bubble's 150 ms colour transition raced the first screenshot; the marker disables transitions.

QUARANTINE.md now lists no tests. Its process text is unchanged.

Visual

<svg xmlns="http://www.w3.org/2000/svg" width="240" height="72" viewBox="0 0 240 72" fill="none">
  <style>
    .d { animation: pass 2.4s ease-in-out infinite; }
    .d:nth-of-type(2) { animation-delay: .2s } .d:nth-of-type(3) { animation-delay: .4s }
    .d:nth-of-type(4) { animation-delay: .6s } .d:nth-of-type(5) { animation-delay: .8s }
    .d:nth-of-type(6) { animation-delay: 1s }
    @keyframes pass { 0%, 15% { opacity: .2 } 35%, 100% { opacity: .9 } }
    @media (prefers-reduced-motion: reduce) { .d { animation: none; opacity: .9 } }
  </style>
  <g stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
    <path class="d" d="M28 36l6 6 12-12"/>
    <path class="d" d="M60 36l6 6 12-12"/>
    <path class="d" d="M92 36l6 6 12-12"/>
    <path class="d" d="M124 36l6 6 12-12"/>
    <path class="d" d="M156 36l6 6 12-12"/>
    <path class="d" d="M188 36l6 6 12-12"/>
  </g>
</svg>

Hona added 9 commits October 26, 2026 14:56
Active message transitions forced visibility: visible, so Rewind, Fork, Move to queue and Delete stayed exposed (and focusable) in the hidden footer of a folded run message, beside the copy shown next to its bubble. Active transitions now inherit visibility. Unquarantines the session-queue tests that caught it.
#57463 replaced the blue user bubble with layer-02/text-base, and #58089 keeps the hidden Pending label and time in the meta DOM, so read rendered text.
- Size composer suggestion menus for their 6px padding (#58418 changed it from 8px), so history shows no clipped row under Search.
- Isolate the session story's stacking like the app's chat panel, so the web search provider menu opens above the dock.
- Expect the virtualizer's 82px tail (#57273, #57883) in the offset-only reconnect case.
- Pause the clock and wait for fonts before measuring the activity panel, which a late Inter swap widened on Windows.
- Remove the @quarantine tags from the fixed tests.
…-state cases

- Expect the session directory on file search requests; the mock forwards it since #57725.
- Scroll a windowed file view to its end before reading the draft; text files over 200 lines window since #57551.
- Wait for side-panel focus before Ctrl+W; Close Tab follows focus since #57935.
- Wait for the file tree's scroll suppression to clear before clicking a row, so Playwright's retry scroll does not move the position under test.
- Notices: assert the v2 faint text token from #58115.
- Revealed shell: re-target TanStack on every anchor pin so its exact landing cannot undo a 1px compensation.
- Activity menu: list blocking subagents before backgrounded ones again (lost in 3dca04a).
- Markdown tables: keep header cells selectable so quotes and copies keep the header row (#58372).
- Live Thinking: wait for the busy status before jumping the fake clock, which fires in-flight request timeouts.
SessionHeaderLayout read its JSX actions prop in both the Show condition and its children, so it rendered the actions twice. The detached copy's Find input took the search controller's input ref, and Mod+F focused it instead of the visible field. Also update the workspace-switch test for the header's project label.
Count only the activity capsule's own animation, not its spinner's loop. Move the touch-out-of-view drag to a row that leaves the virtual window now that the timeline scrolls under the composer, and anchor on a row that stays in view below the session location bar. Disable the bubble's colour transition while marking prompts for the frame reader.
@Hona
Hona requested a review from Brendonovich as a code owner October 26, 2026 04:59
Copilot AI balanced review requested due to automatic review settings October 26, 2026 04:59
@Hona
Hona enabled auto-merge (squash) October 26, 2026 04:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change looks sound. I reviewed the diff and ran the app's session unit tests (test-browser/session-background.test.ts and src/session, all passing) and tsc -b for packages/app (clean). The e2e tsc errors are the same on the base. I couldn't run the Playwright component or e2e suites here because Chromium won't start (missing system library), so CI's e2e (linux)/e2e (windows) runs are the real check for this one.

The app fixes are small and in the right place: the header renders its actions once from the Show callback, folded footers inherit hidden, blocking subagents are listed before background ones, and the composer padding matches the CSS. The changed tests address the timing causes (clock pause, document.fonts.ready, waiting for scrolling to settle, transitions off) rather than adding sleeps.

Public API: unchanged (app UI and tests only).

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new commit changes only the reread test and is fine. The reopened tab no longer has to start at the top: the test waits until the code view can scroll, then scrolls to the end, and it still checks the start position on the first open. I couldn't run the e2e suite here because Chromium won't start in this sandbox, so CI is the real check. Public API: unchanged.

@Hona
Hona merged commit 6adc1ae into dev Oct 26, 2026
19 checks passed
@Hona
Hona deleted the fix-dev-e2e branch October 26, 2026 05:23
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.

2 participants