microsoft / microsoft/vscode

Feature Request: Chat conversation outline & turn navigation (like Ophel Atlas)

Open
#324,984 0 comments 0 reactions 1 assignee Claimed by @justschen View on GitHub
Dominant language
TypeScript
Stars
193k
Forks
42.4k
PR merge metrics
PR metrics pending

Description

## Problem Statement

When using Copilot Chat in **Agent mode** (or Edit mode), long conversations become extremely difficult to navigate:

### Pain Point 1: Uncontrollable auto-scroll
In Agent/Edit modes, the chat **constantly auto-scrolls to the bottom** whenever tools execute or responses stream. There is no setting to disable this behavior. The auto-scroll logic in the source code is hardcoded:

```typescript
// chatEditor.ts / chatViewPane.ts
autoScroll: mode => mode !== ChatModeKind.Ask
```

This means if you want to read the model's earlier reasoning while tools are running, you have to constantly fight the scroll. Manually scrolling up does trigger `_suppressAutoScroll` temporarily, but it resets on the next response.

### Pain Point 2: No way to navigate between conversation turns
Within a single long chat session, there is **no way** to quickly jump to a specific previous exchange. You can't:
- Jump to "the 3rd question I asked" or "the 5th response"
- See an outline/TOC of the conversation
- Navigate between turns with keyboard shortcuts (Alt+↑/Alt+↓ just switch between different sessions, not turns within a session)

The only navigation options are `Ctrl+F` (search) and `Ctrl+Home`/`Ctrl+End` (top/bottom), which are insufficient for long Agent sessions.

---

## Inspiration: Ophel Atlas Chrome Extension

The Chrome extension [Ophel Atlas](https://chromewebstore.google.com/detail/ai-chat-organizer-outline/lpcohdfbomkgepfladogodgeoppclakd) (4.9★, 9,000+ users) provides exactly this kind of functionality for web-based AI chats (ChatGPT, Gemini, Claude):

| Feature | Description |
|---------|-------------|
| **Real-time outline** | Auto-generated TOC from conversation, click to jump to any section |
| **Turn navigation** | Easily navigate between question/response pairs |
| **Position tracking** | Highlights current reading position so you know where you are |
| **Global search** | Search across all sessions, prompts, and settings |
| **Session organization** | Folders, tags, pinning for managing many sessions |

---

## Proposed Solution for VS Code Copilot Chat

### Minimum Viable (Quick Wins)
1. **Add a `chat.scrollToBottom` setting** with options: `"always"`, `"ifAtBottom"`, `"never"` — so users can control auto-scroll behavior
2. **Add commands to navigate between turns** within the current session (not between sessions):
- `workbench.action.chat.previousRequest` — jump to previous user request
- `workbench.action.chat.nextRequest` — jump to next user request
- `workbench.action.chat.previousResponse` — jump to previous agent response
- `workbench.action.chat.nextResponse` — jump to next agent response

### Ideal (Full Solution)
3. **Conversation Outline sidebar** — an auto-generated table of contents showing all turns in the current session:
- Each turn shown as a collapsible heading (user question / agent response)
- Click to scroll to that position
- Highlights current position
- Could be integrated into the existing chat view or as a separate panel

### Nice to Have
4. Search across sessions, export conversations, session folders/tags

---

## Related Issues
- #304608 — "Prevent scroll jumping in agent chats" (open, labeled `ux` + `polish`, only 2 👍)
- #264602 — "Chat sessions editor should auto-scroll" (closed, related but opposite problem)

---

## Why This Matters

As AI-assisted development becomes mainstream, users are having **longer and more complex conversations** with Copilot Agent. A 20-turn debugging session is common. Without proper navigation tools, users waste significant time scrolling and searching — undermining the productivity gains that Copilot is supposed to provide.

This is not just "polish" — it's a core UX gap that affects every heavy Copilot user daily.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.