github QwenLM/qwen-code v0.21.1-nightly.20260730.1643a6c9a
Release v0.21.1-nightly.20260730.1643a6c9a

pre-release4 hours ago

What's Changed

  • fix(ci): add default bash shell to container jobs in qwen-triage by @qwen-code-dev-bot in #7838
  • fix(web-shell): preserve pasted text in composer by @ytahdn in #7824
  • feat(web-shell): add monitor task details by @ytahdn in #7817
  • fix(ci): add git safe.directory for container jobs by @qwen-code-dev-bot in #7843
  • fix(ci): add --init to container jobs to reap zombie processes by @qwen-code-dev-bot in #7848
  • fix(core): wait for output stream flush before settling background shells by @ComplexSimply in #7833
  • fix(scripts): retry model calls and surface degraded release notes by @he-yufeng in #7535
  • feat(web-shell): Scope voice to composer workspace by @doudouOUC in #7754
  • feat(hooks): Add submitted prompt provenance by @doudouOUC in #7762
  • fix(ci): prevent worktree cleanup from failing the verify job by @qwen-code-dev-bot in #7857
  • perf(acp): Preload providers after session creation by @doudouOUC in #7767
  • test(channels): run the feishu, weixin and qqbot suites in CI by @chinesepowered in #7853
  • feat(autofix): retry deterministic rejection once by @qqqys in #7796
  • fix(release): publish all channel packages, not just channel-base by @yiliang114 in #7845
  • feat(web-shell): add Channel management page by @qqqys in #7793
  • feat(acp): add session-scoped runtime MCP by @qqqys in #7847
  • feat(core): persist and replay Goal v3 state by @qqqys in #7815
  • feat(core): add full-resolution image zoom tool by @qqqys in #7809
  • fix(scripts): harden retry classification and preserve deadline error context by @yiliang114 in #7854
  • feat(web-shell): add composer footer renderer by @dreamWB in #7856
  • fix(core): fast-fail permanent quota-exhaustion 429s instead of silent retry by @yiliang114 in #7842
  • fix(web-shell): isolate history and session drafts by @ytahdn in #7810
  • fix(triage): retry a transient npm ci before blaming the PR for it by @wenshao in #7884
  • fix(webui): fall back to history_truncated marker recordId for transcript pagination anchor by @wenshao in #7829
  • feat: Gate session writer lease behind opt-in by @doudouOUC in #7894
  • fix(review): give the review retry the remaining time budget by @wenshao in #7852
  • fix(integration): configure Docker sandbox networking for submitted-prompt provenance test (#7879) by @qwen-code-dev-bot in #7881
  • fix(cli): report a genuine $0.00 cost instead of N/A by @chinesepowered in #7784
  • fix(core): reject socks5h and socks4a proxy URLs by @chinesepowered in #7786
  • fix(core): correct the character classes in checkContentLoop by @chinesepowered in #7788
  • fix(web-shell): make /copy with a bare index work by @chinesepowered in #7789
  • fix(core): decline combined sed flags where -i is not last by @chinesepowered in #7790
  • fix(core): pass the Grep pattern behind -e so a leading dash is not an option by @chinesepowered in #7863
  • feat(ci): Deduplicate E2E failure issues by commenting on existing issue by @yiliang114 in #7792
  • fix(core): cap a bare Error's message like every other getErrorMessage path by @chinesepowered in #7865
  • fix(cli): make wrapToVisualLines count zero-width characters like its sibling by @chinesepowered in #7873
  • fix(core): charge the separator and ellipsis to the preview budget by @chinesepowered in #7874
  • fix(cli): do not count a partial trailing line when re-opening a split fence by @chinesepowered in #7875
  • fix(cli): make /copy select the code block by @chinesepowered in #7883
  • feat(triage): add revert-pattern high-risk path detection by @yiliang114 in #7414
  • feat(web-shell): add native workspace folder picker by @qqqys in #7849
  • feat(web-shell): add Channel configuration flows by @qqqys in #7893
  • fix(test): Restore first-output benchmark measurement validity and correct its artifact schema by @doudouOUC in #7820
  • fix(daemon): harden Todo Stop Guard continuations by @doudouOUC in #7821
  • fix(core): read the stash reflog from the common git dir by @chinesepowered in #7774
  • fix(core): keep Draft 4 boolean exclusive bounds in toOpenAPI30 by @chinesepowered in #7782
  • fix(core): apply maxDepth to flat-format memory imports by @chinesepowered in #7851
  • fix(core): render a thought part's reasoning instead of the boolean flag by @chinesepowered in #7866
  • fix(core): bridge tool-result images for text-only models by @LaZzyMan in #7484
  • fix(cli): patch ink to clear staticNode on indirect subtree removal by @chiga0 in #7816
  • fix(core): auto-retry transient network errors during API calls by @chiga0 in #7898
  • fix(cli): hide stale sticky todos from previous turns by @chiga0 in #7900
  • fix(serve): Release managed session writer locks on shutdown by @doudouOUC in #7812
  • perf(core): add early Anthropic cache breakpoint on the stable system prefix by @DragonnZhang in #7912
  • fix(cli): add polling fallback for git branch name display by @qwen-code-dev-bot in #7830
  • fix(cli): remove redundant 'Read file' prefix from @mention tool card by @qwen-code-dev-bot in #7902
  • feat(core): Add ARMS session user ID by @doudouOUC in #7921
  • fix(safe-mode): preserve caller-supplied top-tier MCP servers by @VitaliBabkin in #7827
  • fix(ci): keep the post-merge E2E signal on main alive by @wenshao in #7795
  • fix(core): short-circuit the flush wait when the output stream cannot flush by @ComplexSimply in #7905
  • fix(core): track quotes inside a command substitution in splitCommands by @chinesepowered in #7870
  • fix(core): count the per-server and per-tool always-allow outcomes as approvals by @chinesepowered in #7869
  • fix(web-shell): report intended workspace to host when starting a new chat by @wenshao in #7910
  • fix(cli): default to virtualized terminal history by @ZevGit in #5738
  • fix(ci): restore workspace ownership in cleanup to prevent EACCES by @qwen-code-dev-bot in #7931
  • perf(ci): cut the E2E suite from ~40min to ~24min by @wenshao in #7798
  • feat(channels): expose loop tools in daemon sessions by @qqqys in #7891
  • fix(review): recover the resolved effort when --effort is not re-threaded by @wenshao in #7855
  • feat(web-shell): honor voice hold mode by @callmeYe in #7839
  • feat(web-shell): manage Channel pairing requests by @qqqys in #7909
  • feat(channels): dispatch GitHub notifications by reason by @yiliang114 in #7826
  • feat(web-shell): add git branch picker, commit dialog, and create PR flow by @wenshao in #7731
  • feat(triage): surface the sandboxed lanes on the CI path by @wenshao in #7917
  • fix(scripts): slim release-note model prompts and log request timing by @yiliang114 in #7941
  • feat(web-shell): suggest BTW for side questions by @carffuca in #7935
  • fix(release): pin channel-base dep to exact version during release bump by @yiliang114 in #7953
  • feat(triage): make the verify report readable in Chinese by @wenshao in #7918
  • fix(triage): make the build-process guard diagnosable and zombie-aware by @wenshao in #7858
  • fix(ci): give each job its own proxy wrapper directory by @wenshao in #7951
  • feat(autofix): defer suggestions after five change rounds by @qqqys in #7913
  • feat(core): connect Goal v3 to the turn engine by @qqqys in #7895
  • feat(core): bound image reads for reliable zoom by @qqqys in #7911
  • fix(integration): scale interactive read-then-write waits with env timeout (#7942) by @qwen-code-dev-bot in #7943
  • test(integration): deflake asyncGenerator canUseTool content assertion (#7937) by @qwen-code-dev-bot in #7939
  • fix(ci): clean stale .qwen/ before checkout to prevent Permission denied by @qwen-code-dev-bot in #7977
  • feat(triage): make the not-verified sentence a mechanical 2b-bis trigger by @wenshao in #7965
  • fix(ci): restore verify workspace permissions by @yiliang114 in #7992
  • feat(external-context): Add submitted-prompt auto recall by @doudouOUC in #7877
  • fix(ci): update the Qwen binary used by ECS runners by @yiliang114 in #8000
  • feat(web-shell): render streaming charts with markdown-chart by @zhangxy-zju in #7916
  • feat: robust ripgrep by @water-in-stone in #7888
  • fix(core): mark folders the item budget never expanded by @chinesepowered in #7868
  • fix(feishu): keep code-fence chunks within the message size limit by @chinesepowered in #7850
  • fix(web-shell): preserve token and base path in session URLs by @ytahdn in #7926
  • ci: add isolated DSW SWE-bench release pipeline by @DennisYu07 in #7656
  • fix(web-shell): polish Channel pairing requests by @qqqys in #7997
  • fix(cli): correct hardware cursor off-by-one in fullscreen mode by @chiga0 in #7998
  • fix(cli): prevent SGR mouse events from being swallowed as paste on Windows by @chiga0 in #7988
  • feat(channels): add DingTalk interactive cards by @BenGuanRan in #6930
  • feat(web-shell): refine advanced table controls by @ytahdn in #7999
  • fix(serve): allow bounded reads of large text files by @doudouOUC in #7947
  • fix(web-shell): prefer artifact type metadata in cards by @ytahdn in #7973
  • fix(web-shell): reduce composer input latency by @ytahdn in #8015
  • fix(webui): stabilize session history pagination by @ytahdn in #8001
  • fix(release): skip notes-start-tag when previous release diverges from target (#7969) by @qwen-code-dev-bot in #7970
  • fix(sdk): raise daemon browser bundle budget to 177KB by @wenshao in #8024
  • fix(cli): map Kitty Super (Command) modifier to meta by @chiga0 in #7996
  • fix(daemon): distinguish draining channel worker diagnostics by @destire-mio in #7932
  • feat(triage): lead the verify comment with a qualitative verdict, fold the Chinese by @wenshao in #7974
  • fix(review): preflight free disk before build-test installs and builds by @wenshao in #7986
  • test(integration): migrate flaky E2E tests to fake-openai-server by @yiliang114 in #7934
  • feat(triage): run external /verify on ECS behind a workspace wipe by @wenshao in #7985
  • fix(cli): reserve Ctrl+Shift+C for terminal copy, not quit/clear by @chiga0 in #8011
  • fix(core): auto-record artifact file writes by @chiga0 in #7914
  • fix(cli): MCP prompt completion no longer blocks Enter for optional params by @qwen-code-dev-bot in #7995
  • feat(hooks): add security.allowPrivateNetworkHooks to bypass SSRF range checks for trusted scopes by @xurik in #7968
  • feat(web-shell): add split pane header action slot with overflow by @samuelhsin in #7808
  • feat(channels): add GitLab polling channel adapter by @OrbitZore in #7862
  • fix(channels): disable native cron in daemon sessions by @qqqys in #8034
  • feat(channels): add pairing approval management API by @qqqys in #8045
  • feat(github-channel): filter notification reasons by @xianjianlf2 in #8031
  • fix(channels): reject unusable GitHub self-allowlists by @zjunothing in #8055
  • fix(core): drop top-level oneOf from send_message tool schema by @netbrah in #7989
  • fix(cli): stop resize repaint from causing scroll storm by @chiga0 in #8009
  • feat(review): disclose a zero-finding Approve on a non-trivial diff as low signal by @wenshao in #7987
  • fix(core): rebind fork capabilities on resume by @DragonnZhang in #7927
  • feat(core): preload deferred tools within a context-window threshold by @DragonnZhang in #7922
  • fix(channels): make GitHub final response publication single-shot by @yiliang114 in #8033
  • fix(ci): restore workspace ownership before checkout in PR review job by @yiliang114 in #8062
  • fix(release): bump preview base past published stable by @yiliang114 in #7978
  • test(web-shell): expand restored-history pagination regression coverage by @PratikWayase in #7907
  • fix(serve): Add certified session writer handoff by @doudouOUC in #7976
  • test(integration): Measure immediate prompt dispatch stages by @doudouOUC in #7994

New Contributors

Full Changelog: dsw-manual-poc-20260727-1...v0.21.1-nightly.20260730.1643a6c9a

Don't miss a new qwen-code release

NewReleases is sending notifications on new releases.