chore(release): v0.19.0 [skip ci]

* chore(release): v0.19.0

* docs(changelog): sync for v0.19.0

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
qwen-code-ci-bot 2026-06-23 11:38:15 +08:00 committed by GitHub
parent c1eef15d4b
commit 57156522bd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 114 additions and 35 deletions

View file

@ -12,6 +12,84 @@ are listed; nightly and preview pre-releases are intentionally omitted.
> [GitHub Releases](https://github.com/QwenLM/qwen-code/releases). Do not edit it
> by hand — run `npm run changelog` to regenerate.
## [0.19.0](https://github.com/QwenLM/qwen-code/releases/tag/v0.19.0) - 2026-06-23
### Added
- lint: enforce kebab-case filenames with ESLint ([#4797](https://github.com/QwenLM/qwen-code/pull/4797))
- extensions: support archive install sources ([#4909](https://github.com/QwenLM/qwen-code/pull/4909))
- voice: voice dictation with native capture, streaming, and biasing ([#5502](https://github.com/QwenLM/qwen-code/pull/5502))
- revivable background sub-agents and subagent transcript TTL ([#5556](https://github.com/QwenLM/qwen-code/pull/5556))
- core: add Artifact tool to publish interactive HTML pages ([#5557](https://github.com/QwenLM/qwen-code/pull/5557))
- cli: add optional [HH:MM:SS] timestamp before each assistant turn ([#5001](https://github.com/QwenLM/qwen-code/pull/5001))
- tui: remove tool group borders and collapse completed tool results ([#5003](https://github.com/QwenLM/qwen-code/pull/5003))
- workflows: finish Dynamic Workflows port — resume, saved workflows, keyword trigger, notifications (#4721) ([#5600](https://github.com/QwenLM/qwen-code/pull/5600))
- web-shell: support daemon session branching ([#5613](https://github.com/QwenLM/qwen-code/pull/5613))
- cli: browse MCP server resources in the /mcp dialog ([#5635](https://github.com/QwenLM/qwen-code/pull/5635))
- core: default-on preserve_thinking for DashScope provider ([#5637](https://github.com/QwenLM/qwen-code/pull/5637))
- tui: add thinking block viewer with Alt+T expand/collapse ([#5627](https://github.com/QwenLM/qwen-code/pull/5627))
- desktop: show file preview in a resizable side panel instead of fullscreen ([#5730](https://github.com/QwenLM/qwen-code/pull/5730))
- core: respect configurable agent ignore files ([#4653](https://github.com/QwenLM/qwen-code/pull/4653))
- core: add fastOnly/voiceOnly flags to hide models from main model list ([#5632](https://github.com/QwenLM/qwen-code/pull/5632))
### Changed
- cli: Rename serve files to kebab-case ([#5592](https://github.com/QwenLM/qwen-code/pull/5592))
- core: replace OpenRouter/Requesty provider classes with customHeaders in preset ([#5539](https://github.com/QwenLM/qwen-code/pull/5539))
- cli: Finish serve kebab-case filenames ([#5604](https://github.com/QwenLM/qwen-code/pull/5604))
- core: extract Protocol enum and decouple model identity from auth type ([#5089](https://github.com/QwenLM/qwen-code/pull/5089))
### Fixed
- cli: render full resume preview history ([#5565](https://github.com/QwenLM/qwen-code/pull/5565))
- cli: fill content area background on wrapped input lines ([#5568](https://github.com/QwenLM/qwen-code/pull/5568))
- cli: fail non-interactive runs on loop detection ([#5564](https://github.com/QwenLM/qwen-code/pull/5564))
- core: respect zero OpenAI log file limit ([#5569](https://github.com/QwenLM/qwen-code/pull/5569))
- core: keep bare fast model on current auth ([#5553](https://github.com/QwenLM/qwen-code/pull/5553))
- cli: prefer command name over alias in slash completion ranking ([#5577](https://github.com/QwenLM/qwen-code/pull/5577))
- core: require confirmation when user manually enters plan mode ([#5595](https://github.com/QwenLM/qwen-code/pull/5595))
- core: always-on guard for consecutive identical tool calls (#5019) ([#5573](https://github.com/QwenLM/qwen-code/pull/5573))
- ci: harden tmux triage reporting ([#5548](https://github.com/QwenLM/qwen-code/pull/5548))
- voice: surface native recorder fallback so missing prebuilds aren't silent ([#5605](https://github.com/QwenLM/qwen-code/pull/5605))
- core: prevent GLM on DashScope from dropping web_fetch content ([#5599](https://github.com/QwenLM/qwen-code/pull/5599))
- core: backend-aware artifact publish confirmation + cancel handling ([#5615](https://github.com/QwenLM/qwen-code/pull/5615))
- cli: Fail dangling replayed tool calls ([#5624](https://github.com/QwenLM/qwen-code/pull/5624))
- voice: bundle native audio addon into standalone archives ([#5628](https://github.com/QwenLM/qwen-code/pull/5628))
- cli: harden ACP session list pagination params ([#5618](https://github.com/QwenLM/qwen-code/pull/5618))
- cli: parse serve rate limit env strictly ([#5612](https://github.com/QwenLM/qwen-code/pull/5612))
- core: parse API timeout env strictly ([#5602](https://github.com/QwenLM/qwen-code/pull/5602))
- serve: validate readText line limits ([#5639](https://github.com/QwenLM/qwen-code/pull/5639))
- core: escape backslashes and quotes in emacs ediff paths ([#5630](https://github.com/QwenLM/qwen-code/pull/5630))
- cli: detect USE_OPENAI auth when the model is set via QWEN_MODEL ([#5647](https://github.com/QwenLM/qwen-code/pull/5647))
- webui: stop auto-recreating session on user-initiated delete ([#5633](https://github.com/QwenLM/qwen-code/pull/5633))
- cli: keep settings v5 migration idempotent ([#5676](https://github.com/QwenLM/qwen-code/pull/5676))
- test: restore openai model selection in ACP set_config_option test ([#5721](https://github.com/QwenLM/qwen-code/pull/5721))
- test: isolate ACP integration agents via QWEN_HOME to end parallel-settings race ([#5724](https://github.com/QwenLM/qwen-code/pull/5724))
- test: make ACP set_config_option test use a deterministic openai provider model ([#5728](https://github.com/QwenLM/qwen-code/pull/5728))
- core: keep active runtime model in default getAllConfiguredModels listing ([#5729](https://github.com/QwenLM/qwen-code/pull/5729))
- core: remove redundant reportSuggestionUsage causing double-counted stats ([#5684](https://github.com/QwenLM/qwen-code/pull/5684))
- core: validate ask_user_question answer indexes ([#5622](https://github.com/QwenLM/qwen-code/pull/5622))
- daemon: Refresh workspace provider defaults ([#5638](https://github.com/QwenLM/qwen-code/pull/5638))
### Documentation
- mcp: correct mcp add scope default ([#5593](https://github.com/QwenLM/qwen-code/pull/5593))
### Other
- ci(release): Auto-publish VSCode companion after stable releases ([#5572](https://github.com/QwenLM/qwen-code/pull/5572))
- [codex] Fix legacy filename allowlist for kebab-case lint ([#5578](https://github.com/QwenLM/qwen-code/pull/5578))
- test(integration): add fake OpenAI server for no-AK daemon tests ([#5560](https://github.com/QwenLM/qwen-code/pull/5560))
- Fix native voice recorder retry after stop errors ([#5609](https://github.com/QwenLM/qwen-code/pull/5609))
- [codex] ci(triage): acknowledge slash triage requests ([#5594](https://github.com/QwenLM/qwen-code/pull/5594))
- [codex] Support artifact auto-open setting ([#5617](https://github.com/QwenLM/qwen-code/pull/5617))
- test(integration): run no-AK smoke tests on PRs ([#5607](https://github.com/QwenLM/qwen-code/pull/5607))
- ci: route in-repo PRs' Linux test to self-hosted runner ([#5620](https://github.com/QwenLM/qwen-code/pull/5620))
- ci(release): queue release failures for autofix ([#5551](https://github.com/QwenLM/qwen-code/pull/5551))
- ci(audio-capture): cross-compile darwin-x64 prebuild on arm64, drop macos-13 runner ([#5643](https://github.com/QwenLM/qwen-code/pull/5643))
- ci: harden self-hosted runner routing (follow-up to #5620 review) ([#5644](https://github.com/QwenLM/qwen-code/pull/5644))
- test(integration): skip qwen serve streaming suite under container sandbox ([#5655](https://github.com/QwenLM/qwen-code/pull/5655))
## [0.18.5](https://github.com/QwenLM/qwen-code/releases/tag/v0.18.5) - 2026-06-21
### Added

35
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "@qwen-code/qwen-code",
"version": "0.18.5",
"version": "0.19.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@qwen-code/qwen-code",
"version": "0.18.5",
"version": "0.19.0",
"hasInstallScript": true,
"workspaces": [
"packages/*",
@ -17885,6 +17885,7 @@
"os": [
"darwin"
],
"peer": true,
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
@ -23117,7 +23118,7 @@
},
"packages/acp-bridge": {
"name": "@qwen-code/acp-bridge",
"version": "0.18.5",
"version": "0.19.0",
"dependencies": {
"@agentclientprotocol/sdk": "^0.14.1",
"@qwen-code/qwen-code-core": "file:../core"
@ -23132,7 +23133,7 @@
},
"packages/audio-capture": {
"name": "@qwen-code/audio-capture",
"version": "0.18.3",
"version": "0.19.0",
"hasInstallScript": true,
"dependencies": {
"node-gyp-build": "^4.8.4"
@ -23149,7 +23150,7 @@
},
"packages/channels/base": {
"name": "@qwen-code/channel-base",
"version": "0.18.5",
"version": "0.19.0",
"dependencies": {
"@agentclientprotocol/sdk": "^0.14.1"
},
@ -23159,7 +23160,7 @@
},
"packages/channels/dingtalk": {
"name": "@qwen-code/channel-dingtalk",
"version": "0.18.5",
"version": "0.19.0",
"dependencies": {
"@qwen-code/channel-base": "file:../base",
"dingtalk-stream-sdk-nodejs": "^2.0.4"
@ -23170,7 +23171,7 @@
},
"packages/channels/feishu": {
"name": "@qwen-code/channel-feishu",
"version": "0.18.5",
"version": "0.19.0",
"dependencies": {
"@larksuiteoapi/node-sdk": "^1.45.0",
"@qwen-code/channel-base": "file:../base"
@ -23181,7 +23182,7 @@
},
"packages/channels/plugin-example": {
"name": "@qwen-code/channel-plugin-example",
"version": "0.18.5",
"version": "0.19.0",
"dependencies": {
"@qwen-code/channel-base": "file:../base",
"ws": "^8.18.0"
@ -23195,7 +23196,7 @@
},
"packages/channels/qqbot": {
"name": "@qwen-code/channel-qqbot",
"version": "0.18.5",
"version": "0.19.0",
"dependencies": {
"@qwen-code/channel-base": "file:../base",
"@tencent-connect/qqbot-connector": "^1.1.0",
@ -23207,7 +23208,7 @@
},
"packages/channels/telegram": {
"name": "@qwen-code/channel-telegram",
"version": "0.18.5",
"version": "0.19.0",
"dependencies": {
"@qwen-code/channel-base": "file:../base",
"grammy": "^1.41.1",
@ -23220,7 +23221,7 @@
},
"packages/channels/weixin": {
"name": "@qwen-code/channel-weixin",
"version": "0.18.5",
"version": "0.19.0",
"dependencies": {
"@qwen-code/channel-base": "file:../base"
},
@ -23230,7 +23231,7 @@
},
"packages/cli": {
"name": "@qwen-code/qwen-code",
"version": "0.18.5",
"version": "0.19.0",
"dependencies": {
"@agentclientprotocol/sdk": "^0.14.1",
"@google/genai": "2.6.0",
@ -23465,7 +23466,7 @@
},
"packages/core": {
"name": "@qwen-code/qwen-code-core",
"version": "0.18.5",
"version": "0.19.0",
"hasInstallScript": true,
"dependencies": {
"@anthropic-ai/sdk": "^0.36.1",
@ -26078,7 +26079,7 @@
},
"packages/vscode-ide-companion": {
"name": "qwen-code-vscode-ide-companion",
"version": "0.18.5",
"version": "0.19.0",
"license": "LICENSE",
"dependencies": {
"@agentclientprotocol/sdk": "^0.14.1",
@ -26146,7 +26147,7 @@
},
"packages/web-shell": {
"name": "@qwen-code/web-shell",
"version": "0.18.5",
"version": "0.19.0",
"dependencies": {
"@codemirror/autocomplete": "^6.18.0",
"@codemirror/commands": "^6.7.0",
@ -26685,7 +26686,7 @@
},
"packages/web-templates": {
"name": "@qwen-code/web-templates",
"version": "0.18.5",
"version": "0.19.0",
"devDependencies": {
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
@ -27192,7 +27193,7 @@
},
"packages/webui": {
"name": "@qwen-code/webui",
"version": "0.18.5",
"version": "0.19.0",
"license": "MIT",
"dependencies": {
"@qwen-code/sdk": "~0.1.8",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/qwen-code",
"version": "0.18.5",
"version": "0.19.0",
"engines": {
"node": ">=22.0.0"
},
@ -21,7 +21,7 @@
"url": "git+https://github.com/QwenLM/qwen-code.git"
},
"config": {
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.18.5"
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.19.0"
},
"scripts": {
"start": "node scripts/start.js",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/acp-bridge",
"version": "0.18.5",
"version": "0.19.0",
"description": "Shared ACP bridge core (createHttpAcpBridge factory, BridgeClient, defaultSpawnChannelFactory, BridgeFileSystem injection seam) + primitives (EventBus, AcpChannel, in-memory channel, PermissionMediator interface) used by qwen serve, channels, IDE, TUI, and remote-control adapters.",
"repository": {
"type": "git",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/audio-capture",
"version": "0.18.3",
"version": "0.19.0",
"description": "Native microphone capture backend for Qwen Code voice input",
"type": "module",
"main": "dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/channel-base",
"version": "0.18.5",
"version": "0.19.0",
"description": "Base channel infrastructure for Qwen Code",
"type": "module",
"main": "dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/channel-dingtalk",
"version": "0.18.5",
"version": "0.19.0",
"description": "DingTalk channel adapter for Qwen Code",
"type": "module",
"main": "dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/channel-feishu",
"version": "0.18.5",
"version": "0.19.0",
"description": "Feishu (Lark) channel adapter for Qwen Code",
"type": "module",
"main": "dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/channel-plugin-example",
"version": "0.18.5",
"version": "0.19.0",
"private": true,
"type": "module",
"main": "dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/channel-qqbot",
"version": "0.18.5",
"version": "0.19.0",
"description": "QQ Bot (QQ机器人) channel adapter for Qwen Code",
"type": "module",
"main": "dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/channel-telegram",
"version": "0.18.5",
"version": "0.19.0",
"description": "Telegram channel adapter for Qwen Code",
"type": "module",
"main": "dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/channel-weixin",
"version": "0.18.5",
"version": "0.19.0",
"description": "WeChat (Weixin) channel adapter for Qwen Code",
"type": "module",
"main": "dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/qwen-code",
"version": "0.18.5",
"version": "0.19.0",
"description": "Qwen Code",
"repository": {
"type": "git",
@ -37,7 +37,7 @@
"dist"
],
"config": {
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.18.5"
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.19.0"
},
"dependencies": {
"@agentclientprotocol/sdk": "^0.14.1",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/qwen-code-core",
"version": "0.18.5",
"version": "0.19.0",
"description": "Qwen Code Core",
"repository": {
"type": "git",

View file

@ -2,7 +2,7 @@
"name": "qwen-code-vscode-ide-companion",
"displayName": "Qwen Code Companion",
"description": "Enable Qwen Code with direct access to your VS Code workspace.",
"version": "0.18.5",
"version": "0.19.0",
"publisher": "qwenlm",
"icon": "assets/icon.png",
"repository": {

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/web-shell",
"version": "0.18.5",
"version": "0.19.0",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/web-templates",
"version": "0.18.5",
"version": "0.19.0",
"description": "Web templates bundled as embeddable JS/CSS strings",
"repository": {
"type": "git",

View file

@ -1,6 +1,6 @@
{
"name": "@qwen-code/webui",
"version": "0.18.5",
"version": "0.19.0",
"description": "Shared UI components for Qwen Code packages",
"type": "module",
"main": "./dist/index.cjs",