What's Changed
- fix(goal): converge the three continuation prompts on one guarded contract by @qqqys in #9834
- feat(core): require an explicit user opt-in before the model launches a workflow by @qqqys in #9806
- fix(review): ban unexecuted mutation claims in coverage briefs by @wenshao in #9923
- fix(ci): scope workflow-size ratchet to the PR that grew the file by @wenshao in #9931
- feat(review): run the reviewed repository's own commands behind a container (#9556) by @wenshao in #9723
- feat(core): add a per-project outside-repo artifact landing by @wenshao in #9776
- fix(web-shell): reduce streaming thought render jank by @ytahdn in #9914
- feat(review): report findings to clients as a typed contract by @wenshao in #9794
- fix(ci): neutralize legacy ##[ commands in autofix stdout echoes by @wenshao in https://github.com//pull/9871
- fix(core): refuse a workflow script before it can spend anything by @qqqys in #9873
- feat(review): engage the severity floor early on a sustained convergence signal (#9903) by @wenshao in #9938
- fix(serve): Repair persisted session lifecycle by @doudouOUC in #9626
- fix(cli): degrade gracefully when messageRewrite.promptFile cannot be read by @yiliang114 in #9753
- fix(webui): hydrate Goal independently of session metadata by @ytahdn in #9977
- test(core): pin transport retry diagnostics and correct the replay-safety comment by @ComplexSimply in #8861
- refactor(core): break config client runtime cycle by @DragonnZhang in #9959
- refactor(cli): reuse trusted workspace runtime resolver by @DragonnZhang in #9958
- feat(desktop): remove the Electron package after OpenWork fork; keep the Tauri upgrade bridge by @yiliang114 in #9085
- fix(goal): resume an evidence-limited Goal from a fresh window by @qqqys in #9840
- chore(github): add @qqqys as core package codeowner by @yiliang114 in #9982
- feat(daemon): Add ACP channel transport liveness by @doudouOUC in #9976
- fix(core): allow scoped Git credential config by @callmeYe in #9870
- feat(channels): add DingTalk Workspace channel by @qqqys in #9394
- fix(session): preserve source titles when branching by @water-in-stone in #9764
- fix(telemetry): restore usage aggregate when a session swap fails by @yiliang114 in #9844
- fix(channels/qqbot): key the cron textChunk guard on active prompts, not streamState by @yiliang114 in #9971
- fix(cli): mark estimated compression token counts in banners by @yiliang114 in #9568
- fix(core): emit OpenRouter's reasoning disable when thinking is off by @yiliang114 in #9758
- fix(core): validate skill commands against the live provider to survive late attach by @yiliang114 in #9824
- fix(cli): keep in-flight tool calls pending during live session replay by @yiliang114 in #9705
- test(cli): teach session-swap telemetry fakes the /branch title prerequisites by @yiliang114 in #9998
- fix(core): reject unverifiable validated read inodes by @AaronZ345 in #9857
- feat(review): add a --topology minimal single-pass A/B arm by @wenshao in #9919
- feat(cli): Manage agent view session lifecycle by @ZijianZhang989 in #9986
- fix(review): the sandbox default named an image that does not exist by @wenshao in #9972
- fix(web-shell): localize vision bridge notices by @ytahdn in #10003
- fix(web-shell): allow reasoning selection before session creation by @callmeYe in #10008
- refactor(acp-bridge): narrow workspace event capabilities by @DragonnZhang in #9957
- refactor(web-shell): extract shared contexts by @DragonnZhang in #9954
- fix(core): subordinate the coordinate skill's teammate count to the configured cap by @yiliang114 in #9403
- fix: repair the Windows and macOS test lane failures by @wenshao in #9728
- fix(ci): give the macOS and Windows lanes a trigger again by @wenshao in #9370
- fix(core): make permissions.allow restrict the tool schemas sent to the model by @yiliang114 in #9829
- fix(webui): preserve hydrated Goal state during event startup by @ytahdn in #10012
- refactor(web-shell): reuse canonical todo parser by @DragonnZhang in #9956
- fix(cli): graft the review anchor forward across fail-closed rounds by @wenshao in #9932
- feat(goal): make get_goal's default view a summary instead of the whole catalog by @qqqys in #9973
- refactor(cli): remove unused EnumSelector component by @qqqys in #9997
- fix(live): restore Live Host after desktop removal by @yiliang114 in #9994
- fix(goal): cite this turn's delivered output instead of refusing over it by @qqqys in #9880
- fix(serve): let channel workers reach TLS-enabled daemons by @qqqys in #9392
- feat(goal): stop a Goal whose checkpoints stall three times in a row by @qqqys in #9975
- fix(cli): drop duplicate fake properties breaking the main build by @yiliang114 in #10022
- fix(core): register report_findings in the permission alias table by @yiliang114 in #10033
- feat(web-shell): make compact view the only mode by @ytahdn in #9993
- fix(cli): preserve bridge timeouts for mid-turn media by @ytahdn in #9995
- ci: take the macOS and Windows lanes off pull requests by @wenshao in #10059
- fix(mcp): recover restarted HTTP MCP servers in-session and in CLI by @yiliang114 in #9962
- fix(core): sync loaded-skill state with history eviction by @ZijianZhang989 in #9500
Full Changelog: pr-9806-verification-assets...v0.22.2-preview.1