Skip to content

Publish Release

Choose a tag to compare

@aleksanderpalamar aleksanderpalamar released this 30 Mar 20:08
· 159 commits to main since this release

ACP (Agent Client Protocol) Overhaul

This release focuses on making sub-agent orchestration fluid, responsive, and robust.

Highlights

Event-Driven Completion

  • Replaced 500ms polling in waitAll()/waitTasks() with EventEmitter-based resolution for instant completion detection.
  • SubagentManager now emits typed lifecycle events: task:queued, task:started, task:completed, task:failed and task:chunk.

Live Streaming from Sub-Agents

  • Sub-agent output is now streamed to the TUI in real-time with labeled, dimmed text blocks.
  • Status indicators show start/complete/fail with duration for each sub-agent

Real-Time Progress Tracking

  • StatusBar displays live orchestration progress (ACP [2/5 done, 1 running, 2 queued]) instead of a generic "thinking..." spinner
  • Progress updates on every lifecycles transition including task:started

Incremental Result Streaming

  • Results are emitted to the user as each sub-agent finishes - no more waiting for all to complete.
  • Synthesis LLM call is now conditional: only triggered when there are failures, eliminating unnecessary latency.

Abort & Cancellation

  • AgentLoop gains abort() with AbortController support, checked before each iteration and tool execution.
  • New cancelTask() / cancelAll() methods on SubagentManager with proper guard against double-finalization.
  • Subagent tool exposes cancel and cancel_all actions
  • News config option: acpCancelOnFailure.

Optimized Spawning

  • spawnMany() now uses Promise.all for parallel spawning
  • Session pre-warming pool eliminates synchronous DB writes from the spawn critical path.
  • All event listeners are registered before spawning to prevent missed early events.