Skip to content

Fix windowed timeline outline navigation - #2260

Merged
ymichael merged 1 commit into
mainfrom
bb/fix-timeline-windowing-bug-thr_zp5q9tyx9b
Aug 21, 2026
Merged

ymichael merged 1 commit into
mainfrom
bb/fix-timeline-windowing-bug-thr_zp5q9tyx9b

Conversation

@ymichael

@ymichael ymichael commented Aug 21, 2026 •

Copy link
Copy Markdown
Collaborator

What was wrong

Conversation-outline navigation tried to scroll to a target row while older pages were still being prepended. With timeline windowing enabled, the target could be removed when the timeline crossed the virtualization threshold, and switching from the fully rendered lazy fallback to estimated-height virtual rows could reproject the viewport. That made the selected row flash or jump away.

What changed

The outline now reports its destination before continuing through the existing pagination and DOM-scroll path. When the Timeline windowing experiment is enabled, that destination is added to the virtualizer's existing alwaysMountedKeys set so the normal outline scroll can find it. The lazy fallback also records exact row heights before handing control to the virtualizer, preventing activation from shifting the viewport. There are no timers or custom scroll scheduler, and the non-windowed rendering path is unchanged. This is app-only behavior and does not change the host-daemon wire protocol.

How you verified

  • Extended existing regression coverage for outline notification, offscreen destination realization, and exact fallback measurements.
  • pnpm exec turbo run test --filter=@bb/app --force — 414 files passed; 3,203 tests passed and 3 skipped.
  • Focused final regression run — 36 tests passed across the four affected test files.
  • pnpm exec turbo run typecheck --filter=@bb/app — passed.
  • pnpm exec turbo run lint --filter=@bb/app — passed with 157 pre-existing warnings and no errors.
  • Reproduced against the production-data thread with Timeline windowing enabled using dev-browser; 10 ms frame sampling showed a single transition to “can you do a sanity pass on it”, and repeated jumps between distant entries stayed anchored without snapping back.

Fixes: N/A — reported directly; no issue filed.

AGENT GENERATED

@ymichael
ymichael force-pushed the bb/fix-timeline-windowing-bug-thr_zp5q9tyx9b branch from 4d8ae60 to b4d2e24 Compare August 21, 2026 21:46
@ymichael
ymichael merged commit 03d3c0e into main Aug 21, 2026
13 checks passed
@ymichael
ymichael deleted the bb/fix-timeline-windowing-bug-thr_zp5q9tyx9b branch August 21, 2026 21:52
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.

1 participant