What's Changed
- test(interactive): poll the foreground-shell frame instead of snapshotting it by @yiliang114 in #16455
- test(managed-agent): retarget the lifecycle IT and retry snapshot claim deadlocks by @yiliang114 in #16446
- fix(managed-agent): settle a title the dispatcher claimed first by @yiliang114 in #16447
- feat(hooks): add FileChanged notifications for local sessions by @samuelhsin in #13969
- fix(ci): move audio prebuilds to macOS 15 by @liuxuely0626 in #16464
- fix(web-shell): show readable Skill completion details by @callmeYe in #16451
- feat(ci): make flaky-patrol rerun and no_action decisions visible by @wenshao in #16459
- feat(cli): align managed agent basic tools with daemon by @doudouOUC in #16445
- test(serve): cover the workspace_runtime_stop boot-time conjunction by @yiliang114 in #16469
- test(web-shell): unit-test settings development route by @yiliang114 in #16456
- feat(web-shell): move session search beside the activity toggle by @wenshao in #16467
- fix(ci): refresh host assets on older PR checkouts by @yiliang114 in #16476
- perf(managed-agent): take runtime binding control off the tenant guards by @doudouOUC in #16480
- perf(managed-agent): take tool execution admission off tenant placement by @doudouOUC in #16478
- feat(ci): isolate triage agent credentials and run all triage on ECS by @wenshao in #16468
- fix(web-shell): place the session search right of the activity toggle by @wenshao in #16481
- fix(channels): deliver plain conversation comments to PR-bound sessions by @wenshao in #16416
- docs(design): correct the daemon PR state transitions design by @wenshao in #16487
- fix(managed-agent): lock storage rows through their alias key by @wenshao in #16376
- perf(managed-agent): cache parsed statements on the MySQL pools by default by @wenshao in #16414
- refactor(managed-agent): consolidate storage alias keys and use DigestUtils by @doudouOUC in #16485
- refactor(managed-agent): share JDBC statement helper and reuse JSON mappers by @doudouOUC in #16486
- fix(core): re-read a grown local journal prefix even when its timestamps did not move by @wenshao in #16483
- feat(managed-agent): support concurrent child questions by @doudouOUC in #16484
- feat(cli): have an Ink TUI turn send the round its tool batch continues with by @qqqys in #16428
- fix(core): match one sed character for . and bracket expressions by @2SinceJuly in #15701
- fix(ci): preserve Maven suite results across cache write-back failures by @qwen-code-dev-bot in #15274
- refactor(managed-agent): fold the last CSI statement helper copies by @doudouOUC in #16503
- fix(core): report a cancelled shell as interrupted, not completed by @2SinceJuly in #15836
- refactor(runtime): import inline fully qualified names in runtime modules by @doudouOUC in #16504
- fix(managed-agent): let a late snapshot publication wait for the claim instead of losing deadlocks by @wenshao in #16489
- fix(vscode): keep sibling model settings when writing provider config by @2SinceJuly in #15829
- fix(sdk): name daemon UI tool blocks from _meta.toolLifecycle frames by @yiliang114 in #16306
- fix(cli): surface workflow agent approvals in the interactive TUI (#16425) by @yiliang114 in #16432
- fix(cli): surface stacked-skill overflow in non-interactive and ACP runs by @yiliang114 in #16404
- fix(serve): treat a payload-invalid start reply as a definite refusal by @yiliang114 in #16460
- fix(cli): scrub advisor selector from startup errors by @yiliang114 in #16083
- fix(core): register promoted initial commits in unborn repos by @yiliang114 in #16081
- fix(ci): recreate git metadata before the publish-triage checkout by @wenshao in #16494
- feat(web-shell): surface task Q&A activity above the composer by @samuelhsin in #16037
- feat(channels): add GitHub repository event filter with allowlist and blocklist by @wenshao in #16493
- chore(types): compile cleanly under the TypeScript 7 native compiler by @sorrycc in #16463
- fix(core): keep follow-up suggestions in Thai, Lao, Khmer and Myanmar by @spped2000 in #16341
- fix(ci): probe the host egress proxy so mainland release hosts can build the sandbox image by @yiliang114 in #16281
- fix(core): keep the user's instruction last in the model request by @yiliang114 in #16274
- refactor(runtime-broker): extract binding provisioning from RuntimeBrokerService by @doudouOUC in #16501
- test(ci): harden TUI workspace reconciliation by @jianyx1 in #16033
- fix(managed-agent): mask digit-led passwords and refuse an empty Harness user info in the upgrade command by @wenshao in #16352
- fix(web-shell): close out managed-host review threads from #15928 by @yiliang114 in #16203
- refactor(runtime-broker): import inline fully qualified names by @doudouOUC in #16535
- refactor(adapters): import inline fully qualified names in adapters by @doudouOUC in #16533
- fix(channels): keep a delivered turn completed when the notice send fails by @yiliang114 in #16512
- refactor(contracts): import inline fully qualified names in contracts by @doudouOUC in #16534
- fix(channels): watch every open bound PR and keep polling during public turns by @wenshao in #16502
- feat(web-shell): offer a details side task from pending AskUser questions by @wenshao in #16458
- feat(serve): reclaim idle channel sessions by @wenshao in #16532
- refactor(channels): share the bound-session prompt contract via channel-base by @wenshao in #16523
- fix(web-shell): respect optional transport capabilities and local turn timing by @chiga0 in #16536
- ci(release): only file issues on failure and reconcile stale ones by @2SinceJuly in #15852
- perf(core): compare a grown local journal prefix in chunks by @wenshao in #16507
- fix(web-shell): fall back to English copy when the UI language has no relay dictionary by @4ekuct25 in #15474
- feat(core): view one pull request by URL for the PR-state watch by @wenshao in #16530
- fix(channels): keep the cursor write alive when the temp file mode cannot be tightened by @wenshao in #16257
- fix(ci): route the review/resolve permission gate to the ECS pool by @wenshao in #16482
- fix(cli): restore OpenTUI dialog editing controls by @chiga0 in #15908
- feat(ci): add disposable external PR runners by @yiliang114 in #16513
- fix(managed-agent): restore two runtime-broker classes to their size ratchet by @wenshao in #16542
- fix(serve): serialize overlapping cleanup retries by @jabrailkhalil in #15482
- fix(memory): match reader advice to the binding index budget by @jabrailkhalil in #15368
- fix(release): derive the next patch when the preview baseline lags latest by @qwen-code-dev-bot in #16470
- fix(web-shell): include channel sessions in release dialog by @wenshao in #16537
- feat(web-shell): show tool arguments and result in expanded cards by @BigDaddy1337 in #15435
- fix(core): surface Anthropic refusal details by @yiliang114 in #16079
Full Changelog: v0.26.9...v0.27.0