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
{{ message }}
Repository navigation
Commit 602240b
Browse filesBrowse the repository at this point in the historyBrowse files
docs: prepare the 5.0 release (migration guide, stability policy, version pins) (#479)
* fix(acp): retry unhandled session messages only on v1 and unguarded connections
The Agent role's default handler retried session-scoped messages on every
connection that was not v2, so a future protocol version would inherit the
v1 parking path. Check for v1 (or an unguarded connection) explicitly.
Behavior on v1, v2 and unguarded connections is unchanged.
Co-Authored-By: Claude <noreply@anthropic.com>
* docs: pin install snippets to 5 and drop stale upcoming-release wording
The READMEs, crate docs and book still told users to depend on "3", called
3.x upcoming and rmcp 4.x unreleased.
Co-Authored-By: Claude <noreply@anthropic.com>
* docs(migration): cover the conductor, core and stability changes in the v5 guide
- Explain why the version jumps from 3.6 to 5.0.
- Summarize the stability policy and the exact schema pin.
- Add a conductor section: instantiators receive a SelectedInitializeRequest,
the v2 instantiator methods, ConductorHostRole::initialize* and
InitializationOutcome are removed.
- Add a core section: JSON-RPC batches, non-exhaustive TransportFrame,
MetaCapability, the dropped-Responder answer, unknown fields surviving v1
forwarding, and ProxyProtocolRouter's retry after a rejected first message.
- Drop rows and sections for APIs 3.6 never had (OpenedSession, v2_id(),
the Responder<T, V1/V2> markers, ProxiesAndAgentComponents).
- List all four third-party types in the HTTP crate's public API.
Co-Authored-By: Claude <noreply@anthropic.com>
* docs(acp): add a stability policy and describe the schema pin and module layout
- Add a Stability section to the crate docs and README, mirrored in the v2
module: unstable_* features, including all of v2, may change in minor
releases, stabilizing v2 only removes the gate, and the stable v1 API
follows semver.
- Document the exact agent-client-protocol-schema pin and to use the schema
types through agent_client_protocol::schema, v1::schema and v2::schema.
- Note in .release-plz.toml that a major release of a public dependency
forces a major release of the whole acp version group.
- The schema module docs no longer describe a flat layout, and the v1/v2
docs say where the two modules differ instead of claiming they match.
- README: v1 connections also have prepare_request_to.
Co-Authored-By: Claude <noreply@anthropic.com>
* docs: correct rustdoc and book pages that describe old behavior
- read_to_string: unhandled requests get -32601, not -32603.
- Client::v2: point to send_initialize and InitializeOutcome::LowerVersion.
- unsupported_protocol_version takes requested and supported versions.
- Cookbook one-shot recipe: start_session returns a v1::SessionSetup.
- Features table: the rmcp crate has no draft-v2 feature.
- Trace docs: from/to are Client, Proxy(N) and Agent, and ResponseEvent
has error_domain.
- v1 with_mcp_server entry points: note the mcpCapabilities.acp
requirement and the polyfill.
- Instantiators run once; a repeated initialize is forwarded.
- Session builders: cwd must be absolute.
- Routers and modules: slots and payloads are not version-checked.
- Drop the stale schema 1.10.1 sentence and fix the mcp/connect banner.
Co-Authored-By: Claude <noreply@anthropic.com>
* docs: add a versioning page with the protocol-version checklist and semver gate plan
The page states the release policy for the acp version group, gives the
cargo-semver-checks job to add once 5.0.0 is published, and lists what to
change when adding a protocol version (marker, module, feature gate,
negotiation, router slots, conductor, tests, docs).
Co-Authored-By: Claude <noreply@anthropic.com>
* test(acp): assert auto traits on public handles and returned futures
Connections, builders, request handles, sessions, transports and the
futures from connect_with, connect_to, block_task, start_session,
run_until, read_update and send_initialize must stay Send (and Sync and
'static where they are today). A compile-time test catches a regression,
which would otherwise be a silent breaking change.
Co-Authored-By: Claude <noreply@anthropic.com>
* docs(acp): keep the schema module docs in one place
The outer and inner doc comments were joined and resolved links in
different scopes, which stable and nightly rustdoc reported differently.
Co-Authored-By: Claude <noreply@anthropic.com>
* docs(cookbook): resolve the cookbook's rustdoc links and check docs for every published crate
The cookbook's rustdoc links into agent-client-protocol and
agent-client-protocol-rmcp, but both were dev-dependencies, and rustdoc only
resolves links against regular dependencies. About 130 links were broken on
docs.rs. Make them regular dependencies; the cookbook is documentation that
nothing depends on as a library.
CI's docs.rs build check covered only the core and rmcp crates. Run it for
every published crate so broken links fail CI.
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: md/features.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,13 @@
1
1
# Cargo Features
2
2
3
-
Starting with the upcoming **3.x** release, the core `agent-client-protocol`
4
-
crate enables **no features by default**. Protocol serialization, connections,
5
-
sessions, custom MCP servers, and the `Channel`, `Lines`, and `ByteStreams`
3
+
Since the 3.0 release, the core `agent-client-protocol` crate enables **no
4
+
features by default**. Protocol serialization, connections, sessions, custom
5
+
MCP servers, and the `Channel`, `Lines`, and `ByteStreams`
6
6
adapters remain available without native I/O or JSON Schema generation.
7
7
8
8
```toml
9
9
[dependencies]
10
-
agent-client-protocol = "3"
10
+
agent-client-protocol = "5"
11
11
```
12
12
13
13
You do not need `default-features = false` for a lean core dependency.
@@ -27,14 +27,14 @@ For a client that launches an external agent:
27
27
28
28
```toml
29
29
[dependencies]
30
-
agent-client-protocol = { version = "3", features = ["process"] }
30
+
agent-client-protocol = { version = "5", features = ["process"] }
31
31
```
32
32
33
33
For an agent that uses `Stdio::new()`:
34
34
35
35
```toml
36
36
[dependencies]
37
-
agent-client-protocol = { version = "3", features = ["stdio"] }
37
+
agent-client-protocol = { version = "5", features = ["stdio"] }
38
38
```
39
39
40
40
The conductor explicitly enables both native features. Other libraries using
@@ -47,7 +47,7 @@ Opt into `schemars` to generate JSON Schemas for protocol types and typed tools:
47
47
48
48
```toml
49
49
[dependencies]
50
-
agent-client-protocol = { version = "3", features = ["schemars"] }
50
+
agent-client-protocol = { version = "5", features = ["schemars"] }
51
51
```
52
52
53
53
This enables the SDK's direct dependency and the matching
@@ -77,7 +77,7 @@ Internal crates request only the core capabilities they use:
77
77
| --- | --- |
78
78
| HTTP client/server | None; transport sides remain opt-in through `client` and `server`|
79
79
| MCP-over-ACP polyfill |`unstable_mcp_over_acp`, with independent draft-v2 and session-fork passthrough features |
80
-
| rmcp integration |`schemars`; one feature per rmcp major version (`rmcp_3`), with independent draft-v2 and MCP-over-ACP passthrough features|
80
+
| rmcp integration |`schemars`; one feature per rmcp major version (`rmcp_3`), and an `unstable_mcp_over_acp` passthrough feature. It has no draft-v2 feature: enable `unstable_protocol_v2` on `agent-client-protocol` itself|
81
81
| Conductor |`process`, `stdio`, and `unstable_mcp_over_acp` for launching components, serving stdio, and classifying MCP traces |
82
82
| YOPO |`process` for launching the agent |
83
83
| Test utilities |`process` and `stdio` for fixture binaries and launch helpers |
@@ -110,7 +110,7 @@ For example, to use draft v2 and MCP-over-ACP without JSON Schema generation:
110
110
111
111
```toml
112
112
[dependencies]
113
-
agent-client-protocol = { version = "3", features = ["unstable_protocol_v2", "unstable_mcp_over_acp"] }
113
+
agent-client-protocol = { version = "5", features = ["unstable_protocol_v2", "unstable_mcp_over_acp"] }
114
114
```
115
115
116
116
The `unstable` aggregate does not select draft v2; enable `unstable_protocol_v2`
@@ -167,10 +167,10 @@ A dependency that previously relied on native transports and typed tools:
167
167
agent-client-protocol = "2.2"
168
168
169
169
# After: select only the capabilities your application actually uses.
170
-
agent-client-protocol = { version = "3", features = ["process", "stdio", "schemars"] }
170
+
agent-client-protocol = { version = "5", features = ["process", "stdio", "schemars"] }
171
171
```
172
172
173
-
A protocol-only application can instead use `agent-client-protocol = "3"`.
173
+
A protocol-only application can instead use `agent-client-protocol = "5"`.
174
174
Applications that already disabled defaults must still enable `process` or
175
175
`stdio` if they use those adapters: native I/O used to be unconditional on
0 commit comments