Commit graph

1461 commits

Author SHA1 Message Date
tanzhenxin
fb44b76abd
Merge pull request #2157 from QwenLM/zth/keep-rejected-plan-content-visible
Some checks are pending
Qwen Code CI / CodeQL (push) Waiting to run
Qwen Code CI / Lint (push) Waiting to run
Qwen Code CI / Test (push) Blocked by required conditions
Qwen Code CI / Test-1 (push) Blocked by required conditions
Qwen Code CI / Test-2 (push) Blocked by required conditions
Qwen Code CI / Test-3 (push) Blocked by required conditions
Qwen Code CI / Test-4 (push) Blocked by required conditions
Qwen Code CI / Test-5 (push) Blocked by required conditions
Qwen Code CI / Test-6 (push) Blocked by required conditions
Qwen Code CI / Test-7 (push) Blocked by required conditions
Qwen Code CI / Test-8 (push) Blocked by required conditions
Qwen Code CI / Post Coverage Comment (push) Blocked by required conditions
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none (push) Waiting to run
E2E Tests / E2E Test - macOS (push) Waiting to run
Keep rejected plan content visible in plan mode
2026-03-15 22:11:57 +08:00
tanzhenxin
2719540fab
Merge pull request #2024 from drewd789/fix/pdf-session-corruption
fix(core): reject PDF files to prevent session corruption (fixes #2020)
2026-03-15 22:06:41 +08:00
tanzhenxin
33c6d9cbf3
Merge pull request #2286 from LaZzyMan/fix/extension-install-symlink-windows
fix(extension): disable symlinks on Windows during git clone to fix install failure
2026-03-15 21:55:44 +08:00
tanzhenxin
7ee65e1738 fix(fileUtils): remove error field from skipped file result
When a file is skipped because the model doesn't support a modality,
it should not be treated as an error. The error field was incorrectly
being set alongside the informational message.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-15 21:44:28 +08:00
tanzhenxin
fdad1980d7 fix(test): add missing getContentGeneratorConfig mock to tests
Adds the required getContentGeneratorConfig mock to read-file.test.ts
and pathReader.test.ts to fix failing tests that depend on content
generator configuration.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-15 21:41:20 +08:00
tanzhenxin
5c31341205 Merge remote main into fix/pdf-session-corruption
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-15 21:24:57 +08:00
tanzhenxin
6997636ba4 fix(fileUtils): use config modalities instead of model-based defaults
This fixes session corruption issues where the modality check was based on
the model name rather than the actual resolved config, causing inconsistent
behavior when the config's modalities differed from the defaults.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-15 21:22:57 +08:00
tanzhenxin
59c1765ec5
Merge pull request #2001 from hs-ye/docs/subagent-limits
Docs/subagent system prompt limits
2026-03-15 21:15:53 +08:00
tanzhenxin
1852a73a3f fix(subagents): change limits from hard errors to soft warnings
- Increase description warning threshold from 500 to 1,000 characters
- Change system prompt 10,000 char limit from error to warning
- Remove intermediate 5,000 char warning threshold for system prompts
- Update documentation to reflect soft warning behavior

This provides more flexibility for users while still guiding them
toward better practices.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-15 20:56:25 +08:00
tanzhenxin
e2affcebdd
Merge pull request #2364 from netbrah/fix/empty-choices-crash
fix(core): guard against empty choices in convertOpenAIResponseToGemini
2026-03-15 20:52:47 +08:00
tanzhenxin
2898e9e60e refactor(core): move candidates assignment inside choice check
Restructures the convertOpenAIResponseToGemini method to set
response.candidates within the choice conditional block, making
the empty choices handling more explicit and the control flow clearer.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-15 20:37:59 +08:00
tanzhenxin
b2c9e641ef
Merge pull request #2362 from netbrah/fix/deepseek-r1-output-limit
fix(core): add deepseek-r1 to output token limit patterns
2026-03-14 21:46:35 +08:00
Shaojin Wen
1359563f45
feat(skills): add bundled /review skill for out-of-the-box code review (#2348)
feat(skills): add bundled /review skill for out-of-the-box code review
2026-03-14 15:15:08 +08:00
netbrah
b416bbdcc6 fix(core): guard against empty choices in convertOpenAIResponseToGemini
The streaming path (convertOpenAIChunkToGemini) already uses optional
chaining on choices and guards with `if (choice)`, but the
non-streaming path accesses choices[0] directly. Providers that return
an empty choices array cause a TypeError crash.

Made-with: Cursor
2026-03-13 13:20:23 -04:00
netbrah
4990a56f74 fix(core): add deepseek-r1 to output token limit patterns
deepseek-r1 normalizes to `deepseek-r1` which does not match the
existing `^deepseek-reasoner` output pattern, causing it to fall
through to the 8K default. DeepSeek R1 supports 64K output tokens,
same as deepseek-reasoner. Without this fix, responses from
deepseek-r1 are silently truncated at 8K tokens.

Made-with: Cursor
2026-03-13 13:16:40 -04:00
顾盼
d950ad0f7d
Merge pull request #2344 from QwenLM/fix-vscode-encoding
Refactors `FileSystemService` interface to use ACP-aligned request/response objects
2026-03-13 18:05:33 +08:00
LaZzyMan
f9de25d7c5 fix review bugs 2026-03-13 17:45:39 +08:00
tanzhenxin
278add5147
Merge pull request #2265 from wenshao/fix/remove-duplicate-exports-index
fix(core): remove duplicate exports in packages/core/src/index.ts
2026-03-13 17:34:33 +08:00
tanzhenxin
aa206112ee
Merge pull request #2349 from QwenLM/fix/windows-conpty-default
fix(core): disable node-pty on older Windows builds with broken ConPTY
2026-03-13 16:47:36 +08:00
tanzhenxin
04beebe587
Merge pull request #2347 from QwenLM/fix/windows-shell-args-quoting
fix(shell): pass args as string on Windows to prevent quoting issues
2026-03-13 16:47:18 +08:00
tanzhenxin
6383b41975 fix(core): disable node-pty on older Windows builds with broken ConPTY
ConPTY on Windows builds <= 19041 has known reliability issues including
missing output and hangs. VS Code uses the same cutoff.

This fixes run_shell_command returning empty output on affected Windows
systems by falling back to spawn-based execution instead of node-pty.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-13 16:06:27 +08:00
tanzhenxin
452ee89a9f fix(shell): set windowsVerbatimArguments only for cmd.exe
- Enable windowsVerbatimArguments only when shell is cmd.exe
- PowerShell requires default escaping for correct arg round-trip

The windowsVerbatimArguments option skips Node's MSVC CRT escaping,
which cmd.exe doesn't understand. PowerShell (.NET) needs the default
escaping so args pass correctly through CommandLineToArgvW.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-13 15:50:21 +08:00
tanzhenxin
e1dfb4a844 fix(shell): only use string args for cmd.exe on Windows
PowerShell handles array args correctly via CommandLineToArgvW, and
the string form breaks quoted paths ending in backslash (e.g.,
"C:\Temp\") because \" is treated as an escaped quote.

This refines the previous fix to only apply the workaround to cmd.exe.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-13 15:21:10 +08:00
tanzhenxin
6193aade55 fix(shell): pass args as string on Windows to prevent quoting issues
On Windows, node-pty's argsToCommandLine re-quotes array elements that
contain spaces, which mangles user-provided quoted arguments. For example,
'type "hello world"' becomes '"type \"hello world\""'.

By passing args as a single string instead of an array on Windows,
node-pty concatenates it verbatim, preserving the original quoting.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-13 14:53:25 +08:00
tanzhenxin
2f4f44d213 test(core): update GLM output limit tests to match 128K
Updates test expectations for GLM-5 and GLM-4.7 output limits
from 16K to 128K to align with the implementation changes.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-13 14:45:20 +08:00
tanzhenxin
613e8b3633 fix(core): correct GPT-5.x input token limit to 272K
GPT-5.x models have 400K total context but 128K is reserved for output,
so the actual input limit is 272K (400K - 128K). Also updates GLM-5 and
GLM-4.7 output limits from 16K to 128K.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-13 14:26:12 +08:00
LaZzyMan
5e58e29bde Merge branch 'main' into fix-vscode-encoding 2026-03-13 13:50:30 +08:00
LaZzyMan
328862aee7 fix encoding in acp 2026-03-13 13:47:25 +08:00
tanzhenxin
625c50aae7
Merge pull request #2322 from QwenLM/fix/ide-connection-dns-lookup
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
fix(ide): resolve IDE connection issues in some VSCode clients and optimize connection config lookup
2026-03-13 11:34:50 +08:00
顾盼
46d57afb22
Merge pull request #2327 from QwenLM/fix-mcp-auth
Some checks are pending
Qwen Code CI / Lint (push) Waiting to run
Qwen Code CI / Test (push) Blocked by required conditions
Qwen Code CI / Test-1 (push) Blocked by required conditions
Qwen Code CI / Test-2 (push) Blocked by required conditions
Qwen Code CI / Test-3 (push) Blocked by required conditions
Qwen Code CI / Test-4 (push) Blocked by required conditions
Qwen Code CI / Test-5 (push) Blocked by required conditions
Qwen Code CI / Test-6 (push) Blocked by required conditions
Qwen Code CI / Test-7 (push) Blocked by required conditions
Qwen Code CI / Test-8 (push) Blocked by required conditions
Qwen Code CI / Post Coverage Comment (push) Blocked by required conditions
Qwen Code CI / CodeQL (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none (push) Waiting to run
E2E Tests / E2E Test - macOS (push) Waiting to run
feat(mcp): improve OAuth auth UX - post-auth feedback, i18n, clear auth, and bug fixes
2026-03-13 00:32:58 +08:00
LaZzyMan
ec0db29bef fix(mcp): prevent EADDRINUSE when re-entering OAuth authentication
Track the active OAuth callback server at module level. When a new
authentication is started, close any previously running callback server
first to avoid 'listen EADDRINUSE: address already in use :::7777'
errors that occur when the user navigates back and re-enters auth.
2026-03-12 21:02:09 +08:00
LaZzyMan
dcf986838c feat(mcp): improve OAuth auth UX - post-auth feedback, i18n, clear auth, and bug fixes
- Show tool count and completion message after successful authentication
- Auto-navigate back to server details after auth success (2s delay)
- Add structured i18n messages for OAuth display (core emits key/params, CLI translates)
- Add 'Clear Authentication' option for servers with stored OAuth tokens
- Fix: clearing auth now disconnects server (not just deleting tokens)
- Fix: auth popup infinite loop caused by onSuccess triggering reload/remount cycle
- Add ToolRegistry.disconnectServer() (disconnect without adding to exclusion list)
- Add i18n translations for all 6 languages (en/zh/de/ja/pt/ru)
2026-03-12 20:46:59 +08:00
tanzhenxin
097f1b3da9 feat(core): add truncation support to LS tool
Add output truncation for directory listings when entries exceed
configured line limit. This prevents overwhelming output for large
directories while still informing users of truncated content.

- Add MAX_ENTRY_COUNT constant (100) as upper bound
- Use getTruncateToolOutputLines() config for dynamic limits
- Show truncated item count with proper singular/plural handling
- Update output format with --- separators for clarity
- Add comprehensive tests for truncation behavior

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-12 19:59:59 +08:00
yiliang114
fc81fb285a Merge branch 'main' of https://github.com/QwenLM/qwen-code into fix/ide-connection-dns-lookup 2026-03-12 19:19:42 +08:00
tanzhenxin
e181cfc097
Merge pull request #2315 from xuewenjie123/fix/remove-qrcode-from-oauth-progress-v2
fix: remove QR code from OAuth authentication UI to prevent screen flickering
2026-03-12 18:53:25 +08:00
Mingholy
1d87675534
Merge pull request #2298 from QwenLM/mingholy/fix/vscode-acp-error
fix: improve ACP file operation error handling
2026-03-12 17:53:23 +08:00
tanzhenxin
603beb51e7 fix(core): convert array content to string for DeepSeek API
DeepSeek API requires message content to be a plain string, not an array
of content parts. This fix flattens text-part arrays into joined strings
and replaces non-text parts with placeholder text.

Fixes #2158, Fixes #2318

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-12 17:18:27 +08:00
xwj02155382
da7a0e8dbd fix: remove qrcode-terminal dependency and update tests
- Remove qrcode-terminal from packages/cli/package.json dependencies
- Remove @types/qrcode-terminal from root package.json devDependencies
- Update QwenOAuthProgress.test.tsx to remove QR code related tests
- Remove qrcode-terminal mock from qwenOAuth2.test.ts

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-12 13:42:59 +08:00
mingholy.lmh
2cbd092835 fix(core): handle ENOENT from ACP readTextFileWithInfo gracefully
- Add readTextFileWithInfo implementation in AcpFileSystemService
- Convert RESOURCE_NOT_FOUND errors to ENOENT for consistent handling
- Strip UTF-8 BOM from ACP responses
- Treat ENOENT errors in write-file tool as new file creation

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-11 22:37:03 +08:00
LaZzyMan
31b43511f2 fix(extension): disable symlinks on Windows during git clone
On Windows, non-administrator users do not have permission to create
symlinks by default. Using core.symlinks=true during git clone causes
checkout to fail with 'Permission denied' errors when the repository
contains symlinks.

This fix dynamically sets core.symlinks based on the current platform:
- win32: core.symlinks=false (avoids permission errors)
- other platforms: core.symlinks=true (preserves existing behavior)

Fixes #2243
2026-03-11 18:07:49 +08:00
qqqys
e65953de04
fix(core): skip openDiff in YOLO mode to prevent VS Code editor from 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>
2026-03-11 01:48:16 -07:00
Shaojin Wen
01be4f6cf8 fix(core): remove duplicate exports in packages/core/src/index.ts
The index.ts barrel file had 30+ modules exported multiple times across
scattered sections. This consolidates all exports into a single
well-organized structure with clear section headers, removing 90 lines
of redundant export statements. No functional changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 10:59:10 +08:00
yiliang114
8c4b3d4fb9 Merge branch 'main' into fix/ide-connection-dns-lookup 2026-03-10 14:56:22 +08:00
yiliang114
c3391fe0db refactor(ide): optimize connection config lookup and remove time-based lock cleanup
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-10 14:54:37 +08:00
pomelo
d80199d893
Merge pull request #2212 from xuewenjie123/fix/mcp-oauth-scope-from-protected-resource
fix(mcp): use scopes from protected resource metadata (RFC 9728)
2026-03-10 10:23:12 +08:00
yiliang114
1ee0222727 refactor: simplify mock implementations for testing environments 2026-03-10 01:15:23 +08:00
yiliang114
842e2e0eee refactor: extract connection config logic into separate module 2026-03-10 00:43:43 +08:00
yiliang114
6bf5a06bbd fix(ide): add lock file cleanup logic and tests 2026-03-09 21:50:00 +08:00
yiliang114
532c416fb7 fix(ide): use callback-based dns.lookup for better compatibility
Replace Promise-based dns.promises.lookup with callback-based dns.lookup
for better compatibility across different Node.js environments (e.g.,
VSCode, Cursor).

The callback-based approach avoids potential issues with Promise-based
DNS lookup in certain IDE embedded terminal environments.
2026-03-09 21:40:41 +08:00
yiliang114
2b4c0324b6 Merge branch 'main' into fix/ide-connection-dns-lookup 2026-03-09 21:37:22 +08:00