Highlights
See the complete change list below.
Breaking Changes
No known breaking changes.
Complete Change List
Features
- feat(channels): decouple group-member access from senderPolicy (#12475) by @qwen-code-dev-bot
- feat(cli): Add managed runtime attestation worker (#12506) by @doudouOUC
- feat(serve): restore serve.channels once for a workspace registered after boot (#12396) by @qqqys
- feat(core): record when each tool call started (#12517) by @qqqys
- feat(cua): unify App workflows and fix no-Metal capture for SDK 0.20.11 (#12386) by @LaZzyMan
- feat(web-shell): trajectory overview strip showing where a run spent its time (#12524) by @qqqys
- feat(web-shell): load the whole trajectory window before drawing it (#12533) by @qqqys
- feat(web-shell): add shared URL navigation for pages and sessions (#12499) by @Lilian0122
- feat(web-shell): edit group senders and session operators in the channel editor (#12535) by @qqqys
- feat(sdk-java): Add managed runtime attestation client (#12522) by @doudouOUC
- feat(web-shell): select a time range on the trajectory overview to narrow the table (#12543) by @qqqys
- feat(serve,web-shell): set the Qwen Live endpoint and model from settings (#12529) by @qqqys
- feat(channels): separate private and group access policies (#12547) by @qqqys
- feat(serve): run Qwen Live through the Web Shell, native macOS Host opt-in (#12534) by @qqqys
- feat(web-shell): search within the current conversation (#12234) by @samuelhsin
- feat(web-shell): add host controls for model management (#12345) by @Lilian0122
- feat(browser-use): make the bundled runtime self-contained (#12548) by @tanzhenxin
- feat(web-shell): zoom and pan the trajectory overview (#12557) by @qqqys
- feat(review): audit the applied --fix for unpinned new assumptions (#10169) by @wenshao
- feat(channels): route messages to prefix-specific sessions (#12595) by @qqqys
- feat(web-shell): show the trajectory over real time, idle included (#12607) by @qqqys
- feat(sdk-java): Adopt a Managed Runtime only after attestation (#12552) by @doudouOUC
- feat(web-shell): inspect session tool calls by prompt (#12466) by @ytahdn
- feat(web-shell): support selective host artifact integration (#12588) by @dreamWB
- feat(live): stream shared screens into browser voice calls (#12623) by @qqqys
- feat(desktop): add QWEN_DESKTOP_DISABLE_UPDATES opt-out for the startup update check (#12587) by @yiliang114
- feat(review): record per-file content verdicts that survive a rebase (#9661) by @wenshao
- feat(web-shell): manage the repository's worktrees from the git dialog (#12154) by @wenshao
Bug Fixes
- fix(vscode-ide-companion): regenerate NOTICES.txt after release dependency reorder (#12479) (#12483) by @qwen-code-dev-bot
- fix(java): Fence stale tool dispatch owners (#12477) by @doudouOUC
- fix(java): Make JDBC lease clocks timezone and storage safe (#12478) by @doudouOUC
- fix(cli): hide external editor option when the configured editor is unavailable (#12498) by @yiliang114
- fix(review): Move trusted state outside workspaces (#12491) by @doudouOUC
- fix(cli): report clipboard unavailability on Linux instead of failing silently (#12489) by @yiliang114
- fix(release): keep manifest layout when bumping versions (#12487) by @yiliang114
- fix(chrome-extension): make the store release fail where it can be read (#12392) by @tanzhenxin
- fix(cli): report clipboard unavailability when the native module throws (#12508) by @yiliang114
- fix(web-shell): keep mobile composer controls reachable above a soft keyboard (#12462) by @wenshao
- fix(web-shell): open an ordinary task from New task in a Live chat (#12516) by @qqqys
- fix(channels): one operator rule for shared sessions, with an explicit operators list (#12515) by @qqqys
- fix(core): Simplify system prompts and remove conflicting examples (#12360) by @doudouOUC
- fix(web-shell): keep New task from a Live chat off the Live context without a trusted primary (#12519) by @qqqys
- fix(cli): scroll conversation on bare Up/Down in VP mode with empty input (#12518) by @yiliang114
- fix(vscode-ide-companion): stop sending unregistered client id on message-edit rewind (#12502) by @yar3333
- fix(dws): keep document threads and todos on the direct-message axis (#12525) by @qqqys
- fix(serve): never hold a workspace registration on the channel-control lane (#12527) by @qqqys
- fix(web-shell): settle stale streaming messages when idle (#12439) by @callmeYe
- fix(core): register session commits so the amend exemption is reachable (#12463) by @yiliang114
- fix(serve): preserve session creation failure diagnostics (#12331) by @callmeYe
- fix(core): bound oversized images returned by MCP tools (#10835) by @yiliang114
- fix(core): decide MCP media handling from the bytes, not the label (#12567) by @yiliang114
- fix(core): read a backslash inside single quotes as literal when splitting (#11765) by @TianYuan1024
- fix(skills): reload changed content after refresh (#12182) by @jkxiao
- fix(cli): keep CoreToolScheduler stable across callback identity changes (#12069) by @kabishou11
- fix(web-shell): make mobile access opt-in and simplify split composer (#12537) by @ytahdn
- fix(cli): keep 64-bit file ids exact in the two identity comparators (#12568) by @yiliang114
- fix(cli): keep plan-identity guards exact for 64-bit file ids (#12577) by @yiliang114
- fix(java): Deliver broker cancellation after a dispatch lease lapses (#12583) by @wenshao
- fix(core): label each reattached image so older ones are not read as current (#12549) by @yiliang114
- fix(java): Fence lapsed tool executions by the repository clock (#12608) by @wenshao
- fix(review): correct what the fix audit tells its reader (#12610) by @wenshao
- fix(serve): report serve.channels restore failures in channel status (#12542) by @qqqys
- fix(web-shell): stop rendering empty args and input JSON in tool cards (#12601) by @yiliang114
- fix(core): cover every commit spelling and the promoted path in session-commit registration (#12556) by @yiliang114
- fix(cli): honor the usage-statistics opt-out under --bare (#12604) by @yiliang114
- fix(ci): trust the job workspace as a git safe.directory before checkout (#12648) by @yiliang114
Performance
- perf(core): move the Agent tool's prompt-writing guidance into a bundled skill (#12323) by @yiliang114
- perf(serve): use catalog for workspace extension activation projection (#12541) by @callmeYe
- perf(web-shell): derive the session workflow projection once and share it across surfaces (#10865) (#11237) by @now-ing
- perf(cli): stop one-shot runs from booting the CLI twice (#12602) by @yiliang114
- perf(cli): skip interactive-only probes on headless startup (#12603) by @yiliang114
Documentation
- fix(core,docs): correct what the deferred-tool bridge made stale or untested (#12355) by @yiliang114
- docs(plans): record why CI test time is bound by module import, not scheduling (#10909) by @yiliang114
- docs(verify-pr): add persisted-state, steady-state and skip-coverage rules (#12456) by @wenshao
- docs(browser-use): point users at the Chrome Web Store listing (#12510) by @tanzhenxin
- docs(design): add Chinese translation of the memory pressure monitor design (#12521) by @yiliang114
- docs(extensions): cover workflow reload and add Chinese design (#12625) by @BlackishGreen33
- docs: fix /clear description, .qwen note, and outdated CLI name (#12555) by @yc2bgr8
- docs(conversations-recovery): document non-graceful ACP writer recovery (#12268) by @dvd233
- docs: fix comments and JSDoc that contradict the actual code (#11950) by @sxh313
- docs(tools): add Firecrawl to the web search MCP services (#12646) by @JuampiHernandez
Internal Changes
- chore(vscode-ide-companion): regenerate NOTICES.txt after dependency reorder (#12481) (#12485) by @qwen-code-dev-bot
- refactor(channels): move group senders into groups and resolve them per conversation (#12520) by @qqqys
- test(cli): yield the event loop between base-tree tests (#12573) by @wenshao
- test(review): drive the fix-audit build through the yargs command (#12614) by @wenshao
- test(review): add hard-link witness test to save-artifact overwrite guard (#12578) (#12581) by @holny
- test(java): make the local-process provisioner tests deterministic (#12639) by @wenshao
New Contributors
- @yar3333 made their first contribution in #12502
- @jkxiao made their first contribution in #12182
- @BlackishGreen33 made their first contribution in #12625
- @yc2bgr8 made their first contribution in #12555
- @sxh313 made their first contribution in #11950
- @holny made their first contribution in #12581
- @JuampiHernandez made their first contribution in #12646
Full Changelog: v0.24.4...v0.24.5