What's Changed
- fix(agent): make external cancellation durable by @nessie993 in #3026
- feat(frontend): show chat context usage indicator by @nessie993 in #3028
- fix(api): initialize interaction request mapping by @chocobar in #3029
- fix(frontend): show merged PR metadata by @nessie993 in #3031
- feat(tasks): support headless spec task sandboxes by @nessie993 in #3030
- feat(cli): board and task-lifecycle management for spec tasks by @nessie993 in #3033
- feat(cli): select spec task sandbox environment by @nessie993 in #3037
- style(frontend):chat code blocks and typography by @nessie993 in #3036
- fix(api): populate sandbox_state on GET /spec-tasks/{id} by @nessie993 in #3034
- feat(sandbox): headless workloads no longer require a GPU by @nessie993 in #3035
- fix(sandbox): reconcile dev containers that exit on their own by @nessie993 in #3039
- fix(api): apply code-agent model overrides in proxy by @nessie993 in #3040
- feat(api): curated reasoning-effort registry + stop defaulting assistant max_tokens by @nessie993 in #3042
- fix: reconstruct streamed tool calls in LLM call logs + admin LLM calls detail drawer by @nessie993 in #3043
- fix(api): re-attach to live agent turns after an API restart by @nessie993 in #3049
- feat: configure org harnesses and credential sources by @nessie993 in #3045
- Refactor/spec task code agent config by @nessie993 in #3044
- Let an agent's managers see and prune every trigger on it by @lukemarsden in #3052
- feat(agents): add DeepSeek Harness (dsh) as a code agent runtime by @nessie993 in #3053
- fix(api): stop rewriting coding-agent chat requests by @nessie993 in #3054
- fix: restructure the provider endpoint dialog (and make header edits actually save) by @nessie993 in #3055
- Allow project MCPs for app-less sessions by @chocobar in #3056
- fix(tasks): allow Open PR when the sandbox is gone but commits landed by @nessie993 in #3057
- ci: use Bunker model for headless Zed smoke by @chocobar in #3060
- fix(external-agent): evict phantom session entries so resume can restart a stopped sandbox by @nessie993 in #3059
- fix(tasks): recover the changes view when a sandbox is still starting by @nessie993 in #3061
- fix search by @nessie993 in #3063
- fix: survive a transient provider outage instead of killing the whole task by @nessie993 in #3064
- Forward sandbox_state so the Open PR button is not permanently disabled by @lukemarsden in #3068
Full Changelog: 2.12.3...2.12.4