You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add stable-v1 load_session* and resume_session* builders that produce a RestoredSession containing an ActiveSession and the exact operation
response. Session routing is active before either restore request is
published, preserving required session/load replay, and provisional routing
is removed after failed restores or dropped in-flight blocking starts.
(#323)
(unstable-v2) Add runnable draft-v2 agent and one-shot client examples. The
agent implements the complete baseline session lifecycle; the client handles
permissions, projects chunk and snapshot updates by message ID, and waits for
the matching idle state. Add a compiled cookbook recipe and mdbook quickstart
for the same lifecycle.
(unstable-v2) Add Proxy::protocol_router and ProxyProtocolRouter to
compose strict v1 and v2 proxy implementations behind one connection.
Routing requires the exact version selected by the conductor and preserves
the complete initial transport frame.
(unstable) Expose programmatic tool-call names through the unstable_tool_call_name feature.
(unstable) Expose v1 and draft-v2 plan operations through the unstable_plan_operations feature.
(unstable-v2) Add high-level protocol v2 session builders and handles with
independent prompt-acceptance requests, create, resume, and feature-gated
fork setup responses, cloneable command handles, configuration, close, and
session-wide cancellation. Client.v2() and Agent.v2() callbacks receive
a V2ConnectionTo whose unversioned build_session*, resume_session*, and
feature-gated fork_session* methods expose only the v2 lifecycle. Resume
and fork return V2ResumeSessionBuilder and V2ForkSessionBuilder, so their
requests are not published until start_session or on_proxy_session_start is called. Session updates and interactive requests
remain on typed connection handlers. With unstable_mcp_over_acp, all
available session builders support native per-session MCP attachment while
preserving independent response consumption. MCP routes are installed and
runners begin executing before the setup request is published; successful
attachments remain active for the connection lifetime while setup failures,
including cancellation error responses, clean up pending state. The
builders' on_proxy_session_start helpers forward the complete setup
response and cancellation, install routing before later inbound traffic, and
then spawn user work with the OpenedV2Session. New and fork builders use
the response session ID for the installed route and returned command handle;
resume routing is ready before request publication so replay can precede the
response as required by the protocol.
(unstable-v2) Add Proxy::v2() as the draft-v2-only proxy builder while
keeping Proxy::builder() on stable v1. With unstable_mcp_over_acp, Proxy.v2().with_mcp_server(...) injects a connection-scoped MCP server
declaration into v2 new, resume, and feature-gated fork setup requests while
preserving unrelated fields. Version-neutral routing infrastructure can
continue to use Builder::without_acp_version_guard when it owns raw
version selection and validation.
(unstable-v2) Expose protocol-neutral dynamic handler registration on V2ConnectionTo.
(unstable-v2) Add ConnectionTo::spawn_connection_with_context for raw
parents that need the context selected by a child builder. V2ConnectionTo::spawn_connection also returns that natural typed context.
The existing ConnectionTo::spawn_connection::<Role> API remains
source-compatible and returns a raw ConnectionTo, including when the v2
child builder's callbacks receive V2ConnectionTo.
(unstable-v2) Add a version-correct schema::v2::InitializeProxyRequest for _proxy/initialize. Proxy
forwarding now preserves same-version raw initialize fields and raw session
creation fields instead of interpreting v2 messages as permissive v1
payloads. Add the low-level Builder::without_acp_version_guard escape hatch for routing infrastructure
that performs its own raw version selection, plus Builder::with_v2_protocol_guard for raw-context links after v2 is selected.
(unstable) Add typed v1 and draft-v2 JSON-RPC routing for configurable LLM
provider methods behind unstable_llm_providers.
Fixed
Preserve stable v1 NewSessionResponse::config_options on ActiveSession,
expose them through ActiveSession::config_options, and include them in
reconstructed and proxied session responses.
(#301)
(unstable-v2) Require native v2 client and agent connections to complete
their single initialization handshake before sending or accepting other
protocol traffic. Reject initialization in the wrong direction and reject
reinitialization after a successful handshake while allowing retries after an
initialization error. Protocol-level request cancellation remains available
while initialization is in progress.
(unstable-v2) Preserve unknown initialize fields when the protocol router
hands a same-version connection to its selected implementation.
(unstable-v2) Do not retain unhandled v2 session messages for a dynamic v1
session route that will never be installed.
Register framework-owned ordered response handling before outbound requests
become visible to the peer, preventing fast responses from overtaking session
routing or proxy forwarding.
Allow the portable protocol engine and transport abstractions to build for
the wasm32-wasip1 and wasm32-wasip2 targets. The native process-backed AcpAgent, thread-backed Stdio, and associated LineDirection type are not
exposed on these targets. This crate does not provide a WASI runtime adapter;
embedders can supply transport through Channel, Lines, or futures::io-compatible ByteStreams.
(#262)