feat(vscode): pin the latest plan/todo list above the conversation in the companion panel
Author: yiliang114Created Sep 17, 2026Updated Sep 18, 2026
Labelspriority/P3type/feature-requestcategory/uiscope/vscoderoadmap/ide-integrationwelcome-prstatus/ready-for-humanscope/web-shell
What would you like to be added?
In the VS Code companion, render the agent's latest plan / todo list in a pinned (sticky) panel that stays visible above the conversation while it scrolls, and refresh it in place as the plan updates.
Requested in #1895 (item 4): once the plan scrolls out of view, the user has to scroll back up to see which step the agent is on.
Why is this needed?
- The plan is the user's main progress indicator during a long turn; burying it in the scrollback forces constant manual scrolling.
- A persistent panel makes "which step are we on" answerable at a glance, which matters most for exactly the multi-step tasks that produce plans.
Implementation notes (community-friendly)
The data channel already exists — this is a webview UI change only, no protocol or agent work:
- The agent already emits ACP
session/updatenotifications withsessionUpdate: 'plan'. - The extension already receives them:
packages/vscode-ide-companion/src/services/qwenSessionUpdateHandler.ts(thecase 'plan'handler) currently renders the plan as a stream chunk viaonStreamChunk(planText), which is why it scrolls away. - The change is to also (or instead) hand the latest plan to a sticky region in the webview that re-renders on each subsequent
planupdate, plus a collapse/expand affordance.
Acceptance: with a plan-emitting session running, the latest plan stays visible while the transcript scrolls, updates in place on each new plan notification, and survives collapsing the panel and switching sessions.
Refs #1895
Source: QwenLM/qwen-code