What's Changed
- fix(triage): strengthen PR gate with batch detection, problem existence check, and red flag patterns by @pomelo-nwu in #5723
- feat(review): route suggestion-level findings to an updatable PR comment by @pomelo-nwu in #5786
- fix(autofix): unconditionally restore tracked files before branch checkout (#6281) by @qwen-code-dev-bot in #6286
- feat(serve): Add runtime.activity fields to daemon status API by @doudouOUC in #6270
- feat(web-shell): add a daemon status page backed by GET /daemon/status by @wenshao in #6272
- fix(vscode): keep auth quick inputs open on focus loss by @barry166 in #6274
- ci(audio): clarify macOS prebuild artifact suffix by @barry166 in #6275
- fix(cache): preserve tools prefix in side-query for Anthropic prompt-cache hits by @kagura-agent in #6225
- feat(web-shell): add MCP mentions and iconized @ references by @BZ-D in #6279
- fix(core): give Stop-hook continuations a fresh per-turn tool-call budget; make the cap configurable by @tanzhenxin in #6238
- perf(glob): prune ignored directories during traversal, not just post-filter by @minmax in #6123
- fix(web-shell): use theme color for @ group titles by @BZ-D in #6294
- fix(acp): pass per-session settings explicitly instead of racing on this.settings by @doudouOUC in #6292
- feat(web-shell): manage sessions from the sidebar (archive, unarchive, delete) by @wenshao in #6293
- fix(core): improve debug txt diagnostics by @yiliang114 in #6277
- fix(ci): require maintainer-applied
autofix/approvedlabel for tier-1 fast-path by @yiliang114 in #6276 - fix(auth): prevent persistent 401 after API key change by @yiliang114 in #6284
- feat(daemon): Add session export endpoint by @doudouOUC in #6297
- test(e2e): make fake OpenAI reachable from Docker sandbox by @yiliang114 in #6302
- fix(cli): stream long responses into scrollback to stop scroll-to-top lock by @MikeWang0316tw in #6170
- fix(qqbot): streaming idle-flush with tool-call and stale-callback protection by @Eric-GoodBoy-Tech in #6204
- fix(openai): preserve descriptionless tools by @VectorPeak in #6243
- feat(acp): advertise vision-bridge image capability in initialize response by @yiliang114 in #6269
- fix(core): enforce agent concurrency cap on foreground sub-agents by @kagura-agent in #6300
- fix(ci): Stop review bots for closed PRs by @yiliang114 in #6304
- fix(core): skip abbreviations in multiple_sentences filter (#6077) by @qwen-code-dev-bot in #6193
- perf(cli): cache LoadedSettings per workspace with stat-based invalidation by @doudouOUC in #6310
- feat(web-shell): support compact echarts full data blocks by @zhangxy-zju in #6232
- fix(ci): skip stale PR review runs by @yiliang114 in #6313
- feat(acp): Batch session load replay by @doudouOUC in #6309
- fix(core): treat request timeout of 0 as disabled instead of aborting immediately by @Nas01010101 in #6288
- fix(serve): resolve false auth warning in preflight when API key is set via settings by @doudouOUC in #6296
- fix(core): treat @-attached files as read for prior-read enforcement by @Nas01010101 in #6295
- fix(cli): preserve partial remote input JSONL records by @VectorPeak in #6317
- fix(core): disable qwen thinking via chat_template_kwargs on non-DashScope servers by @beantownbytes in #6271
- feat(web-shell): add custom at mention panel by @ytahdn in #6242
- feat(acp-bridge): Add EventBus subscriber byte cap by @doudouOUC in #6314
- perf(ci): optimize autofix pipeline — fast-track, skip duplicate build, scoped tests by @yiliang114 in #6315
- fix(web-shell): keep skill slash commands after starting a new session by @wenshao in #6319
- test(core): cover full:false branch of recordAttachedFileRead for truncated @-attachments by @Nas01010101 in #6324
- feat(web-shell): time-series metrics charts on Daemon Status by @wenshao in #6307
- fix(web-shell): localize built-in command and skill descriptions in the slash menu by @wenshao in #6326
- fix(desktop): enforce transform_data isolation by @gauravyad86 in #6285
- Notify model when extension capabilities change by @ZijianZhang989 in #6245
- fix(core): skip no-op max_tokens escalation by @han-dreamer in #6234
- fix(core): avoid null OpenAPI schema types by @VectorPeak in #6323
- refactor(core): centralize extension runtime refresh by @ZijianZhang989 in #6152
- feat(daemon): Add session organization by @doudouOUC in #6305
- feat(cli): Surface daemon prompt queue status by @doudouOUC in #6325
- Restart stalled ACP bridge for channels by @qqqys in #6330
- docs(design): daemon side-channel coordination (A1/A2/A4/A5) by @chiga0 in #4511
- docs: fix skill invocation syntax and include Feishu in channel lists by @DragonnZhang in #6320
- feat(scheduler): opt-in per-tool-call execution timeout by @minmax in #6124
- feat(web-shell): add onSessionChange and onSubmitBefore callbacks by @ytahdn in #6333
- feat(core): stabilize tool schema declaration order by @water-in-stone in #6339
- Fix incorrect context window calculation for custom models by @heyparth1 in #6266
- feat(core): model fallback chain — auto-switch to backup models on overload by @yiliang114 in #6273
- fix(core): preserve OpenAI reasoning as raw thoughts by @han-dreamer in #6192
- fix(core): add UTF-8 prefix for cmd.exe on Windows by @Aleks-0 in #6216
- feat(cli): support multi-folder workspaces in file system boundary checks by @yiliang114 in #6278
- feat(web-shell): support icon chips for mention tags by @BZ-D in #6337
- Feat: LSP Server support hot reload by @water-in-stone in #5953
- fix(cli): allow queued input during compression by @han-dreamer in #6336
- fix(web-shell): finalize deferred gated submissions by @ytahdn in #6342
- feat(cli): Add large pipe frame measurement by @doudouOUC in #6335
- [codex] add proactive channel loop tools by @qqqys in #6287
- fix(cli): smoother live streaming preview — drop "generating more" cue, hold back partial table rows by @MikeWang0316tw in #6340
- perf: memoize skill scans, debounce sleep-inhibitor log, guard IDE readdir by @kagura-agent in #6155
- docs: fix settings.json reference drift against schema by @DragonnZhang in #6351
- fix(desktop): preserve glued automation history records by @VectorPeak in #6344
- feat(web-shell): named session groups and color tags in the sidebar by @wenshao in #6350
- fix(web-shell): suppress stale pending prompt refresh errors by @ytahdn in #6352
- feat(web-shell): add a Scheduled Tasks management page by @wenshao in #6348
- docs(web-shell): document chart renderer integration by @zhangxy-zju in #6353
- feat(web-shell): show Settings and Daemon Status as an in-place panel by @wenshao in #6341
- ci(autofix): move agent prompts into a project skill by @yiliang114 in #6306
- fix(web-shell): constrain virtual scroll rows by @ytahdn in #6362
- fix(cli): Allow ACP local fallback reads from /tmp by @doudouOUC in #6370
- test(core): keep context warning test aligned with default token limit by @yiliang114 in #6391
- fix(core): default context windows to 200k by @tanzhenxin in #6387
- feat(web-shell): add token-usage analytics dashboard to Daemon Status by @wenshao in #6388
- feat(cli): Add Phase 1 workspace runtime registry by @doudouOUC in #6394
- fix(triage): exclude test files from core module size gate and distinguish feat from refactor by @yiliang114 with @Copilot in #6369
- fix(cli): Keep model picker entries contiguous in short terminals by @tanzhenxin in #6359
- fix(core): Include request IDs in OpenAI error logs by @tanzhenxin in #6379
- fix(cli): ignore current review run in presubmit CI by @yiliang114 in #6397
- fix(autofix): improve review addressing and verification by @yiliang114 in #6382
- fix(core): require integer ReadFile pagination params by @VectorPeak in #6381
- feat(core): surface PreToolUse hook 'ask' as a TUI confirmation by @LaZzyMan in #5629
- fix(core): resolve symlinks when matching conditional rules and skills by @DennisYu07 in #6371
- fix(web-shell): refine tool detail presentation by @ytahdn in #6399
- fix(core): preserve no-argument tool calls that stream an empty arguments string by @tomsen-ai in #6250
- feat(review): add issue-fidelity and root-cause ownership gate to /review by @DragonnZhang in #6395
- fix(cli): use EnvHttpProxyAgent in channel proxy to respect NO_PROXY (#6401) by @qwen-code-dev-bot in #6405
- fix(daemon): Handle settings reload events outside transcript by @doudouOUC in #6407
- Handle missing web-shell sessions without redirecting by @ytahdn in #6357
- docs: document PreToolUse hook permissionDecision "ask" behavior by @DragonnZhang in #6411
- feat(cli): Add Phase 2a workspace foundation by @doudouOUC in #6410
- fix(memory): don't advance AutoMemory extract cursor when the agent makes zero tool calls by @lcheng321 in #6398
- fix(core): gate image payload replacement behind threshold by @LaZzyMan in #6380
- feat(web-shell): add Session Overview panel and in-window split view by @wenshao in #6400
- fix(review): remove qwen-code-specific core-infra gate from bundled /review by @DragonnZhang in #6412
- fix(web-shell): polish scheduled task timeline UI by @callmeYe in #6386
- fix(cli): smoother streaming table rendering by @MikeWang0316tw in #6345
- fix(core): Gate large PDF text extraction by @doudouOUC in #6409
- feat(cli): add --project and --global flags to /model for per-project model persistence by @Alex-ai-future in #6060
- perf(core): Add session start profiler by @doudouOUC in #6349
- feat(core): add maxSubAgents setting to limit parallel sub-agent count by @yiliang114 in #6354
- fix(core): allow rewind after compressed history by @yiliang114 in #6358
- fix(core): align monitor limit parameter schemas by @VectorPeak in #6413
- fix(core): prevent KV-cache invalidation on tool_search by reordering reminderParts by @Aleks-0 in #6420
- docs: consolidate design docs and plans under docs/ by @DragonnZhang in #6417
- fix(shell): avoid Unix pager default on Windows by @han-dreamer in #6390
- feat(scheduled-tasks): run each task in its own dedicated, named session by @wenshao in #6389
- feat(cli): support stacked slash-skill invocations by @DennisYu07 in #6361
- feat(core): add Tool(param:value) permission syntax for parameter-level access control by @DennisYu07 in #6106
- fix(daemon): preserve user message source metadata by @callmeYe in #6385
- feat(core): add tools.visible config for selective deferred-tool visibility at startup by @Aleks-0 in #6372
- fix(core): prevent re-invoking loaded skill from appending duplicate content by @DennisYu07 in #6430
- fix(web-shell): keep split-view session list fresh and preserve panes across view switches by @wenshao in #6418
- feat(web-shell): add Qwen logo beside the sidebar new-chat button by @wenshao in #6437
- fix(web-shell): Improve user tags and mobile menu layout by @yuanyuanAli in #6441
- fix(web-shell): keep errored turns expanded by @ytahdn in #6424
- fix(web-shell): clear stale floating todos by @ytahdn in #6425
- Avoid refreshing session activity on load by @yiliang114 in #6439
- fix(web-shell): hide rotating loading phrase in split-view pane status by @wenshao in #6447
- fix(core): Support large text range reads by @doudouOUC in #6404
- fix(core): strip system-reminder blocks from session title and recap side-query prompts by @yiliang114 in #6435
- Upgrade GitHub Actions for Node 24 compatibility by @salmanmkc in #5157
- fix(autofix): report review handoff failures by @yiliang114 in #6415
- fix(monitor): preserve inherited git pager by @han-dreamer in #6429
- fix(serve): classify interrupted model stream errors by @ytahdn in #6422
- fix(web-shell): refine tool call summaries by @ytahdn in #6450
- fix(web-shell): split-view pane fixes (remove "current" badge, clear composer on send) by @wenshao in #6454
- feat(web-shell): add column reorder, resize, and freeze controls to markdown table by @jifeng in #6444
- feat(channels): add WeCom intelligent robot channel by @qqqys in #6436
- [codex] add natural channel memory intents by @qqqys in #6376
- perf(cli): defer startup prefetch tasks by @water-in-stone in #6303
- feat(web-shell): unify scheduled task sessions — bind chat-created tasks + clock icon by @wenshao in #6453
New Contributors
- @barry166 made their first contribution in #6274
- @minmax made their first contribution in #6123
- @Nas01010101 made their first contribution in #6288
- @beantownbytes made their first contribution in #6271
- @heyparth1 made their first contribution in #6266
- @Aleks-0 made their first contribution in #6216
- @guiyang882 made their first contribution in #6367
- @tomsen-ai made their first contribution in #6250
Full Changelog: v0.19.6...v0.19.7