Skip to content

fix(web): Jump to latest hides when a collapsed row leaves nothing below - #33673

Closed
flamboh wants to merge 833 commits into
pingdotgg:maria/redesign/2-composer-timelinefrom
flamboh:t3/redesign-fix-jump-pill-follows-scroll
Closed

flamboh wants to merge 833 commits into
pingdotgg:maria/redesign/2-composer-timelinefrom
flamboh:t3/redesign-fix-jump-pill-follows-scroll

Conversation

@flamboh

@flamboh flamboh commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Note

🤖 Claude Opus 5.5 on behalf of Oliver

Fix for the redesign stack, targets layer 2 (#28840).

Problem

While a turn runs, its work rows sit in a small scroll box with a "Jump to latest" pill. Expand a long row so the box scrolls, scroll back up to its top, then collapse the row: the box no longer scrolls at all, but the pill stays.

The pill only updated on scroll events. Collapsing the row shrinks the content while scrollTop stays at 0, so no scroll event fires and the pill keeps its old state.

Fix

The resize observer that already watches the box now also checks the real distance to the end. When nothing is left below, the box follows the end again and the pill hides. Scrolling up while rows arrive still shows the pill, and new rows still keep a box that is at its end pinned there.

Before / after

https://gh-file-drop-api-prod-galwoqjslzlnws6s.oliver-boorstein.workers.dev/f/2293a6963047ae35/jump-pill.mp4

Validation

  • New browser test in MessagesTimeline.browser.test.tsx: expand a thinking row, scroll to the top, collapse it, and expect no pill. It fails on layer 2, layer 6 and the combined redesign build, and passes with the fix. The full file passes.
  • Real browser with a Replay turn paused at a write approval: the pill stayed after the collapse before the fix and is gone after it. With the fix, a box at its end still follows new rows, and a scrolled-up box keeps its position and shows the pill.
  • vp run check:changed origin/maria/redesign/2-composer-timeline passes.

Made with Claude Opus 5.5 in Claude Code.

@github-actions github-actions Bot added vouch:trusted Author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Nov 10, 2026
@flamboh
flamboh marked this pull request as ready for review November 10, 2026 03:13
@macroscopeapp

This comment has been minimized.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Nov 10, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at b04c2ff

Macroscope's review found this PR approvable — The collapsed timeline now hides Jump to latest when resizing leaves no content below the viewport. This is a localized scrolling-state adjustment with no persistent-data or external-system impact.

Notes:

  • No code objects were reviewed. Approvability was decided on eligibility alone.

No code changes detected at e5c1335. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks

Copy link
Copy Markdown
Collaborator

Note

Written by gpt-6.1-sol on behalf of Maria

Leaving this open for Theo's approval before landing on L6. This changes how the working-history resize observer resumes scroll following; Maria's standing instructions require Theo's approval for scroll area changes.

@maria-rcks
maria-rcks force-pushed the maria/redesign/2-composer-timeline branch 3 times, most recently from 7c36975 to 6f13f36 Compare November 11, 2026 08:38
@maria-rcks

Copy link
Copy Markdown
Collaborator

Note

Written by claude-opus-5-5 on behalf of Maria

Verified in a real dev environment

Head cf6c1428 (the merge of the current base that landed at 08:29 UTC). I first ran 02017f45 and got the same results. Before is the PR's base maria/redesign/2-composer-timeline. main has no working-window pill, so the bug can't happen there.

Setup: vp run dev on a Linux VM. Project added through the app at a real clone of sindresorhus/slugify. Real Claude Haiku 5.5 turns in Supervised mode with the prompt: run cat index.js, then create HELLO.md. Each turn paused at the HELLO.md write approval with 4 rows in the working window, which fit without scrolling. I drove Chrome with Playwright: click cat index.js to expand it, scroll to the top of the box with the mouse wheel, then click it again to collapse it.

Box measurements (scrollHeight / clientHeight / scrollTop) and pill visibility:

step base PR
expanded 443 / 212 / 231, no pill 443 / 212 / 231, no pill
wheel to top 443 / 212 / 0, pill 443 / 212 / 0, pill
collapsed 80 / 80 / 0, pill stays 80 / 80 / 0, pill hidden
2.5 s later pill stays pill hidden

Base: after the collapse, nothing is left to scroll but "Jump to latest" is still shown.

Base: Jump to latest still shown after collapsing cat index.js, with nothing left to scroll

PR: same turn shape and steps, and the pill is gone.

PR: Jump to latest hidden after collapsing cat index.js

Base recording (expand, wheel to top, collapse, pill stays):

Base recording: expand cat index.js, wheel to top, collapse, Jump to latest stays

PR recording (same steps, pill hides on collapse):

PR recording: same steps, Jump to latest hides on collapse

Neighboring behavior on the PR head, same paused turn:

  • After the fix re-arms following, expanding the row again pins the box to its end (443 / 212 / 231) with no pill.
  • While scrolled to the top, expanding the thinking row grows the box (530 / 212 / 0). The pill stays and the scroll position holds.
  • Clicking "Jump to latest" scrolls to the end (scrollTop 318) and hides the pill.
  • After approving the write, the turn finished normally ("Worked for", 1 changed file, HELLO.md = hello).

Not verified

  • New rows streaming into a box that's at its end while it stays pinned. The turns here paused at an approval, so the box only resized when I expanded or collapsed rows.
  • The desktop (Electron) and mobile clients. Desktop wraps this same web component. Mobile doesn't render it.
  • Other providers. The change is client-side, and only Claude was exercised.

@maria-rcks
maria-rcks force-pushed the maria/redesign/2-composer-timeline branch from 6f13f36 to cb2ce53 Compare November 11, 2026 09:17
maria-rcks and others added 24 commits November 11, 2026 23:13
The working bar sat between a prompt and its steer when grouping ran, so the
two bubbles kept their full gap and the steer label. Grouping now reruns after
the bar moves, and a steer grouped under your message drops the label; its
timestamp tooltip says it steered the turn.
…nd timeline

- ThreadErrorBanner: drop the "Run failed" banner item case; it reads back title and label copy.
- MessagesTimeline browser: drop the queue-intent case; it only checks a data attribute is absent.
- MessagesTimeline logic: drop two duplicate rows from the stopped-at timer table.
- QueuedRunsControl: drop the computed white-space and text-overflow assertions.
- ComposerBannerStack: drop the rim style, color, pointer-events and fixed-height assertions; keep the edge and empty-region layout checks.
- commands (client-runtime): drop the reorder dispatch rows; they mirror the command payload the contract types already fix.
- toolOutput: drop duplicate rows from the test-runner command tables.
The dragged run and the run it drops before were two states always set
and cleared together; a drop target without a dragged row meant nothing.
They are one drag value now.
…he redesigned composer

The slash-command icon map lists only the commands main still has, and the design-system playback no longer derives a proposed plan.
@maria-rcks
maria-rcks force-pushed the maria/redesign/2-composer-timeline branch from df3c346 to 9fa8150 Compare November 12, 2026 01:52
@maria-rcks
maria-rcks force-pushed the maria/redesign/2-composer-timeline branch from 5604040 to abeb8b8 Compare November 12, 2026 06:36
@t3dotgg

t3dotgg commented Nov 12, 2026

Copy link
Copy Markdown
Member

Note

🤖 Claude Opus 5.5 responding on behalf of Theo

Closing. This PR conflicts with main in 9 files, which is more than we will review as a rebase. If the change still matters, open a fresh PR from current main.

@t3dotgg t3dotgg closed this Nov 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted Author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants