Commit graph

2902 commits

Author SHA1 Message Date
tanzhenxin
c7b681ef5d feat(paste): add large paste placeholder and fix enter-submit on macOS
- Add large paste placeholder feature: when pasting text > 1000 chars,
  show a placeholder like '[Pasted Content 1500 chars]' instead of the
  full content. The full text is stored and expanded on submit.

- Fix enter-submit on macOS: only apply recentPasteTime protection when
  pasteWorkaround is enabled (Windows or Node < 20). On macOS/Linux with
  modern Node, bracketed paste markers work reliably so the protection is
  unnecessary and caused the first Enter after paste to be ignored.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-04 15:20:45 +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
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
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
DennisYu07
640196e779 merge shutdown 2026-02-02 19:47:24 -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
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
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
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
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
mingholy.lmh
202c29c586 fix: fetchOptions for Anthropic SDK 2026-01-30 10:52:49 +08:00
tanzhenxin
48ca2d043e fix(core): avoid passing undici agent to Anthropic SDK
Anthropic's Node client uses node-fetch, which expects a Node http(s).Agent.
Stop providing undici's Dispatcher as httpAgent; only set httpAgent when a proxy
is configured (via https-proxy-agent), otherwise let the SDK use its default.
2026-01-30 10:06:23 +08:00
tanzhenxin
0eb94a2957
Merge pull request #1539 from xuewenjie123/feature/add-context-window-size-config
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
Add contextWindowSize Configuration Support
2026-01-29 21:28:28 +08:00
tanzhenxin
a41e946dcc test: fix Footer and tokenLimits test failures
- Footer.test.tsx: provide contextWindowSize in mock config to match
  Footer component's new requirement for displaying context usage
- tokenLimits.test.ts: consolidate Kimi K2 tests and update expectations
  to 256K for all variants to match the implementation
2026-01-29 21:13:12 +08:00
tanzhenxin
2aab8b4c14 Merge branch 'main' into chore/bump-version-0.9.0 2026-01-29 21:05:26 +08:00
tanzhenxin
d67206819a fix(contextWindowSize): fix context window size update on model switch and ACP agent config priority
- Fix contextWindowSize not updating when switching models via setModel()
- Fix ACP agent to respect provider-configured contextWindowSize before auto-detection
- Simplify getTruncateToolOutputThreshold to use static threshold
- Add support for GLM-4.7, Kimi-2.5, and MiniMax-M2.1 models
- Update context usage display to require explicit contextWindowSize

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-29 20:51:03 +08:00
yiliang114
b22350accf feat: improve model selector UI and error handling
- Redesign ModelSelector positioning to use fixed positioning with max-width
  for better responsive layout
- Add model caching in WebViewProvider to resend available models when
  webview becomes ready
- Add native VSCode notifications for model switching success/failure
- Display error messages to users in the chat when errors occur
- Simplify InputForm by removing redundant model selector wrapper styles

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-29 20:21:28 +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
tanzhenxin
1c5b74ebd9 Merge branch 'main' into pr-1539 2026-01-29 19:18:23 +08:00
yiliang114
e577966f75 Merge branch 'main' of https://github.com/QwenLM/qwen-code into feat/unified-ui-for-vscode-extension 2026-01-29 18:51:14 +08:00
tanzhenxin
201356a6c8 chore: bump version to 0.9.0
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-29 18:03:52 +08:00
tanzhenxin
7920ef3e28 fix(core): emit empty tool results for OpenAI/Anthropic
Ensure converters always produce a tool_result/tool message even when the function response output is empty, matching provider requirements.
2026-01-29 17:11:31 +08:00
yiliang114
bc5065b139 feat(webui): add SaveMemory tool call component support 2026-01-29 17:05:04 +08:00
mingholy.lmh
5475ab6bbd fix: inconsistency of react/react-dom version in package.json and lockfile 2026-01-29 16:44:50 +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
tanzhenxin
a896fc4a70
Merge pull request #1401 from QwenLM/feat/support-lsp
Add experimental LSP support for code intelligence
2026-01-29 15:03:23 +08:00
yiliang114
9f3cfb361a chore(lsp): revert old code 2026-01-29 14:22:54 +08:00
tanzhenxin
97d93e9ea6
Merge pull request #1579 from QwenLM/feat/non-interaction-output
feat: clarify output formats for non-interactive mode
2026-01-29 14:21:21 +08:00
tanzhenxin
0ab9427097
Merge pull request #1630 from QwenLM/mingholy/feat/zed-extension
Add Zed extension for Qwen Code agent server
2026-01-29 14:19:34 +08:00
tanzhenxin
5f66c20c4e
Merge pull request #1564 from QwenLM/feat/multimodal-input-support
feat: add multi-modal input support (image, PDF, audio) across all content generators
2026-01-29 14:17:19 +08:00
tanzhenxin
e73a418dad
Merge pull request #1582 from QwenLM/feat/vscode-ide-companion-set-model
Support model selection through ACP in vscode ide companion
2026-01-29 14:16:14 +08:00
tanzhenxin
532d97670b feat: add extra_body support for OpenAI-compatible providers
Add extra_body configuration option to model.generationConfig for passing
custom parameters to OpenAI-compatible API request bodies.

- Add extra_body to ContentGeneratorConfig type
- Add extra_body to MODEL_GENERATION_CONFIG_FIELDS and ModelGenerationConfig
- Implement extra_body merging in DefaultOpenAICompatibleProvider
- Implement extra_body merging in DashScopeOpenAICompatibleProvider
- Update documentation with examples and provider compatibility notes
- Note: This feature is only for OpenAI-compatible providers (openai, qwen-oauth)

Resolves #1647
Resolves #1644

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-29 12:33:54 +08:00
tanzhenxin
93a6de32e6 feat(core): emit video_url content parts for video media
Convert Gemini video parts into OpenAI-compatible `video_url` entries and keep `file` for PDFs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-29 12:05:27 +08:00
tanzhenxin
68760287bd Merge branch 'main' into feat/multimodal-input-support 2026-01-29 11:44:27 +08:00