What's Changed
- refactor(managed-agent): Share the session event delivery loop by @doudouOUC in #15952
- ci: route the classify_pr gate to ECS for every pull request by @yiliang114 in #16019
- fix(core): delete the OAuth refresh lock only when owned by @2SinceJuly in #15661
- fix(core): keep uniquely named MCP tools when names collide by @2SinceJuly in #15757
- fix(web-shell): expose the Plugins back control without the navigation rail by @2SinceJuly in #15651
- fix(core): reject LSP queries when no server is ready by @404khai in #15946
- fix(verify-pr): count test suites apart from the round's assertions by @wenshao in #16013
- test(autofix-pr): run a watch's helpers in a chain against a fake gh by @wenshao in #16017
- feat(web-shell): add conversation activity view by @deggs7 in #16022
- fix(cli): keep a long /btw answer readable in a bounded viewport by @2SinceJuly in #15982
- test(managed-agent): assert A3 sibling call binding by @wang1408 in #15995
- fix(verify-pr): count suite runs and skip notices on closed PRs by @wenshao in #16050
- docs(serve): refresh daemon usage guidance by @wenshao in #16056
- docs(readme): add daemon mode quickstart by @wenshao in #16053
- fix(core): keep the whole Kimi K3 generation at a 1M context window by @wenshao in #16048
- fix(review): keep prose re-review requests aimed at the PR by @wenshao in #15998
- feat(web-shell): add "Add to Split View" to session menus (R1 fixes for #14878) by @4ekuct25 in #15956
- test(opentui): run the Windows preview installer suite through cmd.exe by @yiliang114 in #16028
- fix(sandbox): install fonts-dejavu-core so capture cards render legibly by @yiliang114 in #16032
- fix(web-shell): move Workflow controls into the composer menu by @qqqys in #16047
- refactor(managed-agent): Separate runtime broker execution workflows by @doudouOUC in #16029
- fix(managed-agent): block ledger-less agent gap fills and pin the A6 refusal arms by @wenshao in #16015
- fix(managed-agent): correct the child result mirror on consumption by @wenshao in #16074
- refactor(managed-agent): Inject store dependencies through constructors by @doudouOUC in #16061
- test(managed-agent): gate the expired-cursor resync answer by @wenshao in #16076
- fix(core): use the amend delta for loosely spelled amend commits by @yiliang114 in #16073
- fix(core): settle the loop reminder delivery at the model-acceptance boundary by @suzhiguo7 in #15559
- fix(core): don't treat fd duplication (2>&1) as a file write in shell permission checks by @Suaroman in #15681
- refactor(managed-agent): Extract runtime execution dispatcher by @doudouOUC in #16084
- test(managed-agent): gate the two-server first release refusal by @wenshao in #16089
- fix(web-shell): sanitise goal approval text and edit paths by @yiliang114 in #16080
- fix(web-shell): surface Managed session list failures by @yiliang114 in #16082
- fix(managed-agent): keep javadoc valid after the module split by @doudouOUC in #16099
- test(managed-agent): gate detach while a tool result is unknown by @wenshao in #16098
- test(managed-agent): Reconnect Hosted fault probes to execution owners by @doudouOUC in #16101
- fix(web-shell): put the list-failure notice under the tabs, not above them by @yiliang114 in #16104
- fix(managed-agent): reach the listeners the server resolves in upgrade start and verify by @wenshao in #16051
- docs(managed-agent): reconcile the structure-review ledger with the broker extraction by @wenshao in #16109
- feat(web-shell): show request success rate and distinct model colors in token usage by @qqqys in #16108
- fix(web-shell): tighten mobile composer layout by @ytahdn in #16103
- fix(vscode): bucket session history by calendar week by @yiliang114 in #16097
- fix(review): name the model half in the anchor re-run and drop the retired range model by @yiliang114 in #16094
- test(cli): guard settings reference against schema drift by @yiliang114 in #16085
- feat(web-shell): show a dismissible Workflow chip and menu summary by @qqqys in #16107
- test(install): pin Windows PATH persistence contract by @yiliang114 in #16072
- feat(web-shell): plot per-request speed and failures in token usage by @qqqys in #16111
- fix(ci): repair Javadoc for the 0.26.5 managed runtime release by @doudouOUC in #16114
- feat(acp): run re-entered, channel and Goal-proposal turns on the shared loop by @qqqys in #15902
- feat(mods): run prompt.submit hooks in headless runs by @qqqys in #15905
- docs(managed-agent): record the completed store constructor injection in the ledger by @wenshao in #16118
- fix(desktop): stop the bundled runtime from the Windows installer by @yiliang114 in #16071
- fix(channels): allow request owners to answer one-time tool permissions by @BenGuanRan in #16087
- fix(desktop): verify AppImage library closure by @yiliang114 in #16062
- refactor(managed-agent): split Agent and Session stores by @doudouOUC in #16090
- feat(desktop): build and publish rpm installers by @yiliang114 in #16060
- fix(mods): skip hooks on prompt.paint and ui.place instead of failing by @qqqys in #16124
- feat(web-shell): make GitHub channel configuration usable by @wenshao in #16096
- fix(mcp): warn about disabled tool typos on every discovery path by @yiliang114 in #16120
- fix(managed-agent): Restore profile-owned runtime verification by @doudouOUC in #16134
- fix(core): attribute background shell notifications to the registering turn by @yiliang114 in #16125
- fix(core): report redirects on cd segments by @yiliang114 in #16129
- feat(verify-pr): inherit --publish consent on same-session re-verification by @wenshao in #16112
- feat(ci): let the PR review canary cohort carry its own endpoint by @yiliang114 in #16130
- refactor(managed-agent): trim store delegation boilerplate by @doudouOUC in #16142
- test(autofix-pr): re-run a timed-out job and lose its answer in the chain test by @wenshao in #16138
- refactor(managed-agent): Make runtime backends optional Maven modules by @doudouOUC in #16141
- fix(ci): repair desktop RPM dependency and teardown checks by @yiliang114 in #16154
- fix(acp-bridge): compact live tool-result displays for session replay by @wenshao in #16172
- fix(ci): interleave PR review endpoint cohorts and report final routes by @yiliang114 in #16151
- fix(serve): keep record_artifact guidance out of Managed Runtime worker results by @wenshao in #16148
- fix(web-shell): bind config sync to the attachment, not the SSE stream by @wenshao in #16170
- refactor(managed-agent): simplify row locking and runtime verification by @doudouOUC in #16139
- feat(config): add operator model catalog refresh switch by @yiliang114 in #16066
- refactor(managed-agent): narrow the four deferred store consumers to their role interfaces by @wenshao in #16121
- test(permissions): cover persistent rule removal by @TYY-2005 in #13818
- test(core): pin hook error-text redaction with value-level assertions by @RunMintOn in #11785
- feat(managed-agent): support full model configuration at session creation by @doudouOUC in #16153
- test(managed-agent): reserve Hosted gate ports below the ephemeral range by @wenshao in #16174
- feat(acp): run Goal turns on the shared loop by @qqqys in #16131
- fix(core): avoid unsupported forced Anthropic tool selection by @Adkid-Zephyr in #15558
- feat(web-shell): show a Channel event timeline by @wenshao in #16106
- feat(verify-pr): add local Docker recipe with a host-side model proxy by @wenshao in #16077
- test(cli): pin same-turn shell notification delivery by @yiliang114 in #16176
- feat(mods): run prompt.submit hooks in the Ink terminal by @qqqys in #16180
- fix(web-shell): handle image URL pastes and unavailable files by @ytahdn in #16179
- fix(core): require explicit trust for project frontmatter and LSP by @yiliang114 in #16182
- feat(web-shell): add host mount entries and align managed empty-state layout by @yiliang114 in #15928
- feat(serve): enable remote access from settings without restarting by @yiliang114 in #15887
- feat(acp): run cron and background-notification turns on the shared loop by @qqqys in #16190
- ci(e2e): run the nightly suite with the unified agent loop on by @qqqys in #16192
- fix(core): honor Anthropic transport timeout configuration by @yiliang114 in #16193
- fix(serve): address remote-access review findings R1-6/R1-7/R1-9/R1-11 by @yiliang114 in #16199
- fix(web-shell): avoid composer focus after touch navigation by @ytahdn in #16198
- fix(cli): run the bundled generated-ui server in Node mode under Electron by @yar3333 in #16064
- refactor(managed-agent): align shared MySQL schema conventions by @doudouOUC in #16143
- fix(acp-bridge): stop session-lifetime races from retaining every result by @Sumire-no-kai in #15347
- fix(managed-agent): keep workspace execution off the tenant lock by @doudouOUC in #16205
- docs(release): explain hosted-runner queueing for publish by @yiliang114 in #16194
- fix(vscode): keep the embedded-bundle guard failure a readable assertion by @yiliang114 in #16210
- fix(core): require explicit trust for settings-file project hooks by @yiliang114 in #16196
- feat(managed-agent): allow concurrent workspace uploads by @doudouOUC in #16212
- fix(core): keep the model name when an OpenRouter id carries the exacto variant tag by @Shizoqua in #16165
- feat(channels): deliver GitHub events to PR-bound sessions by @wenshao in #16117
- fix(core): treat grep -n as a flag so its file reads are still checked by @kabishou11 in #14383
- perf(managed-agent): take resident claim off the tenant lock by @doudouOUC in #16217
- refactor(managed-agent): narrow EmbeddedRuntimeBroker to SessionQueryStore by @wenshao in #16216
- fix(core): attribute monitor and workflow notifications to the registering turn by @yiliang114 in #16177
- feat(web-shell): edit GitHub repository settings from the channel editor by @wenshao in #16149
- perf(managed-agent): take turn admission off the tenant lock by @doudouOUC in #16223
- docs(managed-agent): reconcile structure-review ledger with the landed store decomposition by @wenshao in #16230
- perf(managed-agent): take harness admission checks off the tenant lock by @doudouOUC in #16221
- test(integration): install the local extension fixture from a subdirectory by @yiliang114 in #16222
- test(managed-agent): refresh concurrent membership snapshot by @doudouOUC in #16240
- perf(managed-agent): reuse local workspace file capability probes by @doudouOUC in #16229
- fix(ci): probe the apt mirror so mainland E2E hosts can build the sandbox image by @yiliang114 in #16218
- test(integration): give the ACP parity rig a scratch runtime directory by @yiliang114 in #16224
- fix(channels): scope the poll cursor file to the workspace by @wenshao in #16231
- perf(managed-agent): take session commands off the tenant lock by @doudouOUC in #16225
- fix(ci): drop the healthy-default apt gate and prefer the VPC intranet mirror by @yiliang114 in #16260
- fix(ci): run desktop smoke headless on rpm roots without Xvfb by @yiliang114 in #16211
- test(integration): keep ACP parity runtime state out of the workspace (#16251) by @qwen-code-dev-bot in #16254
- fix(ci): resume linter archive downloads by @yiliang114 in #16067
- fix(ci): repin the RHEL 10 rpm root to the current stream10 digest by @yiliang114 in #16261
- perf(managed-agent): queue journal commits on the Session row instead of the tenant lock by @doudouOUC in #16256
- perf(managed-agent): narrow output, lifecycle, and storage lock scopes by @doudouOUC in #16268
- test(integration): compare the ACP parity workspace home to its pre-run listing by @wenshao in #16266
- fix(test): wait for the RocketMQ port listener to clear after stop by @qwen-code-dev-bot in #16252
- ci: shard the Linux unit tests and web-shell smoke, and reuse cached builds by @sorrycc in #16133
- fix(core): preserve Gemini thought signatures for tool replay by @doudouOUC in #16270
- feat(mods): run prompt.submit hooks in the OpenTUI terminal by @qqqys in #16195
- feat(cli): run the Ink TUI's model rounds on the shared loop's round by @qqqys in #16206
- fix(core): recognize Hugging Face TGI context overflow errors so reactive compaction runs by @Shizoqua in #16245
- fix(core): accept images for Qwen2-VL, Qwen2.5-VL and QVQ models the catalog does not list by @Shizoqua in #16247
- test(web-shell): wait for the restored card before clicking continue by @yiliang114 in #16286
- test(interactive): share one CI-scaled wait policy across the TUI suites by @yiliang114 in #16276
- test(e2e): accept both plan-mode wordings in the ACP case by @yiliang114 in #16273
- test(managed-agent): ratchet persistence and runtime-broker class sizes by @wenshao in #16284
- feat(web-shell): collapse channel editor tuning behind advanced settings by @wenshao in #16239
- fix(daemon): automatically discover config Skills changes by @callmeYe in #16262
- fix(mods): skip hooks on ui.backdrop instead of failing by @qqqys in #16289
- fix(cli): derive context tool details from declared schemas by @callmeYe in #16292
- fix(managed-agent): enforce strict SQL mode per embedded connection by @doudouOUC in #16288
- fix(ci): widen the built-tree download window for eight shards by @yiliang114 in #16285
- fix(ci): fail Java lanes before disk exhaustion by @yiliang114 in #16068
- fix(managed-agent): use current state for approval changes by @doudouOUC in #16296
- fix(managed): Reap Git descendants before terminating parents by @doudouOUC in #16298
- fix(cli): gate project hooks behind an approval dialog by @TianYuan1024 in #14748
- perf(managed-agent): separate workspace reads from durable admission by @doudouOUC in #16283
- test(acp): expect the scheduler's plan-mode notice on the shared loop by @qqqys in #16305
- fix(managed-agent): reject dangling Hosted cleanup references by @doudouOUC in #16275
- fix(web-shell): express the PR watch events dependency in the channel editor by @wenshao in #16236
- feat(web-shell): link GitHub PR/Issue targets in channel events by @wenshao in #16226
- fix(serve): read PR sidecars directly for the bindings snapshot by @wenshao in #16241
- fix(managed-agent): restore JournalCommit under its class-size ratchet by @wenshao in #16323
- perf(managed-agent): avoid storage locks in read preflight by @doudouOUC in #16312
- perf(managed-agent): index the Runtime slot lookup by isolation key by @wenshao in #16325
- fix(ci): pin COREPACK_HOME for Linux test shards on cold-HOME runs by @yiliang114 in #16328
- fix(managed-agent): bound runtime thread pools by @doudouOUC in #16330
- perf(managed-agent): share the storage fence in session command admissions by @doudouOUC in #16329
- feat(channels): role-aware action templates for GitHub bound-session delivery by @wenshao in #16258
- fix(managed-agent): refuse every URL fetch refuses and say why a health probe failed by @wenshao in #16110
- fix(cli): keep project hook approval env inside the workspace by @yiliang114 in #16316
- fix(verify-pr): post flaky demotions on closed PRs and pin the blank class by @wenshao in #16135
- docs: configure Qwen3.x served under a custom model name by @spped2000 in #16342
- fix(managed-agent): find the Flyway scripts in the module jar the server ships them in by @wenshao in #16175
- fix(managed-agent): harden capacity recovery and clean up Java conventions by @doudouOUC in #16318
- perf(managed-agent): take ordinary tool publication and read leases off the tenant lock by @doudouOUC in #16335
- fix(ci): clear the pinned corepack cache before every install by @wenshao in #16351
- perf(core): defer workflow tool schemas by default by @callmeYe in #16310
- perf(managed-agent): narrow queue dispatch and workspace session creation locks by @doudouOUC in #16327
- perf(managed-agent): take ordinary publication lanes off the placement guard by @doudouOUC in #16354
- feat(cli): run the Ink TUI's tool batches on the shared loop's batch by @qqqys in #16304
- perf(memory): move the main session's auto-memory guidance into a bundled skill by @qqqys in #16303
- fix(core): headless project-hook trust requires the folder-trust feature by @yiliang114 in #16264
- feat(mods): let a Mod submit a prompt of its own in headless runs by @qqqys in #16302
- test(sdk): read before an approved write in the tool-control E2E tests by @qqqys in #16366
- feat(managed-agent): allow concurrent workspace rewinds by @doudouOUC in #16369
- perf(managed-agent): remove ordinary journal and publication storage locks by @doudouOUC in #16370
- fix(web-shell): align welcome models and make UI language sessionless by @liuxuely0626 in #16297
- test(managed-agent): declare v2 reader in the cleanup-conflict MySql IT by @yiliang114 in #16372
- feat(channels): edit bound-session action templates on demand by @wenshao in #16349
- feat(serve): allow configuring the Conversations working-directory root by @jkxiao in #16105
- fix(channels): keep GitHub notifications unread on transient thread errors by @wenshao in #16333
- fix(cli): stop Agent Host disconnects being undone and report unsaved joins by @wenshao in #16156
- feat(cli): end the Ink TUI's shared tool batch on the TUI's own stops by @qqqys in #16365
- feat(web-shell): link channel event rows to their sessions by @wenshao in #16375
- test(managed-agent): fix busy-storage assertion broken by #16369 by @yiliang114 in #16382
- test(ci): pin the zero-skip timeout shape in awaitTwoSkipLines by @yiliang114 in #16384
- fix(core): tell the model the date once, from the history by @qqqys in #16362
- test(web-shell): pin the rewind capacity-latch re-open by @yiliang114 in #16358
- feat(mods): run the prompts a Mod submits in the Ink terminal by @qqqys in #16373
- feat: add Qwen subscription support across CLI, VS Code, and Desktop by @liuxuely0626 in #16378
- fix(cli): preserve raw context usage estimates by @callmeYe in #16360
- fix(serve): serve qualified hooks status for untrusted workspaces by @yiliang114 in #16388
- test(managed-agent): gate lifecycle-v2 close with a stopped worker by @wenshao in #16123
- fix(cli): land a Web Shell update on the current latest release by @wenshao in #16374
- fix(channels): keep GitHub replies hit by a secondary rate limit by @wenshao in #16334
- test(review): pin the carried-ledger carrier order and fail-open arms (#10464) by @yiliang114 in #16395
- perf(serve): keep the ACP spawn channel out of Managed Runtime workers by @wenshao in #16235
- fix(cli): forward the folder-trust store into the container sandbox by @yiliang114 in #16390
New Contributors
- @404khai made their first contribution in #15946
- @wang1408 made their first contribution in #15995
- @suzhiguo7 made their first contribution in #15559
- @Suaroman made their first contribution in #15681
- @TYY-2005 made their first contribution in #13818
- @RunMintOn made their first contribution in #11785
- @Adkid-Zephyr made their first contribution in #15558
- @sorrycc made their first contribution in #16133
- @spped2000 made their first contribution in #16342
- @liuxuely0626 made their first contribution in #16297
Full Changelog: desktop-v0.26.5...desktop-v0.26.8