What's Changed
- fix(ci): surface blocked autofix takeover admission by @qqqys in #8410
- docs: document serve sub-session concurrency settings by @DragonnZhang in #8404
- fix(web-shell): discard stale automatic recaps by @carffuca in #8573
- fix(core): fail closed on zero inode file cache by @xianjianlf2 in #8290
- feat(review): say so when the bundle is older than the review it runs by @wenshao in #8390
- fix(core): bound backward transcript pages in long single-turn sessions by @wenshao in #8553
- feat(serve): observe daemon and child memory against real denominators by @doudouOUC in #8423
- feat (web-shell): throttle Markdown AST parsing during streaming by @PratikWayase in #7904
- fix(core): report signal-terminated shell commands as errors by @daleselaji-dev in #8501
- feat(core): share compression caches with OpenAI providers by @DragonnZhang in #8418
- fix(ci): prevent npm cache producer from poisoning runners by @yiliang114 in #8669
- fix(serve): Allow approved same-host text reads outside workspace by @doudouOUC in #8620
- fix(autofix): skip the PAT-backed jobs when the run has no secrets by @wenshao in #8671
- fix(triage): finalize the status comment on cancellation too by @wenshao in #8436
- feat(core): share compression cache with Gemini and Vertex AI by @DragonnZhang in #8425
- feat(channels): support group pairing by @qqqys in #8440
- fix(cli): preserve slash command names in narrow terminals by @carffuca in #8657
- feat(review): add qwen-code repository context manifest by @wenshao in #8654
- feat(dingtalk): include non-bot mention target identifiers in inbound context by @BenGuanRan in #8639
- fix(tests): avoid blocking the Vitest worker during directory E2E by @wenshao in #8685
- fix(cli): time out silent MCP SSE startup by @daleselaji-dev in #8555
- fix(channels): manage DingTalk interactive card config by @BenGuanRan in #8517
- perf(autofix): stop restoring a 2.65 GB npm cache to protect a 29 s install by @wenshao in #8681
- fix(ci): give review runs upstream-timeout headroom by @wenshao in #8673
- feat(autofix): bridge fork-PR reviews into the credentialed review lane by @wenshao in #8676
- fix(desktop): strip Windows verbatim prefix from workspace paths by @yiliang114 in #8619
- fix(desktop): fall back to system browser when built-in browser fails to open a link by @yiliang114 in #8594
- fix(cli): Run ACP agent fan-outs concurrently and past the tool-call cap by @wenshao in #8631
- feat(feishu): enrich observed contact labels by @BenGuanRan in #8569
- feat(web-shell): improve parallel agent activity feedback by @carffuca in #8559
- feat(external-context): Add optional Mem0 memory writes by @doudouOUC in #8507
- fix(web-shell): keep mobile composer at chat pane bottom by @dreamWB in #8601
- fix(core): record the delivered prefix when a transport cut is continued by @harjothkhara in #8624
- perf(ci): run docs-only automatic reviews at medium effort by @wenshao in #8648
- fix(memory): Refresh live instructions after memory writes by @ZijianZhang989 in #8640
- feat(telemetry): attribute daemon-spawned sessions via channel (daemon/desktop) by @yiliang114 in #8670
- fix(qqbot): harden group sender attribution by @zjunothing in #8477
- fix(cli): keep stream-json sessions alive after interrupt by @zjunothing in #8509
- fix(tests): apply integration worker limits to forks by @wenshao in #8689
- fix(acp): emit standard context usage updates by @zjunothing in #8528
- docs: add Aliyun Model Studio CLI (bailian-cli) to Ecosystem section by @Maddock-MDF in #8710
- fix(core): refresh MCP session metadata without reconnecting by @zjunothing in #8522
- perf(review): move remote matching into CLI by @wenshao in #8658
- docs: clarify reusable SDK queries after interruption by @DragonnZhang in #8711
- fix(cli): report zero-height VP items so collapsed thoughts release reserved space by @chiga0 in #8570
- fix(core): preserve timeout retry metadata by @zjunothing in #8531
- fix(core): separate hook context from transcript display by @destire-mio in #7948
- feat(web-shell): install Extensions from archives by @callmeYe in #8621
- fix(tests): avoid blocking integration test cleanup by @wenshao in #8688
- fix(review): stop the agent transcript from executing workflow commands by @wenshao in #8683
- feat(channels): add Feishu ask-user question cards by @BenGuanRan in #8578
- feat(workflows): add cooperative pause and resume by @qqqys in #8320
- fix(cli): echo resume command to main screen on exit by @chiga0 in #8455
- fix(ui): show persistent queued-count badge in Footer by @qwen-code-dev-bot in #8667
- fix(cli): let ESC cancel ongoing work before popping queued messages by @C0d3N1nja97342 in #8353
- fix(core): use Singapore Token Plan DeepSeek model id by @zjunothing in #8705
- fix(ci): keep the review workflow under the expression-length limit by @wenshao in #8720
- feat(serve): Expose active work state by @doudouOUC in #8588
- perf(ci): make the autofix fleet caps operator-tunable and raise them by @wenshao in #8731
- feat(core): checkpoint long-running Goal evidence by @qqqys in #8465
- fix(security): honor explicit distrust over inherited trust by @daleselaji-dev in #8628
- fix(ci): match /review commands followed by a newline by @wenshao in #8723
- perf(review): bake a soft tool-call budget into finder and auditor briefs by @wenshao in #8708
- fix(ci): enter Critical-only mode after five change rounds by @wenshao in #8751
- fix(cli): scrub inherited loader env vars from daemon session subprocesses by @wenshao in #8663
- fix(integration-tests): make the project typecheckable and fix what that found by @doudouOUC in #8693
New Contributors
- @daleselaji-dev made their first contribution in #8501
- @Maddock-MDF made their first contribution in #8710
Full Changelog: v0.21.7...v0.21.8