claude-code - 💡(How to fix) Fix [BUG] Regression in Claude Desktop Code tab: chat pane no longer pins the user message corresponding to the response currently in view

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

Error Messages/Logs

N/A. This is a UI behavior regression, not an error condition. No log output is produced.

Root Cause

NOTE: This bug is in the Claude Desktop App's Code tab (Electron UI layer), not the Claude Code CLI. I'm filing here because the Code tab is powered by Claude Code and there's no public issue tracker for the Desktop App.

Code Example

N/A. This is a UI behavior regression, not an error condition. No log output is produced.
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

In a recent previous version of Claude Desktop (Code tab), the chat pane implemented a "sticky section header" pattern: the user message corresponding to the Claude response currently visible in the viewport stayed pinned at the top of the chat pane, and the pinned header updated dynamically as I scrolled between question/answer pairs.

In the current version of Claude Desktop, this behavior is gone. The chat pane scrolls as a flat list with no sticky context anchor. No setting in Settings > Claude Code, no entry in the Views menu, and none of the Verbose / Normal / Summary view modes (Ctrl+O) restore it.

NOTE: This bug is in the Claude Desktop App's Code tab (Electron UI layer), not the Claude Code CLI. I'm filing here because the Code tab is powered by Claude Code and there's no public issue tracker for the Desktop App.

What Should Happen?

The user message corresponding to the Claude response currently in view should stay pinned at the top of the chat pane, and should update dynamically as the scroll position crosses the boundary between two question/answer pairs.

This is the standard sticky-section-header pattern, analogous to iOS section headers or HTML position: sticky with multiple sticky elements in sequence: each user message acts as the section header for its corresponding Claude response, and whichever section is currently in the viewport has its header pinned at the top.

This behavior was present in a previous version of Claude Desktop and provided essential context during long agentic sessions where Claude responses span several screens of tool calls, diffs, and code blocks.

Error Messages/Logs

N/A. This is a UI behavior regression, not an error condition. No log output is produced.

Steps to Reproduce

  1. Open Claude Desktop and switch to the Code tab.
  2. Select any project folder and start a session.
  3. Submit at least 2-3 user prompts that produce long Claude responses, e.g.:
    • Prompt A: "Walk me through the architecture of this codebase file by file."
    • Prompt B: "Now refactor the main module to use dependency injection."
    • Prompt C: "Write tests covering the changes from prompt B."
  4. Once Claude has finished responding to all three prompts, scroll up through the chat pane, crossing the visual boundaries between Claude's response to prompt C, B, and A in turn.
  5. Observe the top of the chat pane during the scroll.

Expected: at any scroll position, the user prompt that initiated the response currently in view is pinned at the top of the chat pane, and the pinned prompt changes (A ↔ B ↔ C) as you cross between sections.

Observed: no message is pinned. The chat scrolls as a flat list.

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

No response

Claude Code Version

Version 1.7196.0 (2dbd78) (Claude Desktop)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

iTerm2

Additional Information

How this differs from existing sticky-related issues

This report is not a duplicate of any of the following — please read carefully before closing as duplicate:

  • #36146 describes a static pinning of the FIRST user message in the VS Code extension (a bug where the wrong message stays stuck forever). This report is about a different, correctly-working behavior: the dynamically-updating section header that tracks scroll position.
  • #42653 is a follow-up to #36146 asking to make the (statically) pinned initial prompt collapsible. Same static-pinning topic.
  • #50366 asks to make a static "most-recent user message" sticky element clickable in the VS Code extension. Also static, not dynamic.
  • #53382 is about auto-scroll-to-bottom during streaming in Claude Desktop. Unrelated scroll concern.

The behavior described here is the dynamic section-header pattern: the pinned header is whichever user message is the "section" for the currently-visible scroll position, and it changes as the user scrolls between different question/answer pairs.

Why It Matters

Long agentic sessions routinely produce responses several screens tall. Without a sticky anchor showing which user prompt the visible content is answering, navigating the transcript means repeatedly scrolling back to the top of each response to remember the original ask. The sticky section header pattern is the standard solution to this problem and was correctly implemented before. Restoring it (with the dynamic-update logic fixed per #36146) would meaningfully improve the Code tab UX for any non-trivial session.

Suggested implementation

Standard CSS position: sticky on each user message bubble, with top: 0 and the chat pane as the scrolling container. Each successive sticky element naturally replaces the previous one as it scrolls into the top of the viewport. No JavaScript required for the core behavior.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix [BUG] Regression in Claude Desktop Code tab: chat pane no longer pins the user message corresponding to the response currently in view