diff --git a/CHANGELOG.md b/CHANGELOG.md index 3980b0f51e..8c0fdf4605 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,51 @@ 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.6](https://github.com/QwenLM/qwen-code/releases/tag/v0.19.6) - 2026-07-03 + +### Added + +- core: add dataviz bundled skill ([#6198](https://github.com/QwenLM/qwen-code/pull/6198)) +- core: allow sub-agents to spawn nested sub-agents up to a configurable depth ([#6189](https://github.com/QwenLM/qwen-code/pull/6189)) +- web-shell: add daemon UI support for vision model selection ([#6209](https://github.com/QwenLM/qwen-code/pull/6209)) +- cua-driver: sync vendored cua-driver 0.6.8 → 0.7.0 ([#6212](https://github.com/QwenLM/qwen-code/pull/6212)) +- scheduler: make recurring cron/loop job expiration configurable ([#6173](https://github.com/QwenLM/qwen-code/pull/6173)) +- mobile-mcp: vendor mobile-mcp with opt-in 0-1000 relative coordinates ([#6235](https://github.com/QwenLM/qwen-code/pull/6235)) +- web-shell: show the qwen-code version in the sidebar footer ([#6222](https://github.com/QwenLM/qwen-code/pull/6222)) +- daemon: add session artifact APIs ([#5895](https://github.com/QwenLM/qwen-code/pull/5895)) +- web-shell: display nested sub-agents as a tree in the tasks panel ([#6239](https://github.com/QwenLM/qwen-code/pull/6239)) +- web-shell: improve slash command discovery (taller menu, group counts, fuzzy search) ([#6267](https://github.com/QwenLM/qwen-code/pull/6267)) +- daemon: expose visionModelId in workspace provider status and web-shell model dialog ([#6262](https://github.com/QwenLM/qwen-code/pull/6262)) + +### Fixed + +- web-shell: cut mobile session-switch jank (memoized timeline signature, replay-first dispatch) ([#6183](https://github.com/QwenLM/qwen-code/pull/6183)) +- resolve macOS seatbelt profile path from bundle dir, not chunks/ ([#6172](https://github.com/QwenLM/qwen-code/pull/6172)) +- cli: add bootstrap fast paths ([#6188](https://github.com/QwenLM/qwen-code/pull/6188)) +- core: Reduce multimodal history payload size ([#6045](https://github.com/QwenLM/qwen-code/pull/6045)) +- core: prevent subagent crash when ${hook_context} placeholder has no hook configured ([#6180](https://github.com/QwenLM/qwen-code/pull/6180)) +- web-shell: keep the user-selectable wrapper out of flex layout ([#6229](https://github.com/QwenLM/qwen-code/pull/6229)) +- core: raise stream idle timeout default and hint the env knob ([#6107](https://github.com/QwenLM/qwen-code/pull/6107)) +- serve: respect disabled skill settings ([#6223](https://github.com/QwenLM/qwen-code/pull/6223)) +- align vscode-ide-companion curly rule with root config ([#6221](https://github.com/QwenLM/qwen-code/pull/6221)) +- qqbot: security hardening — gateway validation, atomic state, sanitized logging ([#6200](https://github.com/QwenLM/qwen-code/pull/6200)) +- cua-driver: bump BAKED_VERSION to 0.7.0 ([#6241](https://github.com/QwenLM/qwen-code/pull/6241)) +- web-shell: improve session restore and loading feedback ([#6220](https://github.com/QwenLM/qwen-code/pull/6220)) +- avoid vsce secret scanner false positive on regex patterns ([#6247](https://github.com/QwenLM/qwen-code/pull/6247)) +- web-shell: encode vision model picker selection & polish dispatch ([#6236](https://github.com/QwenLM/qwen-code/pull/6236)) +- serve: Optimize daemon NDJSON stream handling ([#6263](https://github.com/QwenLM/qwen-code/pull/6263)) +- qqbot: markdown-first send, replyMsgId TTL, and dead code removal ([#6201](https://github.com/QwenLM/qwen-code/pull/6201)) + +### Documentation + +- correct stale CLI flags/keybinding and document model.reasoningEffort ([#6219](https://github.com/QwenLM/qwen-code/pull/6219)) + +### Other + +- [codex] Revert GLM tagged thinking parsing for DashScope ([#6248](https://github.com/QwenLM/qwen-code/pull/6248)) +- Add sessionless workspace memory forget and dream ([#6227](https://github.com/QwenLM/qwen-code/pull/6227)) +- ci(autofix): restore sandbox image flow ([#6261](https://github.com/QwenLM/qwen-code/pull/6261)) + ## [0.19.5](https://github.com/QwenLM/qwen-code/releases/tag/v0.19.5) - 2026-07-02 ### Added diff --git a/package-lock.json b/package-lock.json index eff18f4475..8d998ccc7d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@qwen-code/qwen-code", - "version": "0.19.5", + "version": "0.19.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@qwen-code/qwen-code", - "version": "0.19.5", + "version": "0.19.6", "hasInstallScript": true, "workspaces": [ "packages/*", @@ -24018,7 +24018,7 @@ }, "packages/acp-bridge": { "name": "@qwen-code/acp-bridge", - "version": "0.19.5", + "version": "0.19.6", "dependencies": { "@agentclientprotocol/sdk": "^0.14.1", "@qwen-code/qwen-code-core": "file:../core" @@ -24033,7 +24033,7 @@ }, "packages/audio-capture": { "name": "@qwen-code/audio-capture", - "version": "0.19.5", + "version": "0.19.6", "hasInstallScript": true, "dependencies": { "node-gyp-build": "^4.8.4" @@ -24050,7 +24050,7 @@ }, "packages/channels/base": { "name": "@qwen-code/channel-base", - "version": "0.19.5", + "version": "0.19.6", "dependencies": { "@agentclientprotocol/sdk": "^0.14.1" }, @@ -24060,7 +24060,7 @@ }, "packages/channels/dingtalk": { "name": "@qwen-code/channel-dingtalk", - "version": "0.19.5", + "version": "0.19.6", "dependencies": { "@qwen-code/channel-base": "file:../base", "dingtalk-stream-sdk-nodejs": "^2.0.4" @@ -24071,7 +24071,7 @@ }, "packages/channels/feishu": { "name": "@qwen-code/channel-feishu", - "version": "0.19.5", + "version": "0.19.6", "dependencies": { "@larksuiteoapi/node-sdk": "^1.45.0", "@qwen-code/channel-base": "file:../base" @@ -24082,7 +24082,7 @@ }, "packages/channels/plugin-example": { "name": "@qwen-code/channel-plugin-example", - "version": "0.19.5", + "version": "0.19.6", "dependencies": { "@qwen-code/channel-base": "file:../base", "ws": "^8.18.0" @@ -24096,7 +24096,7 @@ }, "packages/channels/qqbot": { "name": "@qwen-code/channel-qqbot", - "version": "0.19.5", + "version": "0.19.6", "dependencies": { "@qwen-code/channel-base": "file:../base", "@tencent-connect/qqbot-connector": "^1.1.0", @@ -24108,7 +24108,7 @@ }, "packages/channels/telegram": { "name": "@qwen-code/channel-telegram", - "version": "0.19.5", + "version": "0.19.6", "dependencies": { "@qwen-code/channel-base": "file:../base", "grammy": "^1.41.1", @@ -24121,7 +24121,7 @@ }, "packages/channels/weixin": { "name": "@qwen-code/channel-weixin", - "version": "0.19.5", + "version": "0.19.6", "dependencies": { "@qwen-code/channel-base": "file:../base" }, @@ -24131,7 +24131,7 @@ }, "packages/chrome-extension": { "name": "@qwen-code/chrome-bridge", - "version": "0.19.5", + "version": "0.19.6", "license": "Apache-2.0", "devDependencies": { "@types/chrome": "^0.1.32", @@ -24144,7 +24144,7 @@ }, "packages/cli": { "name": "@qwen-code/qwen-code", - "version": "0.19.5", + "version": "0.19.6", "dependencies": { "@agentclientprotocol/sdk": "^0.14.1", "@google/genai": "2.6.0", @@ -24390,7 +24390,7 @@ }, "packages/core": { "name": "@qwen-code/qwen-code-core", - "version": "0.19.5", + "version": "0.19.6", "hasInstallScript": true, "dependencies": { "@anthropic-ai/sdk": "^0.36.1", @@ -24563,7 +24563,7 @@ }, "packages/mobile-mcp": { "name": "@qwen-code/mobile-mcp", - "version": "0.0.1", + "version": "0.19.6", "license": "Apache-2.0", "dependencies": { "@modelcontextprotocol/sdk": "1.26.0", @@ -27266,7 +27266,7 @@ }, "packages/vscode-ide-companion": { "name": "qwen-code-vscode-ide-companion", - "version": "0.19.5", + "version": "0.19.6", "license": "LICENSE", "dependencies": { "@agentclientprotocol/sdk": "^0.14.1", @@ -27334,7 +27334,7 @@ }, "packages/web-shell": { "name": "@qwen-code/web-shell", - "version": "0.19.5", + "version": "0.19.6", "dependencies": { "@codemirror/autocomplete": "^6.18.0", "@codemirror/commands": "^6.7.0", @@ -27983,7 +27983,7 @@ }, "packages/web-templates": { "name": "@qwen-code/web-templates", - "version": "0.19.5", + "version": "0.19.6", "devDependencies": { "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", @@ -28490,7 +28490,7 @@ }, "packages/webui": { "name": "@qwen-code/webui", - "version": "0.19.5", + "version": "0.19.6", "license": "MIT", "dependencies": { "@qwen-code/sdk": "~0.1.8", diff --git a/package.json b/package.json index 11a219b854..afffcd2fa6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/qwen-code", - "version": "0.19.5", + "version": "0.19.6", "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.19.5" + "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.19.6" }, "scripts": { "start": "node scripts/start.js", diff --git a/packages/acp-bridge/package.json b/packages/acp-bridge/package.json index 66bb04c51c..2226b48761 100644 --- a/packages/acp-bridge/package.json +++ b/packages/acp-bridge/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/acp-bridge", - "version": "0.19.5", + "version": "0.19.6", "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", diff --git a/packages/audio-capture/package.json b/packages/audio-capture/package.json index 03144972b7..9fedcc35ed 100644 --- a/packages/audio-capture/package.json +++ b/packages/audio-capture/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/audio-capture", - "version": "0.19.5", + "version": "0.19.6", "description": "Native microphone capture backend for Qwen Code voice input", "type": "module", "main": "dist/index.js", diff --git a/packages/channels/base/package.json b/packages/channels/base/package.json index f29ce871dc..6a39c42fd7 100644 --- a/packages/channels/base/package.json +++ b/packages/channels/base/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/channel-base", - "version": "0.19.5", + "version": "0.19.6", "description": "Base channel infrastructure for Qwen Code", "type": "module", "main": "dist/index.js", diff --git a/packages/channels/dingtalk/package.json b/packages/channels/dingtalk/package.json index f788cfe294..13d3ef0027 100644 --- a/packages/channels/dingtalk/package.json +++ b/packages/channels/dingtalk/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/channel-dingtalk", - "version": "0.19.5", + "version": "0.19.6", "description": "DingTalk channel adapter for Qwen Code", "type": "module", "main": "dist/index.js", diff --git a/packages/channels/feishu/package.json b/packages/channels/feishu/package.json index c7091ebb69..07b7ed14b8 100644 --- a/packages/channels/feishu/package.json +++ b/packages/channels/feishu/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/channel-feishu", - "version": "0.19.5", + "version": "0.19.6", "description": "Feishu (Lark) channel adapter for Qwen Code", "type": "module", "main": "dist/index.js", diff --git a/packages/channels/plugin-example/package.json b/packages/channels/plugin-example/package.json index 1ae49cd9b2..1f0d531303 100644 --- a/packages/channels/plugin-example/package.json +++ b/packages/channels/plugin-example/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/channel-plugin-example", - "version": "0.19.5", + "version": "0.19.6", "private": true, "type": "module", "main": "dist/index.js", diff --git a/packages/channels/qqbot/package.json b/packages/channels/qqbot/package.json index fb70e781a8..9831525969 100644 --- a/packages/channels/qqbot/package.json +++ b/packages/channels/qqbot/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/channel-qqbot", - "version": "0.19.5", + "version": "0.19.6", "description": "QQ Bot (QQ机器人) channel adapter for Qwen Code", "type": "module", "main": "dist/index.js", diff --git a/packages/channels/telegram/package.json b/packages/channels/telegram/package.json index cc4c359051..c16b6c7577 100644 --- a/packages/channels/telegram/package.json +++ b/packages/channels/telegram/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/channel-telegram", - "version": "0.19.5", + "version": "0.19.6", "description": "Telegram channel adapter for Qwen Code", "type": "module", "main": "dist/index.js", diff --git a/packages/channels/weixin/package.json b/packages/channels/weixin/package.json index 63874083ee..ea75b392e0 100644 --- a/packages/channels/weixin/package.json +++ b/packages/channels/weixin/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/channel-weixin", - "version": "0.19.5", + "version": "0.19.6", "description": "WeChat (Weixin) channel adapter for Qwen Code", "type": "module", "main": "dist/index.js", diff --git a/packages/chrome-extension/package.json b/packages/chrome-extension/package.json index 91b3c9b7a4..0d8d38638f 100644 --- a/packages/chrome-extension/package.json +++ b/packages/chrome-extension/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/chrome-bridge", - "version": "0.19.5", + "version": "0.19.6", "description": "Chrome extension bridge for Qwen CLI - enables AI-powered browser interactions", "private": true, "repository": { diff --git a/packages/cli/package.json b/packages/cli/package.json index a2437be2b1..21b5c5d005 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/qwen-code", - "version": "0.19.5", + "version": "0.19.6", "description": "Qwen Code", "repository": { "type": "git", @@ -37,7 +37,7 @@ "dist" ], "config": { - "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.19.5" + "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.19.6" }, "dependencies": { "@agentclientprotocol/sdk": "^0.14.1", diff --git a/packages/core/package.json b/packages/core/package.json index 9d2b7396e2..73ec2415bf 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/qwen-code-core", - "version": "0.19.5", + "version": "0.19.6", "description": "Qwen Code Core", "repository": { "type": "git", diff --git a/packages/mobile-mcp/package.json b/packages/mobile-mcp/package.json index 9c99b8fdfb..4c1efbf37b 100644 --- a/packages/mobile-mcp/package.json +++ b/packages/mobile-mcp/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/mobile-mcp", - "version": "0.0.1", + "version": "0.19.6", "description": "Mobile MCP with opt-in relative coordinate support", "repository": { "type": "git", diff --git a/packages/vscode-ide-companion/package.json b/packages/vscode-ide-companion/package.json index 8a709dfbdd..36ad416ae7 100644 --- a/packages/vscode-ide-companion/package.json +++ b/packages/vscode-ide-companion/package.json @@ -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.19.5", + "version": "0.19.6", "publisher": "qwenlm", "icon": "assets/icon.png", "repository": { diff --git a/packages/web-shell/package.json b/packages/web-shell/package.json index a3db05b736..db37f2e363 100644 --- a/packages/web-shell/package.json +++ b/packages/web-shell/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/web-shell", - "version": "0.19.5", + "version": "0.19.6", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", diff --git a/packages/web-templates/package.json b/packages/web-templates/package.json index 66928d338b..541c88c93e 100644 --- a/packages/web-templates/package.json +++ b/packages/web-templates/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/web-templates", - "version": "0.19.5", + "version": "0.19.6", "description": "Web templates bundled as embeddable JS/CSS strings", "repository": { "type": "git", diff --git a/packages/webui/package.json b/packages/webui/package.json index e2841aae04..e84e793daf 100644 --- a/packages/webui/package.json +++ b/packages/webui/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/webui", - "version": "0.19.5", + "version": "0.19.6", "description": "Shared UI components for Qwen Code packages", "type": "module", "main": "./dist/index.cjs",