feat(vscode-ide-companion): add dedicated agent execution display#2590
Conversation
📋 Review SummaryThis PR implements a dedicated agent execution display for the VSCode companion, preserving structured 🔍 General Feedback
🎯 Specific Feedback🟡 High
🟢 Medium
🔵 Low
✅ Highlights
|
Code Coverage Summary
CLI Package - Full Text ReportCore Package - Full Text ReportFor detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run. |
tanzhenxin
left a comment
There was a problem hiding this comment.
Love the dedicated agent execution display — this makes the agent workflow much more visible and user-friendly in the IDE. Well done! Approved, merge whenever it feels right to you. ✨
Preserve structured agent rawOutput through the VSCode session pipeline. Render dedicated agent execution cards from shared webui components.
2cfce61 to
767dc88
Compare
Merged 6 upstream commits while preserving HopCode architecture: Features synced from upstream: - feat(mcp): OSC 52 copy hotkey for OAuth authorization URL (QwenLM#3393) Press 'c' during OAuth to copy URL via terminal clipboard, works over SSH - feat(cli): early input capture to prevent keystroke loss during startup (QwenLM#3319) Buffers keystrokes during REPL init, replays once UI is mounted - perf(vscode): fix input lag in long conversations via React.memo (QwenLM#2550) MessageList/UserMessage/AssistantMessage wrapped with React.memo - feat(vscode-ide-companion): agent execution tool display (QwenLM#2590) Render dedicated agent execution cards in webview - fix(build): invoke tsx via node --import instead of npx (QwenLM#3237) Fixes bun compatibility for generate:settings-schema script - ci(stale): enable 35+35 stale/close PR policy (QwenLM#3375) Conflict resolution: - packages/vscode-ide-companion/.../toolcalls/index.tsx: kept @hoptrendy/webui, added ToolCallData to imports (upstream added it) - All @qwen-code/* import paths preserved as @hoptrendy/* (HopCode arch) - HopCode branding, version, and CI workflows preserved Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…2590) Preserve structured agent rawOutput through the VSCode session pipeline. Render dedicated agent execution cards from shared webui components.
TLDR
Add a dedicated Agent execution display for the VSCode companion so subagent runs no longer fall back to the generic tool card. This preserves structured
task_executionpayloads end-to-end and renders task title, execution status, child tool progress, completion summary, and failure reason.Screenshots / Video Demo
N/A — this is a VSCode webview UI change prepared from a CLI workflow, so no screenshot is attached here. Reviewers can validate the new display using the test plan below.
Dive Deeper
This PR fixes the missing Agent execution UI in the VSCode companion by wiring structured agent output through the ACP update pipeline and adding a dedicated shared renderer.
Main changes:
rawOutputontool_call/tool_call_updateevents in the VSCode session handler.rawOutputin the webview tool-call state.AgentToolCallcomponent in@qwen-code/webui.rawOutput.type === "task_execution"to the dedicated agent renderer instead ofGenericToolCall.ChatViewerpath so tool-call rendering stays consistent.rawOutputpropagationTouched areas:
packages/vscode-ide-companion/src/services/qwenSessionUpdateHandler.tspackages/vscode-ide-companion/src/webview/hooks/useToolCalls.tspackages/vscode-ide-companion/src/webview/components/messages/toolcalls/index.tsxpackages/webui/src/components/toolcalls/AgentToolCall.tsxpackages/webui/src/components/ChatViewer/ChatViewer.tsxReviewer Test Plan
npm exec --workspace=packages/vscode-ide-companion vitest -- --run src/services/qwenSessionUpdateHandler.test.ts src/webview/hooks/useToolCalls.test.tsx src/webview/components/messages/toolcalls/index.test.tsxnpm run typecheck --workspace=packages/webuinpm run build --workspace=packages/vscode-ide-companionTesting Matrix
Linked issues / bugs
Resolves #2514