Skip to content

Qwen Code Desktop v0.1.0

Choose a tag to compare

@github-actions github-actions released this 05 Aug 10:06
93cd019

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
  • fix(core): allow transport stream retry during the thinking-only phase by @ComplexSimply in #7938
  • fix(github-channel): validate and document reasonFilter by @yiliang114 in #8035
  • fix(core): guard against CJK-driven char/4 under-count in output clamp by @zambalee in #7963
  • fix(core): preserve active Todo context across tool turns by @yiliang114 in #7919
  • feat(review): add review run — headless review with a machine-readable verdict by @wenshao in #7983
  • fix(cli): stamp QWEN_CODE_CLI at the workspace entry and publish QWEN_CODE_MODEL by @wenshao in #7993
  • feat(verify-pr): add seven techniques from maintainer verification rounds by @wenshao in #8010
  • feat(triage): raise the /verify agent budget from 25m to 120m by @wenshao in #8014
  • fix(autofix): cumulative timeout breaker, narrowed retry prompt, truthful handoff wording by @wenshao in #8044
  • feat(autofix): post a takeover milestone digest every tenth pushed round by @wenshao in #8046
  • fix(autofix): post the takeover engage ack from the command itself by @wenshao in #8043
  • test(e2e): force delegation in flaky subagent case (#8070) by @qwen-code-dev-bot in #8073
  • fix(web-shell): stabilize enhanced table controls by @ytahdn in #8041
  • feat(github-channel): add transient working reaction by @yiliang114 in #8061
  • fix(integration): make interactive read-then-write test deterministic (#8060) by @qwen-code-dev-bot in #8064
  • feat(autofix): back off scan inspection of idle candidates by @wenshao in #8049
  • fix(web-shell): show server queue status for pending messages by @wenshao in #8065
  • fix(web-shell): improve artifact previews by @ytahdn in #8078
  • feat(triage): make /verify evidence screenshots actually possible by @wenshao in #8016
  • fix(ci): gate the attachment guard before it allocates a runner by @wenshao in #8095
  • fix(web-shell): translate legacy /skills invocations by @ytahdn in #8103
  • fix(verify-pr): budget evidence capture in scope selection by @wenshao in #8104
  • fix(web-shell): show prompt send failure and retry action by @ytahdn in #8106
  • fix(web-shell): make question submission retryable by @ytahdn in #8096
  • fix(web-shell): preserve approved tool results by @ytahdn in #8099
  • fix(autofix): answer round-cap refusals on the PR instead of only in logs by @wenshao in #8067
  • fix(autofix): salvage race-lost pushes by merging the moved head and retrying by @wenshao in #8042
  • feat(autofix): per-source feedback budget in Critical-only mode by @wenshao in #8071
  • feat(core): tag UserPromptSubmit hook context and record display provenance by @zjgzx1988 in #7956
  • fix(core): abort workflows during session shutdown by @qqqys in #8107
  • fix(test): resolve turn completion on result messages in setModel E2E test (#8072) by @qwen-code-dev-bot in #8075
  • feat(serve): page large text files by byte cursor by @doudouOUC in #8002
  • fix(test): give multi-model E2E turns more CI timeout headroom (#8108) by @qwen-code-dev-bot in #8111
  • fix(serve): Prevent repeated workspace skill rescans by @doudouOUC in #8080
  • feat(review): statement-level mutation probes in test-efficacy by @wenshao in #8020
  • feat(web-shell): add contextual task panels by @ytahdn in #7929
  • feat(agent): add fork tool execution allowlist by @destire-mio in #8066
  • fix(serve): Isolate daemon session maintenance writers by @doudouOUC in #7975
  • fix(serve): restore build by routing side-task rollback through the workspace session service by @wenshao in #8144
  • fix(web-shell): isolate worktree session execution by @wenshao in #8068
  • feat(web-shell): manage pairing approvals by @qqqys in #8081
  • fix(test): allow slow permission mode E2E responses by @wenshao in #8149
  • fix(test): make auto-edit permission E2E deterministic by @wenshao in #8154
  • feat(web-shell): enhance composer and empty-session animations by @ytahdn in #8098
  • fix(web-shell): constrain session details and add copy action by @dreamWB in #8127
  • feat(hooks): include session source in lifecycle hook payloads by @xurik in #8155
  • feat(review): check cache identity when reviewing workflow PRs by @wenshao in #8205
  • fix(cli): allow scratch workspace without bearer token by @wenshao in #8204
  • feat(channels): isolate daemon adapter state by workspace by @qqqys in #8178
  • fix(test): route setPermissionMode E2E timeouts through TEST_TIMEOUT (#8133) by @qwen-code-dev-bot in #8135
  • refactor(web-shell): simplify plugin page action button labels by @ytahdn in #8174
  • feat(verify-pr): ship a one-command capture helper by @wenshao in #8114
  • fix(github-channel): retry definite no-write deliveries by @yiliang114 in #8087
  • fix(core): Tolerate transcript timestamp drift by @doudouOUC in #7886
  • feat(anthropic): support extended 1h cache_control TTL by @netbrah in #8048
  • fix(cli): add Ctrl+Tab alternative for @ completion tab switching by @qwen-code-dev-bot in #8074
  • fix(cli): prevent silent VP-mode crash by adding uncaughtException handler and error visibility by @chiga0 in #8088
  • fix(core): keep compactString within its limit when the marker does not fit by @chinesepowered in #7872
  • feat(ci): fail the startup bundle check when the CLI entry is hoisted into a chunk by @wenshao in #8203
  • fix(web-shell): localize built-in agent type names in zh-CN by @wenshao in #8209
  • fix(release): keep notes anchored and cap the release body by @wenshao in #8199
  • fix(core): strip assistant-turn prefill and fix thinking.display on 4.6+ models by @netbrah in #8040
  • fix(anthropic): move tool_result blocks first in mixed-content user messages by @netbrah in #8165
  • fix(anthropic): sanitize tool_use.id / tool_result.tool_use_id by @netbrah in #8164
  • feat(gitlab-channel): add transient 👀 award emoji while agent is working by @OrbitZore in #8119
  • feat(core): Normalize tool-call terminal telemetry by @doudouOUC in #8176
  • fix(web-shell): adaptive dropdown width for long model names by @wenshao in #8220
  • refactor(core): extract workflow run ownership by @qqqys in #8140
  • fix(integration-tests): stabilize async SDK MCP tool handler E2E (#8222) by @qwen-code-dev-bot in #8223
  • fix(test): isolate the worktree symlink test's temporary sibling directory by @wenshao in #8228
  • fix(cli): pick the memory unit from the rounded figure, not the raw bytes by @chinesepowered in #7871
  • fix(core): prevent subagents from asking users by @DragonnZhang in #8219
  • feat(hooks): add SessionDelete event by @xurik in #8059
  • fix(core): treat a bare & as a command boundary in splitCompoundCommand by @chinesepowered in #7864
  • feat(serve): support caller-supplied sessionId in POST /session by @qwen-code-dev-bot in #7836
  • feat(cli): run safe slash commands during streaming by @DragonnZhang in #8130
  • fix(cli): add Option+V for clipboard image paste on macOS by @qwen-code-dev-bot in #8120
  • feat(core): add a host tool invocation guard by @chiga0 in #8032
  • feat(core): add GenAI time-to-first-chunk tracing by @doudouOUC in #8150
  • fix(ui): suppress stale mouse events during dialog transitions by @kagura-agent in #8089
  • docs: worked example for a PreToolUse HTTP hook backed by an external judgment service by @babyblueviper1 in #8202
  • test(integration): migrate acp-cron to fake-openai-server (#8076) by @qwen-code-dev-bot in #8082
  • fix(ci): avoid verify capture color conflict by @ytahdn in #8236
  • fix(serve): isolate managed memory by selected workspace by @qqqys in #8056
  • fix(web-shell): keep pasted text visible by @ytahdn in #8230
  • fix(autofix): guard review thread resolution by @wenshao in #8231
  • test(e2e): inherit suite timeout in flaky subagent cases (#8244) by @qwen-code-dev-bot in #8246
  • fix(autofix): Extend suggestion handling to ten rounds by @wenshao in #8247
  • feat(triage): start the verify lane alongside /triage on a pull request by @wenshao in #8249
  • feat(daemon): raise default max sessions from 20 to 32 by @wenshao in #8235
  • fix(core): recover XML-style tool calls from plain text content by @qwen-code-dev-bot in #8037
  • test(e2e): skip two model-flaky SDK E2E cases (#8256) by @qwen-code-dev-bot in #8259
  • feat(web-shell): add artifact downloads by @ytahdn in #8234
  • feat(memory): protect pinned files during forked Dream by @destire-mio in #7714
  • fix(external-context): harden MCP dependencies by @doudouOUC in #8206
  • fix(anthropic): dedup duplicate tool_result blocks sharing a tool_use_id by @netbrah in #8163
  • fix(web-shell): quiet background task polling failures by @han-dreamer in #7923
  • fix(channel): recover ACP bridge after wake by @yiliang114 in #8211
  • refactor(core): thread the descriptor instead of forking text-read helpers by @doudouOUC in #7967
  • fix(cli): filter SGR mouse escape sequences in early input capture by @qwen-code-dev-bot in #8268
  • feat(core): add project-level fork profiles by @destire-mio in #8148
  • feat(skills): add disabled skill levels by @zhangxy-zju in #8057
  • fix(cli): stabilize thinking block height, replace transcript overlay with inline Ctrl+O toggle by @chiga0 in #8077
  • feat(autofix): unify local and CI flows in one skill by @yiliang114 in #8121
  • fix(cli): complete image routing across entry points by @yiliang114 in #7206
  • fix(integration): use QWEN_CODE_TEST_CRON_FAST in acp-cron test (#8237) by @qwen-code-dev-bot in #8243
  • fix(anthropic): cascade-strip stale thinking siblings when their tool_use is orphaned by @netbrah in #8166
  • fix(web-shell): compact advanced tables in narrow messages by @ytahdn in #8264
  • fix(web-shell): stabilize mobile composer after resume by @ytahdn in #8263
  • fix: make the test suite portable on Windows by @yiliang114 in #8050
  • fix(triage): render the verify report as sanitized markdown, not an escaped pre dump by @wenshao in #8147
  • feat(workflows): bubble workflow agent approvals by @qqqys in #8240
  • refactor(cli): remove ACP private serve dependencies by @yiliang114 in #8141
  • fix(web-shell): isolate automatic recap by session by @wenshao in #8262
  • feat(verify): sweep sibling shapes, calibrate replays, measure suggested fixes by @wenshao in #8242
  • fix(triage): say what the re-run summary measured, in both languages by @wenshao in #8273
  • fix(ci): harden self-hosted runner workspace ownership recovery by @qwen-code-dev-bot in #8115
  • feat(skills): add auto-skill curator by @DragonnZhang in #7846
  • feat(review): Test Plan claim check, base-tree A/B harness, per-hunk probes by @wenshao in #8215
  • fix(web-shell): deduplicate permission options with same display label by @qwen-code-dev-bot in #8250
  • feat(verify): check the accepting end, and separate empty from unmeasured by @wenshao in #8295
  • fix(vscode): traverse distinct resolved versions in notices generator by @yiliang114 in #8272
  • feat(cli): Add agent view supervisor runtime by @ZijianZhang989 in #7799
  • fix(qqbot): expose full sender openid in group message prompt by @Eric-GoodBoy-Tech in #8233
  • fix(autofix): state the primary agent budget and use the step's headroom by @wenshao in #8257
  • feat(review): Include CLI version in attribution by @wenshao in #8294
  • test(sdk-typescript): make abort-signal canUseTool E2E deterministic (#8297) by @qwen-code-dev-bot in #8300
  • feat(web-shell): support mutable default mid-turn messages by @ytahdn in #8229
  • feat: visualize ordinary-session plan execution by @yiliang114 in #7580
  • feat(cli): add /model --compaction for configurable chat compression model by @Aleks-0 in #7818
  • feat(cli): adopt Goal v3 in interactive TUI by @qqqys in #8005
  • feat(workflows): support opt-in background runs by @qqqys in #8303
  • feat(review): measured failure attribution, round ledger, richer mutants, doc parity by @wenshao in #8218
  • perf(core): memoise ancestor-directory ignore lookups in the file-search crawler by @dexhunter in #8253
  • feat(cli): add TUI image display tool by @DragonnZhang in #8217
  • test(web-shell): pass locale to approval renderer by @yiliang114 in #8314
  • fix(cli): add ui.mouseTracking setting to restore right-click and URL clicks by @qwen-code-dev-bot in #8198
  • Fix ACP startup failure when extension is loaded from a symlinked directory by @Wchoi189 in #8309
  • docs(web-shell): organize design documents by feature area by @water-in-stone in #8304
  • fix(webui): make long tool output collapsible by @destire-mio in #8251
  • feat(review): render adjudication, workflow step extraction, three verification lenses by @wenshao in #8225
  • docs: document skill learning and live reload by @DragonnZhang in #8298
  • feat(review): borrow recall, a fix loop, and a size-derived budget from Claude /review by @wenshao in #8315
  • feat(review): carry the round ledger in the posted review body by @wenshao in #8255
  • feat(review): mined disciplines — effective-diff guard, positive control, seven lenses by @wenshao in #8261
  • test(sdk-typescript): make orchestration E2E deterministic by @yiliang114 in #8312
  • docs: complete TUI keyboard shortcut reference by @DragonnZhang in #8327
  • fix(core): unblock history pagination on oversized transcript turns by @wenshao in #8335
  • fix(ci): ensure qwen CLI before triage action to avoid redundant install by @yiliang114 in #8337
  • fix(review): a mutant whose own test was red is not a survivor either by @wenshao in #8345
  • fix(core): redact sibling directives from forked subagent history by @harjothkhara in #8344
  • feat(cli): /summary supports custom export path by @qwen-code-dev-bot in #8116
  • ci: gate merges on deterministic no-AK E2E by @yiliang114 in #8313
  • fix(todo): preserve compatibility outside active plans by @yiliang114 in #8334
  • docs: refresh architecture overview by @DragonnZhang in #8325
  • feat(review): teach the verifier the falsify-not-verify asymmetry by @wenshao in #8346
  • test(sdk-typescript): make permission control E2E deterministic by @yiliang114 in #8302
  • ci: auto-update ECS runners on stable publish and harden update job by @wenshao in #8343
  • fix(sdk-java): accept ERROR terminal in teardown E2E to fix flaky race by @wenshao in #8354
  • feat(review): drive — readiness polled, completion proven, cleanup guaranteed by @wenshao in #8349
  • fix(core): reuse prompt cache during chat compression by @DragonnZhang in #8339
  • fix(cli): allow pasting sensitive extension settings by @DragonnZhang in #8342
  • feat(serve): resolve and report the daemon memory budget by @doudouOUC in #8245
  • test(extension): stop a hand-written projection from racing the store's clock by @wenshao in #8362
  • docs: document compaction and image model selection by @DragonnZhang in #8348
  • fix(github-channel): recover interrupted inbound tasks by @yiliang114 in #8306
  • feat(review): mock-provider — the protocol is a fixture, the answer is yours by @wenshao in #8355
  • test(review): pin drive's capped-stream case to its invariant, not to bash 5.2 by @wenshao in #8366
  • feat(desktop): package Web Shell as a release-ready desktop app by @yiliang114 in #8132
  • fix(core): retry leaked JSON tool protocol output by @yiliang114 in #8301
  • feat(serve): make sub-session concurrency caps configurable by @wenshao in #8341
  • fix(ci): ask GitHub what the PR changed, not what the base gained by @wenshao in #8372
  • fix(ci): trigger ECS runner reconciliation after updater changes by @yiliang114 in #8373
  • feat(ci): add repo-hygiene skill and weekly patrol workflow by @ZijianZhang989 in #7908
  • docs(review): tell the agents drive and mock-provider exist, and how a fix's test earns its place by @wenshao in #8369
  • feat(ci): size-aware default timeout for the PR review job by @wenshao in #8377
  • fix(review): follow output language in Tip lines and saved reports by @wenshao in #8370
  • feat(channels): add Web Shell management support for GitHub and GitLab by @OrbitZore in #8310
  • fix(cli): re-stamp QWEN_CODE_CLI for the review run child by @wenshao in #8378
  • fix(core): resume long streams cut by a socket-level close by @LHMQ878 in #7896
  • test(integration): select acp-cron notification by source, not wall-clock (#8333) by @qwen-code-dev-bot in #8336
  • fix(external-context): Dispose of Auto Recall proxy dispatcher by @doudouOUC in #8352
  • feat(review): publish evidence images to a user-designated assets repo by @wenshao in #8351
  • fix(review): read why the collocated test was not green, do not assert it by @wenshao in #8374
  • fix(review): hold a Critical the base tree already fails by @wenshao in #8380
  • feat(cli): add a Java/JVM performance path rule to /review by @wenshao in #8379
  • feat(ci): expand code owner pool for packages/core by @wenshao in #8347
  • feat(web-shell): gate Session Workflow behind an experimental setting by @yiliang114 in #8391
  • feat(cli): adopt Goal v3 in non-interactive mode by @qqqys in #8324
  • fix(review): deprioritize Maven generated test sources by @wenshao in #8405
  • feat(memory): configure background agent turn limits by @tomatotomata in #8171
  • feat(desktop): bridge Electron users to Tauri updates by @yiliang114 in #8392
  • fix(web-shell): prevent table dialog close scroll jump by @carffuca in #8407
  • ci: remove broken legacy scheduled PR triage workflow by @wenshao in #8434
  • feat(telemetry): Track tool execution outcomes by @doudouOUC in #8180
  • fix(core): Clarify write_file prior-read guidance by @doudouOUC in #8428
  • fix(desktop): read Windows smoke log from LocalAppData by @yiliang114 in #8381
  • fix(core): Avoid replaying unsafe MCP tool calls by @doudouOUC in #8387
  • fix(core): stop Goal retries after evidence catalog exhaustion by @qqqys in #8430
  • fix(review): keep drifted-but-delivered launches out of the repair loop by @wenshao in #8466
  • feat(review): Add structured Web Shell review results by @wenshao in #8402
  • ci: reduce SDK Java runner queueing by @yiliang114 in #8441
  • fix(core): align MCP reconnect timeout test with safe replay policy by @wenshao in #8478
  • feat(core): support Qwen 3.8 reasoning effort by @DragonnZhang in #8472
  • fix(ci): align review workflow tests with externalized timeout variables by @wenshao in #8486
  • feat(browser-ext): add alpha readiness diagnostics by @yiliang114 in #6739
  • docs: document headless Goal workflows by @DragonnZhang in #8503
  • feat(core): guide recording of PR, issue, and comment URLs as artifacts by @wenshao in #8453
  • ci: route trusted-author fork PRs and no-checkout jobs to the ECS pool by @wenshao in #8502
  • fix(web-shell): keep pending background agents active by @carffuca in #8413
  • fix(desktop): rotate Tauri updater signing key by @yiliang114 in #8511
  • fix(web-shell): add explicit ::selection for message content in Firefox by @C0d3N1nja97342 in #8417
  • refactor(core): move review skill incident narratives to DESIGN.md by @wenshao in #8499
  • fix(core): harden Qwen 3.8 reasoning effort wire shape by @wenshao in #8488
  • perf(review): issue independent setup calls in one response by @wenshao in #8487
  • fix(review): stop the reverse-audit loop while there is still time to report by @wenshao in #8468
  • fix(autofix): normalize paginated fetches to one flat array per file by @wenshao in #8438
  • feat(web-shell): bind plan approval to its Todo revision by @yiliang114 in #8393
  • fix(core): resolve DashScope thinking-knob conflicts by family (#8488 round 2) by @wenshao in #8536
  • fix(cli): stop review test-efficacy tests depending on ambient tmpdir vitest by @wenshao in #8537
  • feat(serve): add a required external tool guard provider by @chiga0 in #8125
  • fix(desktop): codesign ripgrep and node binaries before tauri build by @yiliang114 in #8518
  • fix(core): reuse prompt cache for multimodal compression by @DragonnZhang in #8419
  • fix(cli): preserve Qwen Review startup version in footers by @yiliang114 in #8431
  • fix(serve): detect lineEnding across the file, not the returned slice by @doudouOUC in #8383
  • perf(core): clear tool results to a low watermark to preserve prompt cache by @doudouOUC in #8464
  • feat(review): a cost ledger from the records already on disk by @wenshao in #8471
  • fix(review): admit evidence images by content, not by name — magic-byte sniffing by @wenshao in #8459
  • test(ci): align resolve-workflow timeout expectations with externalized variables (#8460 follow-up) by @wenshao in #8485
  • fix(ci): clean review worktrees after cancellation by @yiliang114 in #8474
  • fix(webui): recover complete turns after live journal truncation by @doudouOUC in #8414
  • fix: add onCompromised handlers to proper-lockfile calls to prevent daemon crash by @wenshao in #8442
  • perf(autofix): build the review CLI bundle once per scan and fan it out to legs by @wenshao in #8548
  • perf(review): retire dry chunks and pipeline verification in the reverse audit by @wenshao in #8498
  • chore(cua-driver): sync upstream v0.17.0 by @LaZzyMan in #8564
  • feat(web-shell): add native Live Voice by @LaZzyMan in #7859
  • fix(release): reuse configured Apple signing secrets by @LaZzyMan in #8574

New Contributors

Full Changelog: dsw-manual-poc-20260727-1...desktop-v0.1.0