Skip to content

[Bug] Session jumps to top after submit enters question dock #467

@Astro-Han

Description

@Astro-Han

What happened?

After sending a user message in a long session, the conversation view jumped from the latest message area back to the top of the rendered timeline.

The session export shows this happened in the same session, immediately after the final user submit entered a pending question tool state. This is not a session switch and there is no evidence that MessageTimeline remounted.

Which area seems affected?

App flow or product behavior

How much does this affect you?

Breaks an important workflow

Steps to reproduce

Current evidence comes from a session export rather than a minimal local repro:

  1. Open a long session in PawWork.
  2. Stay at the bottom of the conversation.
  3. Send a user message that causes the assistant to enter a pending question tool state.
  4. Observe the conversation viewport jump near the top of the rendered timeline instead of staying near the latest message/question dock.

Observed export:

  • /Users/yuhan/Downloads/pawwork-session-gentle-nebula-2026-05-06-07-35-42.json
  • Root session: ses_203e86404ffeSJtKVY6OheN8GG
  • Final user message: msg_dfc36b1cf001UGFyOVLOSqUUFL
  • Pending assistant question tool message: msg_dfc36b222001GWxk721JNaGzTT

What did you expect to happen?

After submit, the conversation should remain anchored at the latest message/question state so the user can answer the follow-up prompt without losing their place.

PawWork version

local export build, prod channel

OS version

Darwin 25.3.0 (runtime_context.platform=darwin)

Can you reproduce it again?

Only once so far

Diagnostics

Renderer diagnostics captured the jump clearly:

2026-05-06T07:35:36.186Z session.action.submit prompt_length=104 trace_id=msg_dfc36b1cf001UGFyOVLOSqUUFL
2026-05-06T07:35:36.209Z session.scroll.sample scroll_top=14327 scroll_height=15232 client_height=905 distance_from_bottom=0 user_scrolled=false visible_last_message_id=msg_dfc36b1cf001UGFyOVLOSqUUFL
2026-05-06T07:35:36.268Z session.view.state message_count=47 route_session_id=ses_203e86404ffeSJtKVY6OheN8GG visible_session_id=ses_203e86404ffeSJtKVY6OheN8GG timeline_session_id=ses_203e86404ffeSJtKVY6OheN8GG
2026-05-06T07:35:37.287Z session.scroll.sample scroll_top=5 scroll_height=15232 client_height=905 distance_from_bottom=14322 user_scrolled=true visible_last_message_id=msg_dfc36b1cf001UGFyOVLOSqUUFL

Additional notes:

  • route_session_id, visible_session_id, and timeline_session_id all remained ses_203e86404ffeSJtKVY6OheN8GG.
  • The export contains no session.timeline.mount or session.timeline.unmount events around the jump.
  • The last assistant message contains a pending question tool part with empty input/raw payload.
  • Likely affected frontend surfaces to inspect first:
    • packages/app/src/pages/session/use-session-scroll-dock.ts
    • packages/app/src/pages/session/use-session-history-window.ts
    • packages/app/src/pages/session/use-session-keyboard-focus.ts
    • packages/app/src/pages/session/composer/session-question-dock.tsx

Suggested fix boundary:

  • Add an E2E regression for submit -> pending question dock -> timeline remains near bottom.
  • Improve renderer diagnostics so submit-near-bottom -> near-top jumps are detected even when the later scroll sample is marked user_scrolled=true.
  • Fix the focus/scroll routing around the question dock rather than changing model or harness behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High priorityappApplication behavior and product flowsbugSomething isn't workinguiDesign system and user interface

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions