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

