Skip to content

fix(desktop): settle channel opens at latest message#2846

Closed
wesbillman wants to merge 2 commits into
mainfrom
carl/fix-channel-open-bottom
Closed

fix(desktop): settle channel opens at latest message#2846
wesbillman wants to merge 2 commits into
mainfrom
carl/fix-channel-open-bottom

Conversation

@wesbillman

Copy link
Copy Markdown
Collaborator

Summary

  • wait for the virtualized timeline API before consuming initial channel positioning
  • keep measurement-driven intermediate offsets from cancelling the bottom-settle loop
  • cover a real channel switch with variable-height virtualized rows and assert the physical floor/no “Jump to latest” affordance

Why

Normal channel opens are intended to show the latest message. During a keyed channel remount, the parent could mark initial positioning complete before Virtua registered its inner scroller API. Virtua's own fallback settle could then cancel itself on an intermediate measurement offset, leaving the newest message hidden.

Verification

  • pnpm exec biome check src/features/messages/ui/TimelineMessageList.tsx src/features/messages/ui/useAnchoredScroll.ts tests/e2e/scroll-history.spec.ts
  • pnpm typecheck
  • Full E2E is delegated to CI per review policy.

Wait for the virtualized timeline API before consuming initial channel
positioning, and do not mistake measurement-driven offsets for reader
input while the virtualizer is settling at the floor.

Co-authored-by: Carl <c7ebe626f000404285d3686e1dc74cc07cc60a9754a150041ba132e14bd3e2ec@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
@wesbillman
wesbillman requested a review from a team as a code owner July 25, 2026 14:30
Replace the timeout-based bottom chase with explicit bottom intent driven by
Virtua content and viewport geometry. Reader navigation, targeted messages,
and history prepends still take ownership immediately, while late row reflow
and composer typing no longer strand the timeline above its newest message.

Co-authored-by: Carl <c7ebe626f000404285d3686e1dc74cc07cc60a9754a150041ba132e14bd3e2ec@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
@wesbillman
wesbillman force-pushed the carl/fix-channel-open-bottom branch from fa0ce9c to 1db6b01 Compare July 25, 2026 15:10
@wesbillman wesbillman closed this Jul 25, 2026
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