feat(core): enable parallel tool call execution#2000
Closed
yiliang114 wants to merge 304 commits intosplit/tool-scheduler-refactorfrom
Closed
feat(core): enable parallel tool call execution#2000yiliang114 wants to merge 304 commits intosplit/tool-scheduler-refactorfrom
yiliang114 wants to merge 304 commits intosplit/tool-scheduler-refactorfrom
Conversation
Contributor
📋 Review SummaryThis PR enables parallel execution of independent tool calls within the same batch using 🔍 General Feedback
🎯 Specific Feedback🟡 High
🟢 Medium
🔵 Low
✅ Highlights
|
- Add i18n keys for modality types and status labels - Update ModelDialog to use t() for user-facing strings Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
…l, Dev Container) - Detect cloud IDE environments via environment variables - Use host.docker.internal for IDE server connection in containers - Add DNS lookup with timeout and fallback to 127.0.0.1 - Improve error messages and troubleshooting guidance for cloud IDEs - Update /ide status, /ide install, and /ide enable commands with cloud-specific info Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Update error messages for unsupported image/PDF inputs with clearer guidance - Add `modalities` setting to override auto-detected input modalities - Document `modalities` config in model-providers.md and settings.md - Update converter tests to match new error message format This provides users with actionable alternatives when their selected model doesn't support certain input types, and allows manual modality overrides for models not recognized by auto-detection. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com> - Add 5MB limit for image files to prevent API errors - Add 10MB limit for PDF files based on provider constraints - Return FILE_TOO_LARGE error with clear message when limits exceeded - Add tests for both image and PDF size limit enforcement This prevents errors when attempting to process large binary files that exceed provider API limits.
- 为 ActionSelectionStep.test.tsx 和 ExtensionListStep.test.tsx 添加 KeypressProvider 包裹 - 修复 KeypressContext 导入路径 - 更新测试快照 - 重构 ExtensionsManagerDialog:提取 enable/disable 公共逻辑到 handleToggleExtensionState - 添加错误消息状态和用户友好的错误提示
When LLM streaming output exceeds token limits, JSON arguments for tool calls can be truncated mid-stream. This causes validation errors or silent data corruption when the truncated JSON passes validation but writes incomplete files. The fix adds truncation detection at the streaming parser level and overrides misleading finish_reason values from providers (e.g., DashScope/Qwen reporting 'stop' instead of 'length'). This ensures downstream code correctly identifies truncated responses and provides clear guidance to the LLM for retrying with split content. Changes: - turn.ts: Add wasOutputTruncated flag to ToolCallRequestInfo - coreToolScheduler.ts: Reject truncated edit tool calls, append guidance for write_file - converter.ts: Override finish_reason when streaming parser detects incomplete JSON - streamingToolCallParser.ts: Add hasIncompleteToolCalls() method - Tests: Add comprehensive test coverage for truncation detection scenarios Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- 更新 extensionsCommand.test.ts 以匹配新的命令结构 - 移除对已删除子命令(update, uninstall, disable, enable, detail)的测试 - 简化 listAction 函数,始终返回 extensions_manage 对话框 - 移除未使用的 showMessageIfNoExtensions 函数
Add AGENT_CONTEXT_FILENAME constant and include AGENTS.md in default context file search alongside QWEN.md. This enables out-of-the-box support for the AGENTS.md standard (https://agents.md/) without requiring manual configuration. Changes: - Add AGENT_CONTEXT_FILENAME = 'AGENTS.md' constant - Update currentGeminiMdFilename default to include both AGENTS.md and QWEN.md - AGENTS.md takes precedence (first in array) for the de facto standard Closes #2006
- Add weighted tip system to make certain tips appear more frequently - Set /insight tip to weight 3 (3x more likely than regular tips) - Add i18n translations for the new tip across all supported languages - Add comprehensive unit tests for weighted tip selection Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
feat(cli): Increase /insight feature exposure via weighted tips
- Removed exact match assertion for help text that changed in UI - Test now only verifies the dialog title renders correctly The help text changed from 'Enter to select · Esc to close' to 'Enter to select, ↑↓ to navigate, Esc to close', causing the test to fail unnecessarily. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
…heck - Reduce general file size limit from 20MB to 10MB (using 9.9MB threshold) - Remove per-type size limits (5MB images, 10MB PDFs) - Add base64 encoding size check for PDFs to prevent data URI limit errors - Update all tests to reflect new 10MB limit This fixes issue #1880 where large PDFs could exceed API data URI limits after base64 encoding, causing errors. The 9.9MB threshold provides margin for encoding overhead. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com> Replace generic skill suggestion with specific guidance to install the document-skills extension for PDF processing.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
chore: bump version to 0.11.1
- Replace nested API-KEY submenu with flat three-option layout - Add descriptive labels for each authentication method: - Qwen OAuth: Free, up to 1,000 requests/day - Alibaba Cloud Coding Plan: Paid, multiple model providers - API Key: Bring your own API key - Simplify region selection for Coding Plan (China vs Global) - Use DescriptiveRadioButtonSelect for better visual hierarchy - Add itemGap prop to BaseSelectionList for spacing - Update i18n strings in en.js, zh.js, and ru.js - Simplify custom API key configuration info view - Clean up unused region-specific strings Closes #2016 Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Update error handling to display user-friendly quota exceeded messages with links to Alibaba Cloud Coding Plan upgrade options. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This reverts commit c9126e0.
Keep QWEN.md as the first element in the default context filenames array to maintain backward compatibility with /init command and save_memory tool. Both QWEN.md and AGENTS.md will still be searched and loaded, but QWEN.md takes precedence for file creation operations.
chore(release): bump version to 0.12.1
fix: clean up MCP server display and add CONCAT merge strategy for mcp allowed/excluded lists
fix(hooks): Fix failing hook integration tests by updating hook scripts to create hook_invoke_count.txt
improve readability of context compression description
fix(hooks): Remove useless expect
feat(cli): change temporary filename prefix to qwen-edit-
…vscode-ide-companion-layout
…Session The /export commands (html, md, json, jsonl) were incorrectly using loadLastSession() which loads the last modified session from disk, rather than the currently active session. This fix uses config.getSessionId() to get the current session ID and loads the correct session with loadSession(sessionId). Fixes #2267 Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
…ve sidebar pattern Adopt Claude Code's approach for webview view registration: - Use mutual-exclusive sidebar/secondary sidebar with `when` conditions - Detect secondary sidebar support via VS Code version >= 1.106 - Share single ChatWebviewViewProvider instance across both view IDs - Only set context key when secondary sidebar is NOT supported - Pass supportsSecondarySidebar as closure variable to commands Additional fixes: - Fix WebViewContent.generate() to accept both Webview and WebviewPanel - Fix permission handler leak (cancel old promise before new) - Fix double diff command execution in resolve callback - Add initializationPromise dedup for auth-restore races - Add attachToView() for sidebar/secondary sidebar hosting - Add missing AskUserQuestionResponseMessage import Co-authored-by: buaoyezz <buaoyezz@users.noreply.github.com>
…ext-aware new chat - Adjust thinking message timestamp to sort above assistant response - Add context-aware new chat: sidebar resets in-place, editor tab opens new tab Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
feat(vscode-ide-companion): add sidebar view and multi-position chat layout
…opening (#2221) * fix(core): skip openDiff in YOLO mode to prevent VS Code editor from opening * test: add shouldConfirmExecute tests for AUTO_EDIT and YOLO in edit and write-file * Update packages/core/src/tools/edit.ts Co-authored-by: Shaojin Wen <shaojin.wensj@alibaba-inc.com> * Update packages/core/src/tools/write-file.ts Co-authored-by: Shaojin Wen <shaojin.wensj@alibaba-inc.com> --------- Co-authored-by: Shaojin Wen <shaojin.wensj@alibaba-inc.com>
Add global uncaught exception handler to suppress known race condition in @lydell/node-pty where a deferred resize fires after the pty process has already exited on Windows. Tracking bug: microsoft/node-pty#827 Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
refactore: Start qwen after installation
…D in readTextFile - Add error handling in readTextFile to catch and map file system errors - Convert ENOENT errors to RequestError with RESOURCE_NOT_FOUND code - Add unit tests for the error mapping logic Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
…ition fix(cli): suppress Windows pty resize race condition
fix(vscode-ide-companion): map ENOENT errors to ACP RESOURCE_NOT_FOUND in readTextFile
fix: export command should use current session ID instead of loadLastSession
Resolved conflict in coreToolScheduler.test.ts by: 1. Keeping the Parallel Execution test suite from this branch 2. Removing the Sequential Execution test suite from main (tests old behavior) 3. Keeping all other test suites from main branch The current branch implements parallel execution for tool calls (issue #1998), so the Sequential Execution tests that test the old serial behavior are no longer applicable.
…/tool-scheduler-parallel
Add @yiliang114 as the code owner for the following packages: - packages/vscode-ide-companion/ - packages/webui/
chore: add yiliang114 as code owner for vscode-ide-companion and webui
Collaborator
Author
|
Included by #2434. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #1998
This PR enables parallel execution of independent tool calls within the same batch. Built on top of #1998 (refactor), it switches from sequential to concurrent execution using
Promise.allSettled.Changes
for...ofloop withPromise.allSettledfor parallel executionDepends On
Stack