What's Changed
- feat(managed): add session permission rules and Auto approval by @doudouOUC in #15448
- fix(cli): harden serve token resolution against project env injection by @yiliang114 in #15228
- feat(core): add an experimental shared agent loop and run headless on it by @qqqys in #15369
- fix(cli): align OpenTUI cancellation and retry with Ink by @chiga0 in #15283
- test(managed-agent): assert web_fetch in the Hosted workspace gate fixture by @yiliang114 in #15451
- fix(vscode): leave edit mode after a refused edit by @yiliang114 in #15439
- fix(rewind): resolve legacy turns by source identity by @yiliang114 in #13737
- test(cli): cover remaining Managed Workspace activation refusals by @doudouOUC in #15460
- fix(managed-agent): retire registered zombies before startup waits by @doudouOUC in #15459
- feat(core): attribute 千问AI平台 / QwenCloud requests with the source-config header by @yiliang114 in #15041
- fix(cli): preserve arrival order of direct-mode stream-json startup messages by @yiliang114 in #15378
- fix(managed-agent): restore the module and cli lanes after #15448 by @yiliang114 in #15455
- test(managed-agent): correct the CSI inventory column count after #15448 by @yiliang114 in #15469
- docs(design): fix first-run scheduled-task gate examples by @sxl-lucky7 in #15452
- test(managed-agent): retry the team-lead boot past the harness port race by @qwen-code-dev-bot in #15224
- feat(cli): preserve OpenTUI session replay and rewind by @chiga0 in #15384
- fix(cli): preserve checkpoint restore ownership and cold continuation by @chiga0 in #15386
- feat(cli): capture and restore complete OpenTUI checkpoints by @chiga0 in #15389
- fix(cli): run OpenTUI on private Bun 1.4.4 by @chiga0 in #15387
- test(ci): pin the disk-pressure collector revision and FULL_PAYLOAD run bodies by @yiliang114 in #15475
- fix(ci): file main CI failures whose successor has not settled by @yiliang114 in #15471
- test(integration): pin removeScratchDir retry budget with a mutation witness by @yiliang114 in #15488
- test: capture expected disk-full logs by @EthDing in #8549
- fix(web-shell): keep permission rule declarations self-contained by @yiliang114 in #15501
- fix(cli): preserve OpenTUI clipboard source across draft recovery by @chiga0 in #15396
- fix(hosted): preserve primary MySQL isolation failures by @yiliang114 in #15505
- fix(cli): stop double-counting reasoning tokens in cost estimates by @yiliang114 in #15464
- fix(release): bound summary concurrency and refresh release PRs by @yiliang114 in #15500
- fix(web-shell): Prevent duplicate Managed composers by @doudouOUC in #15496
- fix(serve): probe X11 display reachability before advertising the native directory picker by @yiliang114 in #15434
- test(managed-agent): wait for worker exit visibility by @yiliang114 in #15503
- ci(sdk-java): preserve failure reports and SQL causes by @Aling33 in #14910
- test(ci): pin JUnit report upload paths by @barry166 in #15502
- fix(test): budget the standalone runtime suite for the release pool by @qwen-code-dev-bot in #15102
- feat(managed-agent): pool the automation scanner's rows and lease from the claim time by @yiliang114 in #15442
- test(cli): budget hosted approval waits for slow runners (#15176) by @qwen-code-dev-bot in #15183
- fix(cli): refuse an autofix watch a daemon cannot run by @wenshao in #15506
- feat(generated-ui): continue analysis with reviewed parameters by @qqqys in #15333
- fix(web-shell): simplify status when loading phrases are hidden by @deggs7 in #15423
- fix(ci): keep the incremental lint history fetch blobless and visible by @yiliang114 in #15511
- test(cli): budget the hosted approval wait for loaded runners (#15093) by @qwen-code-dev-bot in #15101
- feat(runtime-broker): add HTTP-backed external scratch workers by @yiliang114 in #15261
- fix(ci): preserve independent validation for main push SHAs by @yiliang114 in #15508
- fix(release): authenticate managed OSS preflight by @yiliang114 in #15504
- feat(verify-pr): declare an argument hint for the command prompt by @wenshao in #15463
- fix(ci): run the sdk-java suite before taking the host lock by @qwen-code-dev-bot in #15254
- fix(ci): skip main-failure issues for post-merge reruns (#15239) by @qwen-code-dev-bot in #15250
- feat(managed): add durable mid-turn user message queue by @doudouOUC in #15449
- feat(cli): list /autofix-pr watches and resume them in a later session by @wenshao in #15510
- perf(ci): overlap web-shell and standalone tests with the CLI suite by @wenshao in #15438
- fix(cli): Hide unavailable Managed background tools by @doudouOUC in #15497
- feat(web-shell): create workspaces from a Git URL by @wenshao in #15361
- fix(managed-agent): guard lifecycle renewal scheduling during shutdown (#15208) by @qwen-code-dev-bot in #15231
- perf(memory): retain unchanged legacy catalog snapshots by @yiliang114 in #15246
- fix(runtime): deliver bounded provider images and PDFs by @water-in-stone in #13606
- fix(runtime): unblock independent resident workspaces and tool admission by @doudouOUC in #15457
- fix(web-shell): keep UI language changes out of standalone workspace scope by @wenshao in #15521
- fix(core): handle a failed queued memory extraction rejection by @wenshao in #15338
- fix(ci): run credential-free release fanout on ecs runners by @yiliang114 in #15517
- fix(cli): surface retry classification in headless mode by @yiliang114 in #15515
- feat(managed-agent): give the Hosted Harness its Broker through the environment by @wenshao in #15244
- fix(cli): keep a Web Shell /autofix-pr watch alive through an idle session by @wenshao in #15523
- test(memory): pin recovery-path and hard-rescue catalog accounting by @yiliang114 in #15535
- test(managed-agent): pin the row pool's fan-out, correct its design claims by @yiliang114 in #15528
- test(managed-agent): Add shared Harness Kubernetes qualification tools by @doudouOUC in #15519
- test(cli): pin the lifecycle-protocol refusal on the load route by @yiliang114 in #15536
- test(lint): observe the --setup installer guard by @yiliang114 in #15533
- refactor(core): share the curated catalog-visibility predicate by @yiliang114 in #15534
- fix(memory): delete a turn's catalog snapshot record with the turn by @yiliang114 in #15540
- refactor(core): import the QwenCloud host list instead of repeating it by @yiliang114 in #15532
- fix(ci): price ARM64 fleet lanes from the self-hosted label by @yiliang114 in #15529
- feat(managed-agent): register external Workspace storage ownership by @yiliang114 in #15516
- fix(managed): persist session Todo and project committed task lists by @yiliang114 in #15155
- fix(ci): deepen the incremental lint history until the merge base is provable by @yiliang114 in #15525
- feat(core): skip re-injecting an unchanged UserPromptSubmit hook context block by @yiliang114 in #14129
- fix(lint): group incremental Prettier by the nearest config directory by @yiliang114 in #15531
- feat(mods): observe turn start and completion by @qqqys in #15443
- test(cli): budget the flaky hosted-harness waits through the settle policy by @yiliang114 in #15551
- feat(web-shell): manage extra workspace directories from settings by @wenshao in #15393
- feat(autofix-pr): run the helpers through a tool, and let a confirmed watch's fixes run unattended by @wenshao in #15548
- feat(managed-agent): let the bootstrap set the service account and MySQL up by @wenshao in #15543
- feat(managed-agent): add pinned extension package management by @doudouOUC in #15490
- docs(design): external Hosted Workspace profile (phase 2) by @yiliang114 in #15520
- docs(managed): describe gate scanner capacity under the row pool by @wenshao in #15571
- docs: clarify usage statistics across authentication methods by @sxl-lucky7 in #15554
- feat(managed-agent): support Workspace file uploads by @doudouOUC in #15586
- feat(core): Add durable terminal identity lookup by @doudouOUC in #15566
- test(managed-agent): align S1 acceptance fixtures with runtime contracts by @doudouOUC in #15585
- fix(managed-agent): pass the pool Harness the Broker pair serve removes by @wenshao in #15394
- fix(ci): route the tui-parity changes gate to the ECS pool for trusted PRs by @yiliang114 in #15561
- fix(core): preserve hook dedup across compaction by @yiliang114 in #15575
- test(managed-agent): Fix workspace upload admission fixtures by @doudouOUC in #15588
- fix(mods): pin the Mod contract to Claude Code 2.1.310 by @qqqys in #15560
- feat(acp): run the model round of fresh prompts on the shared agent loop by @qqqys in #15509
- fix(core): preserve hook context deduplication after catalog snapshots by @yiliang114 in #15556
- feat(mods): add ui.render, $.ui.resolve and $.ui.invalidate to the runtime by @qqqys in #15591
- test(runtime-broker): build the extension-profile fixture paths portably by @yiliang114 in #15598
- test(cli): budget the skill-recovery poll through the settle policy by @yiliang114 in #15589
- fix(ci): resolve the pool's Maven dependencies through a domestic mirror by @yiliang114 in #15610
- fix(ci): stop failing the Maven bootstrap on a rate-limited pool egress by @yiliang114 in #15539
- fix(managed-agent): retry read-only attestation after EOF by @doudouOUC in #15608
- feat(web-shell): add plain-text and Markdown reply copying by @ytahdn in #15345
- fix(ci): resolve libfaketime for the host architecture by @yiliang114 in #15609
- fix(ci): bound setup-java on the pool and fall back to the tool cache by @yiliang114 in #15605
- feat(cli): connect OpenTUI voice input to the shared pipeline by @chiga0 in #15617
- feat(ci): canary-split the PR review model by PR number by @yiliang114 in #15538
- feat(daemon): add cached workspace artifact queries and batch removal by @BZ-D in #15594
- fix(web-shell): match cancellation duration to turn summary by @ytahdn in #15615
- feat(managed-agent): add native snapshots and HTTP recovery by @doudouOUC in #15569
- fix(web-shell): hide turn navigation without sufficient gutters by @ytahdn in #15604
- feat(cli): admit Managed Runtime boot-v2 with external storage and publication surface in container mode by @yiliang114 in #15522
- fix(core): stop warning about a placeholder in the attribution header by @yiliang114 in #15636
- feat(tools): let an explicitly configured search backend name its host by @yiliang114 in #15638
- fix(managed-agent)!: simplify Web Shell controls and retire cwd submissions by @doudouOUC in #15616
- feat(cli): align OpenTUI foreground shell controls with Ink by @chiga0 in #15642
- test(lint): pin the .gitignore grouping arm and the batch stride by @yiliang114 in #15640
- docs(qwencloud): document the forced attribution header and pin the admission split by @yiliang114 in #15633
- feat(acp): run the tool batches of fresh prompts on the shared agent loop by @qqqys in #15627
- feat(serve): allow secondary sessions to cd within their workspace by @rockybot2026 in #15323
- feat(mods): draw the band above the prompt in the Ink terminal by @qqqys in #15619
- fix(ci): resolve the pool's Maven dependencies from the intranet mirror by @yiliang114 in #15641
- Pin unknown sed long options by @waybarrios in #15223
- fix: preserve interleaved reasoning in TUI and Chat replay by @DragonnZhang in #15621
- feat(autofix-pr): run an unattended watch's fix agent in the background by @wenshao in #15578
- feat(core): add local managed journal snapshot recovery by @doudouOUC in #15626
- fix(cli): preserve previews and verify installed OpenTUI distribution by @chiga0 in #15655
New Contributors
- @sxl-lucky7 made their first contribution in #15452
- @EthDing made their first contribution in #8549
- @Aling33 made their first contribution in #14910
Full Changelog: v0.26.1...v0.26.2-preview.0