Repository navigation
v0.8.0 - Cancellation reaches every external call
Compared against v0.7.0 (73f4aac).
Published crate bumps:
- halter-protocol 0.7.0 -> 0.8.0
- halter-hooks 0.7.0 -> 0.8.0
- halter-config 0.7.0 -> 0.8.0
- halter-providers 0.7.0 -> 0.8.0
- halter-session 0.7.0 -> 0.8.0
- halter-tools 0.7.0 -> 0.8.0
- halter-runtime 0.7.0 -> 0.8.0
- halter 0.7.0 -> 0.8.0
Changes:
- Cancellation reaches every external call a turn makes: provider HTTP/SSE, rate-limit waits, model-judge panels, hooks, subagent spawn/wait and browser actions.
submit_turn_with_cancel(now public) andcompact_with_cancellet callers cancel a turn or compaction under their ownCancellationToken, including while waiting for the session's write lease.submit_turn,compactandnotifystop at runtime shutdown. Dropping a turn's event stream still does not cancel it.- Fixes:
- Cancelled rate-limit waits, body reads and stream setup surface as cancellations, not fatal or retryable errors.
- The provider stream's cancel marker is no longer dropped when the event channel is full.
- A cancelled model-judge turn no longer falls back to the default model.
- Command hooks kill their child on timeout.
- Agent hooks cancel their sub-turn on timeout or drop.
- A turn cancelled between rounds stops instead of starting another round.
- The Browserbase, GitHub plugin fetcher and CLI OAuth HTTP clients have connect and request timeouts.
Breaking:
SubagentControl::spawnandSubagentControl::waittake aCancellationToken.HookInputhas a newcancelfield.
Known remaining gaps: #211.