Commit graph

66 commits

Author SHA1 Message Date
易良
87f03cf2e9
feat(vscode-ide-companion): add image paste support (#1978)
* feat(vscode-ide-companion): add image paste support

  - Add clipboard image paste functionality with drag-and-drop support
  - Implement image preview component with removal capability
  - Support multimodal content in ACP session manager for text and images
  - Save pasted images to temporary .gemini-clipboard directory
  - Add image attachment display in user messages
  - Update CSP to allow data: URIs for inline image display
  - Add comprehensive image utilities with size validation (max 10MB)
  - Include tests for image processing utilities

* refactor: simplify VS Code paste image implementation

- Remove dead code and redundant error handling
- Extract common isAuthError() helper function
- Simplify SessionMessageHandler methods (80% reduction)
- Change temp directory from .gemini-clipboard to clipboard (aligned with CLI)
- Keep multimodal image sending format (type: image + base64)

Stats:
- 6 files changed
- 367 insertions (+)
- 1176 deletions (-)

* refactor: align paste image handling

* chore: trim paste image diff

* refactor(vscode-ide-companion): remove unused attachments logic

- Remove unused ImageAttachment type imports
- Remove attachments field from TextMessage interface
- Remove attachments from message data sent to WebView
- Clean up debug console.log statements
- Simplify SessionMessageHandler handleSendMessage method

This removes dead code from the previous image paste implementation
that was no longer needed after switching to @path reference approach.

* refactor(vscode-ide-companion/webview): extract image handling into dedicated hooks and utils

- extract ImagePreview and ImageMessageRenderer components from App.tsx
- create useImageAttachments hook for managing image attachments
- create useImageResolution hook for image path resolution
- add imageAttachmentHandler for saving images to temp files
- add imageMessageUtils for message expansion and resolution
- add imagePathResolver for resolving image paths in webview
- integrate image resolution in useWebViewMessages
- extract shouldSendMessage utility from useMessageSubmit
- add getLocalResourceRoots in PanelManager for resource access

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* fix: harden vscode image handling and webview hosts

* fix: remove this alias in acp connection

* feat: add path escaping utility functions and tests

* feat: add support for image attachments and improve prompt handling

* refactor(webview): Optimize editing mode switching function

* refactor(vscode-ide-companion): move path escaping utilities to local module

- Move escapePath and unescapePath functions from qwen-code-core to local utils
- Add pathEscaping.ts with shell special characters handling
- Update imports in imageFormats.ts, imageAttachmentHandler.ts, and imageMessageUtils.ts
- Add unit tests for path escaping round-trip and browser bundle verification
- Fix browser bundling issue by avoiding node-only module dependencies in webview

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* refactor: consolidate image handling logic across vscode-ide-companion and webui

- Merge分散的 image hooks (useImageAttachments, useImageResolution, usePasteHandler) into unified useImage hook
- Replace image utils (imageMessageUtils, imagePathResolver, imageUtils) with imageHandler and imageSupport
- Remove clipboard image storage from core package
- Consolidate webui image components into ImageComponents.tsx
- Update imports and tests to reflect new structure

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* chore: drop unrelated core tool changes

* test: fix webview provider mocks and drop unrelated core diffs

* fix(cli): resolve original prompt through standard path in no_command case

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-20 13:47:09 +08:00
mingholy.lmh
d59e668729 feat(export): add metadata and statistics to export data
- Add ExportMetadata type with session info, token stats, file operation stats
- Track response_id from LLM API for telemetry correlation
- Collect usageMetadata from assistant messages
- Calculate file stats (files read/written, lines added/removed)
- Calculate token stats (total tokens, context usage percentage)
- Add metadata sidebar to HTML export template
- Support metadata in JSONL and Markdown formatters
- Update chatRecordingService to record response_id

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-19 14:10:38 +08:00
易良
ef640ba698
feat(vscode-ide-companion): add Tab key fill-only behavior for completions (#2431)
* feat(vscode-ide-companion): add Tab key fill-only behavior for completions

- Separate Tab and Enter key handling in CompletionMenu
- Tab now inserts completion text without executing (useful for slash commands)
- Enter/click continues to select and execute immediately
- Allow users to append arguments after Tab-filling slash commands

* feat(vscode-ide-companion): add Tab key fill-only behavior for completions

- Separate Tab and Enter key handling in CompletionMenu
- Tab now inserts completion text without executing (useful for slash commands)
- Enter/click continues to select and execute immediately
- Allow users to append arguments after Tab-filling slash commands

Co-authored-by: Mingholy <14246397+Mingholy@users.noreply.github.com>

* feat: add command selection behavior logic and tests

Co-developed-by: Aone Copilot <noreply@alibaba-inc.com>

* feat(vscode-ide-companion): add Tab key completion fill behavior with tests

- Add onCompletionFill prop to InputForm for Tab key handling
- Distinguish Tab (fill) and Enter (select) completion behaviors
- Add keyboard handling tests for completion items
- Remove 'skills' command from non-interactive CLI allowed list

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* refactor: add itemId variable for command handling in App component

Co-developed-by: Aone Copilot <noreply@alibaba-inc.com>

* refactor: remove unused command selection behavior utils and tests

---------

Co-authored-by: Mingholy <14246397+Mingholy@users.noreply.github.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-18 21:45:11 +08:00
tanzhenxin
22f0437369 chore: bump version to 0.13.0
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-18 10:41:32 +08:00
qwen-code-ci-bot
ac30c98a26
chore: bump version to 0.12.6 (#2442)
Some checks failed
Qwen Code CI / Lint (push) Failing after 5s
Qwen Code CI / CodeQL (push) Failing after 5s
Qwen Code CI / Test (push) Has been skipped
Qwen Code CI / Test-1 (push) Has been skipped
Qwen Code CI / Test-2 (push) Has been skipped
Qwen Code CI / Test-3 (push) Has been skipped
Qwen Code CI / Test-4 (push) Has been skipped
Qwen Code CI / Test-5 (push) Has been skipped
Qwen Code CI / Test-6 (push) Has been skipped
Qwen Code CI / Test-7 (push) Has been skipped
Qwen Code CI / Test-8 (push) Has been skipped
E2E Tests / E2E Test (Linux) - sandbox:none (push) Failing after 3s
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Failing after 4s
Qwen Code CI / Post Coverage Comment (push) Has been skipped
E2E Tests / E2E Test - macOS (push) Has been cancelled
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-17 19:00:26 +08:00
qwen-code-ci-bot
bcbd82d2d4
chore: bump version to 0.12.5 (#2422)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-16 19:05:05 +08:00
tanzhenxin
a165599b32 chore(release): bump version to 0.12.4
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-15 18:45:14 +08:00
tanzhenxin
f2b7d9aaac chore(release): bump version to 0.12.3
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-13 16:42:12 +08:00
tanzhenxin
182422ce2b
Merge pull request #2307 from QwenLM/release/v0.12.2
chore: Release v0.12.2
2026-03-12 17:45:40 +08:00
imossaidqadri
d708faa504 fix(webui): add Tab key support to CompletionMenu
Fixes #2293

- Add Tab key handling in CompletionMenu component
- Tab now selects the highlighted completion item (same as Enter)
- Prevents default browser Tab focus behavior when menu is open
- Matches Claude Code UX pattern for slash command completion
2026-03-12 07:13:41 +05:00
tanzhenxin
9890625de7 chore: bump version to 0.12.2
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-12 10:02:48 +08:00
tanzhenxin
1376a621b8 chore(release): bump version to 0.12.1
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-10 09:22:03 +08:00
tanzhenxin
2e91f0a4cd Merge remote-tracking branch 'origin/main' into feat/ask-user-question-tool 2026-03-08 23:05:32 +08:00
tanzhenxin
411ebd03b8 fix(cli): improve ask_user_question tool handling and UI
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

- In ACP mode: allow ask_user_question in YOLO mode (user must respond)

- In ACP mode: allow ask_user_question in plan mode for clarifications

- Hide footer when confirmation dialog is active

- Fix tab index overflow with functional state updates

- Fix ask_user_question detection in VSCode companion (use rawInput)

- Add cleanup for pending ACP promises on panel/provider dispose

- Use theme.text.accent consistently for highlighted elements

- Remove unused 'answers' param from AskUserQuestionParams

This ensures users can always respond to clarification questions

in ACP mode regardless of approval mode, and improves dialog UX.
2026-03-08 22:15:18 +08:00
mingholy.lmh
f1c88e9bc9 style: apply formatting and linting fixes across codebase
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-06 21:58:22 +08:00
tanzhenxin
bca799e818 Merge branch 'main' into feat/ask-user-question-tool 2026-03-06 14:03:42 +08:00
tanzhenxin
8052324578 chore: bump version to 0.12.0
Update version across all packages and sandbox image URI.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-04 20:25:56 +08:00
tanzhenxin
8d3ab4894a chore: bump version to 0.11.1
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-01 10:51:30 +08:00
tanzhenxin
a0d80ee4fa chore: bump version to 0.11.0
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-26 21:08:40 +08:00
qwen-code-ci-bot
fc04ba1ece
chore: bump version to 0.10.5 (#1886)
Some checks failed
Qwen Code CI / Lint (push) Has been cancelled
Qwen Code CI / CodeQL (push) Has been cancelled
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Has been cancelled
E2E Tests / E2E Test (Linux) - sandbox:none (push) Has been cancelled
E2E Tests / E2E Test - macOS (push) Has been cancelled
Qwen Code CI / Test (push) Has been cancelled
Qwen Code CI / Test-1 (push) Has been cancelled
Qwen Code CI / Test-2 (push) Has been cancelled
Qwen Code CI / Test-3 (push) Has been cancelled
Qwen Code CI / Test-4 (push) Has been cancelled
Qwen Code CI / Test-5 (push) Has been cancelled
Qwen Code CI / Test-6 (push) Has been cancelled
Qwen Code CI / Test-7 (push) Has been cancelled
Qwen Code CI / Test-8 (push) Has been cancelled
Qwen Code CI / Post Coverage Comment (push) Has been cancelled
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-20 22:04:14 +08:00
qwen-code-ci-bot
4cd42187b8
chore: bump version to 0.10.4 (#1864)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-18 12:46:25 +08:00
qwen-code-ci-bot
fca4d739c7
chore: bump version to 0.10.3 (#1863)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-18 12:28:48 +08:00
mingholy.lmh
07b97282aa chore: bump version to 0.10.2
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-15 11:51:04 +08:00
DragonnZhang
554a202840 feat: add AskUserQuestion functionality with dialog component
- Introduced AskUserQuestionDialog component for displaying questions and collecting user responses in the WebView.
- Updated ACP integration to handle ask user question requests and responses.
- Enhanced session management to include raw input and answers for user questions.
- Modified existing tools and services to support new ask user question feature.
- Updated types and message handling to accommodate new question structure and responses.
2026-02-14 17:31:29 +08:00
mingholy.lmh
cc4ad12e06 chore: bump version to 0.10.1
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-11 19:22:31 +08:00
tanzhenxin
8434b89711
Merge pull request #1682 from QwenLM/fix/vscode-ide-compaion-ui-show-bugs
fix(vscode-ide-companion): Fix UI display issues with server-side timestamp and file path extraction
2026-02-05 20:17:30 +08:00
tanzhenxin
50059d6f32 chore(release): Bump version to 0.10.0 across all packages
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-05 11:30:45 +08:00
yiliang114
9830c70061 feat(vscode-ide-companion): 支持使用 server-side timestamp 进行消息排序
- 在 SessionUpdateMeta 中添加 timestamp 字段
- 为 UserMessageChunkUpdate 和 ToolCallUpdate 添加 _meta 字段
- 在 QwenAgentManager 中使用 server timestamp 而非客户端时间
- 在 QwenSessionUpdateHandler 中解析并传递 tool call timestamp
- 在 useToolCalls 中改进 timestamp 解析逻辑
- 修正 App.tsx 中 timestamp 处理,使用 nullish-coalescing operator
- 为 ToolCallUpdateData 和 ToolCallUpdate 类型添加 timestamp 和 _meta

feat(integration-tests): add file location extraction for tool calls

feat(webui): enhance ReadToolCall component with content preview and expand/collapse

refactor(webui): simplify SaveMemoryToolCall component UI

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-01 00:22:29 +08:00
tanzhenxin
07b186fcbf build: Improve build efficiency and add dev mode
- Remove duplicate webui build in vscode-ide-companion (fixes double build)
- Fix misleading [watch] log messages in esbuild.js (only show in watch mode)
- Update vite-plugin-dts to ^4.5.4 for TypeScript 5.8+ support
- Update baseline-browser-mapping to ^2.9.19 to silence outdated data warnings
- Fix vitest config to use @qwen-code/qwen-code-core instead of old gemini-cli-core
- Add resolve.alias in cli vitest.config.ts for source-based testing
- Add npm run dev script for running from TypeScript source without build

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-31 22:41:54 +08:00
tanzhenxin
2aab8b4c14 Merge branch 'main' into chore/bump-version-0.9.0 2026-01-29 21:05:26 +08:00
yiliang114
02db22dd78 chore: update eslint config and translation adjustments
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

This commit includes several updates:

- Updated eslint configuration with improved formatting and organization

- Added SaveMemoryToolCall support in vscode-ide-companion

- Translated Chinese comments and UI text to English in various components

- Made minor code formatting improvements across multiple files
2026-01-29 19:44:37 +08:00
yiliang114
bc5065b139 feat(webui): add SaveMemory tool call component support 2026-01-29 17:05:04 +08:00
yiliang114
878a870df2 Merge branch 'main' of https://github.com/QwenLM/qwen-code into feat/unified-ui-for-vscode-extension 2026-01-29 15:40:32 +08:00
yiliang114
5d00245286 feat(webui): enhance ThinkingMessage with expand/collapse
- Add expand/collapse functionality to ThinkingMessage
- Support defaultExpanded prop to control initial state
- Add status prop (loading/default) with pulse animation
- Introduce ChevronIcon for expand/collapse toggle
- Update ThinkingMessage styles with timeline support
- Add stories for all states (default, expanded, loading)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-29 01:39:59 +08:00
yiliang114
71cae2fa1e feat(webui): add WebFetchToolCall component for web search/fetch
- Add WebFetchToolCall component to display web fetch and search operations
- Support URL/query display with output card
- Add expand/collapse for long output content
- Export WebFetchToolCall from toolcalls index
- Integrate WebFetchToolCall in ChatViewer component

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-29 01:39:46 +08:00
yiliang114
2ac69ad1c3 chore(deps): version bump to 0.1.0-beta.4
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-29 01:39:25 +08:00
yiliang114
bb358703e9 Merge branch 'main' of https://github.com/QwenLM/qwen-code into feat/unified-ui-for-vscode-extension 2026-01-28 18:52:37 +08:00
yiliang114
f079916cbb chore(deps): upgrade @types/react 和 @types/react-dom 2026-01-28 18:38:11 +08:00
yiliang114
76505c635e feat(webui): publish webui
0.1.0-beta.3 add collapsibaleFileContext compent and opt SearchToolCall
2026-01-28 17:24:31 +08:00
yiliang114
dfdc4e6c59 build(webui): Update Vite configuration to optimize React build settings 2026-01-22 15:53:41 +08:00
yiliang114
8d2d29a422 feat(webui): Add UMD build format and CDN usage support 2026-01-22 15:47:56 +08:00
yiliang114
2ea44966ec feat(webui): enhance ChatViewer and components 2026-01-21 23:51:20 +08:00
yiliang114
5900162229 refactor(webui): improve timeline styling and enhance ReadToolCall error handling
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-21 20:50:51 +08:00
yiliang114
e1ad876415 chore(docs): remove obsolete documentation files
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-21 20:50:45 +08:00
yiliang114
23afe2e7f8 docs(webui): update tool display names documentation with unified UI architecture context
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-20 23:57:49 +08:00
yiliang114
776cee1afd docs(webui): add VSCode IDE Companion UI migration test plan
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-20 23:57:40 +08:00
yiliang114
a6d3a8a1e3 feat(webui/storybook): add full height container support for ChatViewer
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-20 23:57:30 +08:00
yiliang114
7ca7fec18d docs(webui): update documentation and package references
- Add comprehensive Adapter-README documenting data transformation flow
- Update README.md with correct package name (@qwen-code/webui)
- Add platform adapter guide for Chrome/Web/Share implementations
- Update Storybook configuration and preview styles
- Remove obsolete migration plan and example component

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-20 22:59:20 +08:00
yiliang114
df787fff64 feat(webui): enhance ChatViewer and AssistantMessage with timeline positioning
- Update ChatViewer to calculate and pass timeline positions (isFirst/isLast) to messages
- Enhance AssistantMessage with timeline connector visualization
- Add storybook stories for AssistantMessage component
- Update SearchToolCall and LayoutComponents for improved UI consistency
- Export new adapters in main index file
- Add timeline styling to components

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-20 21:33:49 +08:00
yiliang114
1861557d15 feat(webui): add data adapter layer for ACP and JSONL protocols
- Implement ACPAdapter to convert ACP protocol messages to unified format
- Implement JSONLAdapter to convert JSONL format messages to unified format
- Define unified message types for consistent component rendering
- Add helper functions for timeline position calculation (isFirst/isLast)
- Enable cross-platform message format compatibility

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-20 21:33:35 +08:00