Skip to content

v0.9.0 - Continuous sessions and managed background work

Latest

Choose a tag to compare

@pbdeuchler pbdeuchler released this 01 Oct 17:34
· 54 commits to main since this release

Compared against v0.8.0 (c134e2f).

Published crate bumps:

  • halter-brush-core 0.5.0 -> 0.6.0
  • halter-brush-builtins 0.2.0 -> 0.3.0
  • halter-protocol 0.8.0 -> 0.9.0
  • halter-hooks 0.8.0 -> 0.9.0
  • halter-config 0.8.0 -> 0.9.0
  • halter-providers 0.8.0 -> 0.9.0
  • halter-session 0.8.0 -> 0.9.0
  • halter-tools 0.8.0 -> 0.9.0
  • halter-runtime 0.8.0 -> 0.9.0
  • halter 0.8.0 -> 0.9.0

Changes:

  • Continuous sessions return a cloneable handle and one event stream. Submit user messages into a durable inbox; input submitted during execution steers the next safe iteration. Submission acknowledges acceptance, while InputDelivered records delivery without promising completion of background work.
  • Foreground interruption and session shutdown accept optional timeouts. Cancellation preserves partial assistant text and repairs unanswered tool calls. Dropping the last handle releases a session once runnable input, foreground execution, jobs, and subagents have finished; resume restores history and pending input into a fresh idle session.
  • Session-owned background commands survive foreground completion and interruption. The new background tool provides spawn, list, output, kill, and prune. Shell, PTY, background, and temporary hook/model-judge resources are settled on closure, including when callers are dropped.
  • An explicit driver state machine serializes session changes. Status watches are transient; input events remain durable. Failed input can be retried or discarded, event streams recover from bus lag, and SQLite cancellation recovery waits for admitted writes.
  • The CLI and software-factory example use the new API and anchor foreground results on input delivery. bin/release provides release tooling.

This is a breaking pre-1.0 minor release: session method signatures, public event variants, and the persisted inbox protocol change. Session log format 2 reads older logs, but 0.8.0 cannot write to sessions touched by this release. Intermediate unreleased format-2 logs have no migration or compatibility guarantee. Background processes and output are local to the runtime process and are not relaunched on resume.

halter-cli also moves to 0.9.0 and remains unpublished. See CHANGELOG.md for the complete changes and mechanical upgrade steps.