Skip to content

feat(acp): add unstable v2 session injection - #13

Closed
danielkov wants to merge 0 commit into
mainfrom
feat/acp-v2-session-inject
Closed

danielkov wants to merge 0 commit into
mainfrom
feat/acp-v2-session-inject

Conversation

@danielkov

@danielkov danielkov commented Aug 25, 2026 •

Copy link
Copy Markdown
Owner

Summary

Adds ACP v2 session injection to AgentKit behind the unstable-inject feature.

  • accepts steer injections while a turn is running
  • lets the current model stream or tool call finish before delivery
  • delivers pending messages FIFO before the next model request
  • emits each delivered message as a v2 user_message update
  • supports revoke and retains delivered IDs for correct error responses
  • keeps accepted messages across cancel and discards them on session close

The same injection coordinator is used by AcpHeadlessRuntime and by hosts with custom persistent session actors. The public host API covers session binding, update delivery, prompt conversion, turn lifecycle, cancellation, revoke, and safe-boundary delivery without exposing the internal locks or queues.

Dependencies

ACP v2 foundation is already merged into main via #12. This branch is rebased on main after the AgentKit 0.10.12 provider release.

External protocol dependencies:

The branch pins schema 6e7e044f9464c4fd652d90699a09e9edc8b3bbad and Rust SDK 2f039993d1d6ed8da35b38c31f54a7cbb7338c70.

Consumer

@danielkov
danielkov deleted the branch main August 25, 2026 19:53
@danielkov danielkov closed this Aug 25, 2026
@danielkov danielkov reopened this Aug 25, 2026
@danielkov
danielkov marked this pull request as ready for review August 26, 2026 12:47
@danielkov
danielkov force-pushed the feat/acp-v2-session-inject branch from 1204e2b to 64244da Compare August 30, 2026 11:21
@danielkov
danielkov changed the base branch from feat/acp-v2-foundation to main August 30, 2026 11:22
@danielkov danielkov closed this Sep 2, 2026
@danielkov
danielkov force-pushed the feat/acp-v2-session-inject branch from 0199d04 to 8661c20 Compare September 2, 2026 12:23
danielkov added a commit that referenced this pull request Oct 1, 2026
Lands the ACP v2 session injection stack (previously #13, kept unmerged
behind a git patch) and David's inline media budget (#25), now depending
on published fork crates instead of git revisions.

- `agentkit-acp` depends on
[`agentkit-acp-sdk`](https://crates.io/crates/agentkit-acp-sdk) 2.2.0:
the upstream `agent-client-protocol` SDK (current main) plus session
injection, tracked response receipts and bounded transports. It uses
[`agentkit-acp-schema`](https://crates.io/crates/agentkit-acp-schema)
1.9.1 for the schema. Library names are unchanged, so code still imports
`agent_client_protocol`.
- Injection stays behind the `unstable-inject` feature; default features
are unchanged apart from the SDK moving from 2.0 to 2.2.
- Upstream ACP v2 now requires `session/prompt` responses to carry the
accepted user message id. The id is allocated when the prompt is
accepted and echoed by the later `user_message` update.
- Loop: preserve and bound interrupted streamed responses, and retire
interrupted turns without resuming execution.
- Bumps `agentkit-acp` to 0.10.12 and `agentkit-loop` to 0.10.13.

---------

Co-authored-by: David Danialy <david.danialy@speakeasy.com>

This branch was previously deployed

1 inactive deployment
github-pages — 8661c201 Deployed Sep 2, 2026 by danielkov via deploy #72
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