Commit graph

3723 commits

Author SHA1 Message Date
pomelo
da3dd56fd8
Merge pull request #1691 from QwenLM/fix/subagent-tool-restriction
fix(core): enforce tool restrictions in subagents
2026-02-04 14:30:46 +08:00
tanzhenxin
4c41dd9dd3
Merge pull request #1607 from QwenLM/fix/shift-tab-windows-powershell
fix: enable Shift+Tab shortcut in Windows PowerShell
2026-02-04 14:30:33 +08:00
pomelo
a8b1a5dc10
Merge pull request #1688 from QwenLM/fix/preserve-trailing-whitespace-1618
fix(core): Preserve trailing whitespace in newString during edits
2026-02-04 14:30:21 +08:00
pomelo
b147d064c8
Merge pull request #1680 from QwenLM/fix/preserve-utf8-bom-encoding
feat: Preserve UTF-8 BOM when editing files
2026-02-04 14:29:57 +08:00
tanzhenxin
e4fba169a1 fix(core): Prevent double BOM when writing files with BOM option
- Strip BOM character (\uFEFF) from content before prepending BOM bytes
- Use FileEncoding.UTF8 constant instead of string literal
- Ensure file descriptor is closed in finally block
- Add test for double BOM prevention

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-04 14:11:58 +08:00
tanzhenxin
4235681a72
Merge pull request #1701 from liqiongyu/fix/1698-heredoc-command-substitution
fix(core): handle heredoc in command substitution guard
2026-02-04 12:51:34 +08:00
liqoingyu
6a8d5ce836 fix(core): detect heredoc line continuation substitution 2026-02-04 09:50:11 +08:00
pomelo
2ed4ae773e
Merge pull request #1681 from QwenLM/dev/improve-build-and-dev-experience
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
build: Improve build efficiency and add dev mode
2026-02-04 09:33:46 +08:00
pomelo
e92ad3e367
Merge pull request #1665 from QwenLM/fix/vscode-companion-preview-version-input
fix(ci): honor manual preview version input
2026-02-04 09:29:54 +08:00
liqoingyu
bfaada45a2 fix(core): ignore comments in substitution guard 2026-02-04 09:28:59 +08:00
tanzhenxin
7fb45c56d2
Merge pull request #1667 from QwenLM/fix/issue-1666-yaml-formatter-extension-skills
Some checks are pending
Qwen Code CI / Test-3 (push) Blocked by required conditions
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 / Post Coverage Comment (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 / 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
fix: normalize skill file content in extensions to handle BOM and CRLF
2026-02-03 20:44:51 +08:00
tanzhenxin
fdcda77892
Merge pull request #1690 from QwenLM/feature/skill-manager-symlink-support
feat(core): add symlink support for skill manager
2026-02-03 20:41:59 +08:00
liqoingyu
7c3515b703 fix(core): handle heredoc in command substitution guard 2026-02-03 20:34:05 +08:00
Mingholy
b0aa05f578
Merge pull request #1686 from afarber/1394-web-fetch-in-plan-mode
fix(core): auto-enable WebFetch and WebSearch tools in Plan mode
2026-02-03 20:30:32 +08:00
Mingholy
1d203aaefe
Merge pull request #1531 from liqiongyu/fix/1511-mcp-resource-at-ref
fix(cli): expand MCP @server: resource references
2026-02-03 20:29:23 +08:00
tanzhenxin
10ae15c00b
Merge pull request #1535 from liqiongyu/test/authdialog-esc-stabilize
test(cli): stabilize AuthDialog ESC assertion
2026-02-03 20:26:36 +08:00
liqoingyu
7e5d1470c8 fix(cli,core): pass abort signal to MCP resource reads 2026-02-03 17:32:24 +08:00
liqoingyu
5087426af7 test(cli): cover MCP resource edge cases 2026-02-03 17:23:59 +08:00
liqoingyu
5b2dc78897 fix(cli,core): harden MCP resource references 2026-02-03 17:23:58 +08:00
liqoingyu
c8a148b92e fix(cli): expand MCP @server: resource references 2026-02-03 17:22:47 +08:00
tanzhenxin
a38a5ba87d
Merge pull request #1285 from tt-a1i/fix/mcp-subprocess-cleanup
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
fix(core): properly cleanup MCP server subprocesses on exit
2026-02-03 16:02:53 +08:00
tanzhenxin
44b7dad966 fix(ci): add --skip-duplicate flag to vsce publish
Prevents workflow failure when some platform VSIXes are already
published (e.g., darwin-arm64, darwin-x64) during retry runs.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-03 15:10:38 +08:00
DennisYu07
640196e779 merge shutdown 2026-02-02 19:47:24 -08:00
tanzhenxin
9c97468682
Merge pull request #1676 from QwenLM/fix/vscode-ide-compaion-input
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
fix(vscode-ide-companion): fix race conditions and improve @ file completion search
2026-02-03 10:34:15 +08:00
LaZzyMan
4a578a61f2 fix test 2026-02-02 20:16:59 +08:00
LaZzyMan
7a154b8a62 fix revert changes 2026-02-02 20:08:12 +08:00
LaZzyMan
86ba86e297 Merge branch 'main' into fix/shift-tab-windows-powershell 2026-02-02 19:51:32 +08:00
LaZzyMan
3296785b23 feat use tab on windows instead of shift+tab 2026-02-02 19:48:07 +08:00
LaZzyMan
7935482c3a Revert "fix: enable Shift+Tab shortcut in Windows PowerShell"
This reverts commit 9bee51dc17.
2026-02-02 17:24:01 +08:00
LaZzyMan
f43bd7f8ab Revert "fix undefined error"
This reverts commit 4534f5ec1d.
2026-02-02 17:23:59 +08:00
tanzhenxin
11c198f800 fix(core): enforce tool restrictions in subagents (fixes #1121)
Add filtering to block unauthorized tool calls in subagents. When a model
attempts to call a tool not in the allowed tools list, the call is now
blocked and an error is returned instead of executing.

- Pass toolsList to scheduleToolCalls for filtering
- Emit TOOL_CALL and TOOL_RESULT events for blocked calls (for visibility)
- Extract recordToolCallStats helper to reduce duplication
- Add comprehensive test coverage for tool restriction enforcement

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-02 16:31:00 +08:00
宇溯
813e2d2b12 FIXME: list extensions after the config initialize 2026-02-01 23:56:21 -08:00
宇溯
3719104d85 Revert "resolve comment"
This reverts commit 61421e65872acebe20d88c2d40c9fea40fa3fefa.
2026-02-01 23:51:04 -08:00
宇溯
91ec945e81 resolve comment 2026-02-01 23:51:04 -08:00
宇溯
635f0fad89 Revert "reslove comment"
This reverts commit d7b003076e8a5f6b387b7313ecab0cd7ebea0997.
2026-02-01 23:51:04 -08:00
宇溯
781bd7880b rebase and resolve conflict 2026-02-01 23:49:56 -08:00
DragonnZhang
f022252264 feat(core): add symlink support for skill manager
Add support for loading skills from symlinked directories in the skill manager. This allows users to organize and share skills more flexibly by using symbolic links.

Changes:
- Modified skill discovery logic to detect and follow symlinks
- Added validation to ensure symlink targets point to valid directories
- Skip broken or invalid symlinks with appropriate warnings
- Added comprehensive test coverage for symlink scenarios
2026-02-02 14:30:12 +08:00
tanzhenxin
88af3a4723 fix(core): Preserve trailing whitespace in newString during edits
Remove unconditional trimming of trailing whitespace from newString in
normalizeEditStrings(). This fixes cases where intentional trailing
whitespace (e.g., in multi-line strings, heredocs) was being stripped.

The oldString fuzzy matching still works correctly, and newString is
now preserved exactly as the LLM intended.

Fixes #1618

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-02 11:39:42 +08:00
Alexander Farber
bfdc361b62
Auto-enable WebFetch and WebSearch tools in Plan mode 2026-02-01 23:19:54 +01:00
tanzhenxin
96e49497b8 fix(core): Fix ripgrep vendor path resolution for source files
When vitest loads @qwen-code/qwen-code-core from source files (via alias),
ripgrepUtils.ts failed to find the bundled ripgrep binary because it only
handled bundle and transpiled code paths.

Added detection for source file loading (.ts files in src/utils/) to correctly
resolve the vendor path (2 levels up instead of 3).

Also refactored the path resolution logic to be more concise using levelsUp
calculation.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-01 14:17:08 +08:00
tanzhenxin
9304bc4b4d fix(build): Fix workspace build order to respect dependencies
VSCode IDE Companion depends on @qwen-code/webui, but npm workspaces
build packages in alphabetical order, causing webui to be built after
its dependent.

Fixed by explicitly defining the build order:
1. test-utils
2. core
3. cli
4. webui
5. sdk
6. vscode-ide-companion

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-01 12:11:12 +08:00
tanzhenxin
b1fa12f323 refactor(core): Unify package exports and improve dev experience
- Update license header to include Qwen copyright
- Add error handler for spawn in dev.js
- Refactor core/src/index.ts to export all public APIs
- Simplify core/index.ts to be a clean re-export
- Fix vitest alias to point to package entry

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-01 11:59:05 +08:00
tanzhenxin
2d525d9fd0 fix: Address review comments for BOM encoding support
- Edit tool now respects defaultFileEncoding for new files
- Edit tool preserves BOM character for existing files without re-adding
- AcpFileSystemService detects BOM through ACP client with fallback
- Use line: null, limit: 1 for efficient BOM detection
- Add unit tests for AcpFileSystemService.detectFileBOM
- Add unit tests for EditTool BOM handling

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-01 11:23:02 +08:00
tanzhenxin
831d74dbfe feat: Preserve UTF-8 BOM when editing files (Fix #1672)
- Add FileEncoding constants (UTF8, UTF8_BOM)
- Add detectFileBOM() to detect existing file encoding
- Modify writeTextFile() to support BOM option
- Add defaultFileEncoding configuration option
- Preserve BOM when editing existing files
- Use configured encoding for new files
- Add comprehensive tests (unit, integration, e2e)
- Update documentation

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-01 10:32:20 +08:00
yiliang114
aa02bcc4e1 fix(vscode-ide-companion): fix race conditions and improve @ file completion search
- Add requestId mechanism to prevent stale async responses from overwriting newer results
- Implement case-insensitive file search with buildCaseInsensitiveGlob method
- Filter gitignored files using FileDiscoveryService integration
- Allow completion list refresh during search by removing query check condition
- Add --experimental-skills CLI argument for qwen connection
- Add unit tests for FileMessageHandler

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-31 23:45:12 +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
LaZzyMan
47666f79c1 fix: normalize skill file content in extensions to handle BOM and CRLF
- Add normalizeSkillFileContent function to skill-load.ts
- Update regex to allow frontmatter ending without trailing newline
- Add comprehensive tests for CRLF, BOM, and edge cases

Fixes #1666
2026-01-30 11:41:47 +08:00
yiliang114
2779faf010 chore(ci): add webui dependency build step in release workflow
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-30 11:32:51 +08:00
tanzhenxin
f964c2a26b fix(ci): honor manual preview version input
When create_preview_release is enabled, allow the workflow_dispatch version input
to control the preview version (and avoid appending a timestamp if a preview id
is already provided) to match user intent.
2026-01-30 11:05:35 +08:00
tanzhenxin
bd900d3668
Merge pull request #1663 from QwenLM/hotfix/v0.8.2
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(core): avoid passing undici agent to Anthropic SDK
2026-01-30 11:05:14 +08:00