Commit graph

1548 commits

Author SHA1 Message Date
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
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
顾盼
2ff9305b19
Merge pull request #2320 from QwenLM/fix/deepseek-array-content
fix(core): convert array content to string for DeepSeek API
2026-03-12 17:50:03 +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
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
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
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
tanzhenxin
3b5e9f21c2
Merge branch 'main' into release/v0.12.1 2026-03-10 10:51:50 +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
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
xwj02155382
64201e8848 fix(mcp): use scopes from protected resource metadata (RFC 9728)
When discovering OAuth configuration for MCP servers, the scopes_supported
field from Protected Resource Metadata was being ignored. According to
RFC 9728, Protected Resource Metadata defines scopes specific to that
resource, which should take precedence over Authorization Server Metadata
scopes.

This fix ensures that scopes from Protected Resource Metadata are used
when available, while maintaining backward compatibility by falling back
to Authorization Server Metadata scopes.

Fixes OAuth authorization links missing scope parameter for ModelScope
MCP server.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-09 17:30:06 +08:00
LaZzyMan
15b5bc3bfc fix mcp ui 2026-03-09 15:20:30 +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
tanzhenxin
79adac930f
Merge pull request #2008 from QwenLM/feature/extension-management-tui
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: Add interactive TUI for extension management
2026-03-06 20:43:16 +08:00
DennisYu07
f3b56f5a31
Merge pull request #2139 from QwenLM/feat/hook-stop-implementation
fix(hooks):  fix result aggregator for userPromptSubmit and fix enable for integration test
2026-03-06 17:19:46 +08:00
LaZzyMan
43faa51378 Merge branch 'main' into feature/extension-management-tui 2026-03-06 17:19:40 +08:00
LaZzyMan
32d499944a Merge branch 'main' into feat/mcp-tui 2026-03-06 16:55:38 +08:00
LaZzyMan
2699b88661 Merge branch 'main' into feature/extension-management-tui 2026-03-06 16:25:08 +08:00
DennisYu07
5ef7894e86 reslove aggregator for userpromptsubmit 2026-03-05 23:59:43 -08:00
tanzhenxin
67b9e3438c Merge branch 'main' into feat/ask-user-question-tool 2026-03-06 15:48:44 +08:00
tanzhenxin
38dafeb839 Merge branch 'main' into feat/mcp-tui 2026-03-06 15:03:47 +08:00
tanzhenxin
b346622ec2 Merge branch 'main' into feat/ask-user-question-tool 2026-03-06 15:03:10 +08:00
tanzhenxin
648d48edbc Merge branch 'main' into feat/shell-pty-default-and-enhancements 2026-03-06 15:02:41 +08:00
tanzhenxin
3a549419ba Merge branch 'main' into feat/sandbox-config-improvements 2026-03-06 14:38:39 +08:00
tanzhenxin
ca3a2be2ec Merge branch 'main' into feat/shell-pty-default-and-enhancements 2026-03-06 14:36:18 +08:00
LaZzyMan
7b227a7eb5 Merge branch 'main' into feat/mcp-tui 2026-03-06 14:27:56 +08:00
tanzhenxin
fcebd14a90
Merge pull request #2092 from QwenLM/fix/disable-llm-loop-detection
fix(core): remove LLM-based loop detection and enable skipLoopDetection by default
2026-03-06 14:13:36 +08:00
tanzhenxin
bca799e818 Merge branch 'main' into feat/ask-user-question-tool 2026-03-06 14:03:42 +08:00
DennisYu07
79939e8ebe
Merge pull request #1988 from QwenLM/feat/hook-stop-implementation
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
feat(hooks): Implement hooks system infrastructure with CLI and UI management
2026-03-06 12:59:16 +08:00
顾盼
881bef1ad2
Merge pull request #2082 from zy6p/fix/2062-preserve-default-agents-context-loading
fix(cli): keep AGENTS.md enabled by default context reset
2026-03-06 11:58:03 +08:00
DennisYu07
88e5c4ac15
Merge pull request #1890 from Aayushyaash/fix/windows-crlf-parsing
fix(windows): resolve silent failures caused by CRLF line endings (#1868)
2026-03-06 11:57:53 +08:00
易良
6e59c48834
fix(core): add independent retry budget for transient stream anomalies (#2126)
* fix(core): add independent retry budget for transient stream anomalies

- Add separate retry budget for InvalidStreamError (NO_FINISH_REASON/NO_RESPONSE_TEXT)
- Fix hasFinishReason logic to prevent usage-only chunks from overwriting existing finish reason
- Update tests to use fake timers for retry delay handling
- Add test for trailing usage-only chunk handling

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

* test(core): fix async timer handling in GeminiChat tests

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

* test(core): stabilize geminiChat stream retry tests

* fix: reduce invalid stream retry attempts in gemini chat

* test(core/geminiChat): sync retry count assertions with INVALID_STREAM_RETRY_CONFIG

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

---------

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-06 11:55:57 +08:00
tanzhenxin
38e49c1d39
Merge pull request #2073 from QwenLM/fix-issue-qwen-code
fix: preserve original encoding when reading/writing non-UTF-8 files
2026-03-06 11:38:35 +08:00
tanzhenxin
92ad985343
Merge pull request #2056 from QwenLM/fix/symlink-copy-error-on-extension-install
fix: handle symlinks during extension installation
2026-03-06 11:35:36 +08:00
yiliang114
edd5678307 test(core/geminiChat): sync retry count assertions with INVALID_STREAM_RETRY_CONFIG
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-06 11:35:03 +08:00
yiliang114
57f18d1ad7 fix: reduce invalid stream retry attempts in gemini chat 2026-03-06 11:28:24 +08:00
yiliang114
93c96a0425 Merge branch 'main' into fix/transient-stream-retry-v2 2026-03-06 11:27:54 +08:00
tanzhenxin
4a65346b79
Merge pull request #1817 from yiliang114/fix/docker-ide-host-check
fix(ide): add async DNS check for host.docker.internal in container environments
2026-03-06 11:25:52 +08:00
tanzhenxin
5832571e6c
Merge pull request #2125 from QwenLM/fix/duplicate-function-call-yields
fix(core): prevent duplicate function-call yields from trailing stream chunks
2026-03-06 11:25:08 +08:00
tanzhenxin
076f4c9afa
Merge pull request #2037 from QwenLM/mingholy/refactor/settings-migration
Refactor settings migration to sequential framework with atomic file writes
2026-03-06 11:17:33 +08:00
yiliang114
64540098c7 test(core): stabilize geminiChat stream retry tests 2026-03-06 00:06:02 +08:00
yiliang114
81caadcf3a test(core): fix async timer handling in GeminiChat tests
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-06 00:06:02 +08:00
yiliang114
282a3b43a0 fix(core): add independent retry budget for transient stream anomalies
- Add separate retry budget for InvalidStreamError (NO_FINISH_REASON/NO_RESPONSE_TEXT)
- Fix hasFinishReason logic to prevent usage-only chunks from overwriting existing finish reason
- Update tests to use fake timers for retry delay handling
- Add test for trailing usage-only chunk handling

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-06 00:06:02 +08:00
yiliang114
38e1c2933f fix(core): prevent duplicate function-call yields from trailing stream chunks
After the merged finish+usage response was yielded, handleChunkMerging's
hasPendingFinish flag stayed true due to reference-shared candidates.
Trailing empty chunks would trigger another merge, yielding the same
functionCall parts again and causing duplicate tool executions in the UI.

Add a finishYielded guard in processStreamWithLogging so that once the
merged finish response is yielded, all subsequent chunks skip merging
entirely and only absorb late-arriving usage metadata.

Closes #2121
2026-03-06 00:01:13 +08:00
tanzhenxin
b48e3caa75 feat(shell): enable PTY by default and various enhancements
### Shell & Interactive Terminal Improvements
- PTY shell is now enabled by default instead of disabled
- Improved shell output rendering, process termination, and added fallback warning
- Background commands now properly capture subprocess PIDs on non-Windows

### Coding Plan Improvements
- Simplified auth message, added /model tip, improved system info display
- Reordered model list to prioritize glm-5, kimi-k2.5, MiniMax-M2.5
- Model selection is now preserved when updating if the model still exists

### Other Changes
- Added shared symlink utility; debug logs now have latest alias
- Unknown settings warnings go to debug log instead of user-facing warnings
- Fixed subagent confirmation state detection
- Removed debug UI from AgentCreationWizard

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-05 11:28:13 +08:00
zy6p
d7d2ffb304 fix: follow review for default context filename handling 2026-03-05 10:33:52 +08:00
tanzhenxin
396248e296 fix(core): remove LLM-based loop detection and enable skipLoopDetection by default
The LLM-based loop detection was causing issues where the process would
stop unexpectedly. This change removes the LLM-based loop detection
feature entirely and sets skipLoopDetection to true by default to
prevent false positives from interrupting user sessions.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-04 23:21:04 +08:00