Skip to content

fix(acp): unify autonomous turn lifecycle - #61

Merged
danielkov merged 1 commit into
mainfrom
fix/acp-autonomous-turn-state
Aug 30, 2026
Merged

fix(acp): unify autonomous turn lifecycle#61
danielkov merged 1 commit into
mainfrom
fix/acp-autonomous-turn-state

Conversation

@danielkov

Copy link
Copy Markdown
Contributor

Summary

Consolidate user-initiated and autonomous ACP v2 turn draining behind one shared lifecycle. Background-task and MCP continuations now publish Running and Idle, allowing clients to steer the active model turn instead of attempting a conflicting prompt.

Motivation

Autonomous continuations previously held the session busy without updating ACP foreground state. The TUI therefore appeared idle and submitted new prompts, which the server rejected as internal errors until the continuation completed.

Impact

Messages submitted while Kit synthesizes a background result are now admitted as steering input. Autonomous completion, cancellation, and error paths also expose the same state transitions and stop reasons as user-initiated turns.

Technical details

Shared turn lifecycle

Prompt-specific request admission and user-message publication remain separate. Once input is admitted, both prompt and autonomous paths use the same turn runner for state publication, loop draining, cancellation, background settlement, update flushing, diagnostics, and terminal state.

Autonomous admission

drive_autonomous is reduced to claiming the session, preparing injection, invoking the shared runner, and releasing the session. This keeps background and MCP input semantics distinct without duplicating the active-turn lifecycle.

@danielkov
danielkov merged commit e9c159a into main Aug 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant