chore(deps): update the ACP Rust SDK to 2.2

Bump agent-client-protocol from 1.3 to 2.2. The 2.x crate still speaks ACP protocol v1 by default, so the wire format to the editor is the same and no handler code had to change. The unstable_auth_methods feature is dropped because agent auth methods are stable in 2.x and the feature name no longer exists. The agent-client-protocol skill still described 0.13 and listed two feature names that are gone, so it is updated to match. Refs #131 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: siGit Code v1.5.13 <noreply@sigit.si>

Seto Elkahfi committed Oct 4, 2026 at 23:18 UTC 264654bd1ebb4b2d40a5df5c042bb36b005f1d55
4 files changed +32 -20
.agents/skills/agent-client-protocol/SKILL.md
+17 -12
@@ -11,7 +11,7 @@ ACP is a JSON-RPC 2.0 protocol over **stdio** for integrating AI coding agents
11 with editors (Zed, JetBrains, Neovim, etc.). The agent runs as a subprocess;
12 the editor is the client. Communication is newline-delimited JSON on stdin/stdout.
13
14 -Crate: `agent-client-protocol = "0.13"` (siGit pins 0.13.0 in `Cargo.lock`)
14 +Crate: `agent-client-protocol = "2.2"` (siGit pins 2.2.0 in `Cargo.lock`)
15 Docs: https://docs.rs/agent-client-protocol
16 Spec: https://agentclientprotocol.com
17
@@ -21,6 +21,11 @@ Spec: https://agentclientprotocol.com
21 > handler receives a `ConnectionTo<Client>` (`cx`) you use to send notifications
22 > and spawn tasks — so the old mpsc "circular dependency" pattern is gone.
23
24 +> **SDK 2.x is not protocol v2.** The 2.x crate still speaks ACP protocol v1 by
25 +> default, which is what siGit and Zed use (`ProtocolVersion::V1`). The draft v2
26 +> protocol (`Agent.v2()`, `V2ConnectionTo`) sits behind the `unstable_protocol_v2`
27 +> feature and siGit does not enable it.
28 +
29 siGit's entire ACP server lives in `src/main.rs` (`run_acp_server`, the
30 `SiGitAgent` struct, and its `handle_*` methods). Read it alongside this skill.
31
@@ -30,10 +35,8 @@ siGit's entire ACP server lives in `src/main.rs` (`run_acp_server`, the
35
36 ```toml
37 [dependencies]
33 -agent-client-protocol = { version = "0.13", features = [
34 - "unstable_session_fork", # session/fork support
35 - "unstable_session_additional_directories", # additional_directories on session requests
36 - "unstable_auth_methods", # AuthMethod::Agent etc.
38 +agent-client-protocol = { version = "2.2", features = [
39 + "unstable_session_fork", # session/fork support
40 ] }
41 async-trait = "0.1"
42 tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros", "io-std", "io-util", "sync", "time"] }
@@ -42,9 +45,12 @@ futures = "0.3"
45 uuid = { version = "1", features = ["v4"] }
46 ```
47
45 -The `unstable_*` features gate real types/methods (`ForkSessionRequest`,
46 -`additional_directories`, `AuthMethod::Agent`). Without them the corresponding
47 -APIs don't exist and you'll get "no variant/method" errors.
48 +The `unstable_*` features gate real types/methods (`ForkSessionRequest`).
49 +Without them the corresponding APIs don't exist and you'll get "no
50 +variant/method" errors. `additional_directories` and `AuthMethod::Agent` used
51 +to need `unstable_session_additional_directories` and `unstable_auth_methods`;
52 +both are stable in 2.x and those feature names no longer exist, so listing them
53 +is a Cargo resolution error.
54
55 ---
56
@@ -556,10 +562,9 @@ Editor Agent
562 8. **Never write to stdout except JSON-RPC** — log to stderr; in TTY mode siGit
563 redirects fds to `$TMPDIR/sigit.log`. Any stray `println!` or native library
564 stdout write corrupts the wire.
559 -9. **Unstable features gate real types** — `unstable_session_fork`,
560 - `unstable_session_additional_directories`, `unstable_auth_methods` must be on
561 - in `Cargo.toml` or `ForkSessionRequest`, `additional_directories`, and
562 - `AuthMethod::Agent` won't exist.
565 +9. **Unstable features gate real types** — `unstable_session_fork` must be on
566 + in `Cargo.toml` or `ForkSessionRequest` won't exist. `additional_directories`
567 + and `AuthMethod::Agent` are stable in 2.x and need no feature.
568 10. **Zed re-fires the last config selection on connect** — make
569 `setConfigOption` a no-op when the requested model is already active, and
570 never start a model switch while a startup load is still in flight (GPU OOM).
CHANGELOG.md
+7
@@ -2,6 +2,13 @@
2
3 ## Unreleased
4
5 +### Changed
6 +
7 +- **The ACP Rust SDK is now 2.2** (`agent-client-protocol`, up from 1.3).
8 + siGit Code still speaks ACP protocol v1 to the editor, so nothing changes on
9 + the wire. The `unstable_auth_methods` feature is gone because agent auth
10 + methods are stable in 2.x.
11 +
12 ## 1.5.13
13
14 ### Added
Cargo.lock
+7 -7
@@ -20,9 +20,9 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
20
21 [[package]]
22 name = "agent-client-protocol"
23 -version = "1.3.0"
23 +version = "2.2.0"
24 source = "registry+https://github.com/rust-lang/crates.io-index"
25 -checksum = "1d386d6a58f4dbe0ebfa98e915caa54005dabdefd419de3d4678b28cd5752444"
25 +checksum = "13f780597b2c88ab83d02509bcc3e86366751f86fa12114005e35c55ed691763"
26 dependencies = [
27 "agent-client-protocol-derive",
28 "agent-client-protocol-schema",
@@ -44,19 +44,19 @@ dependencies = [
44
45 [[package]]
46 name = "agent-client-protocol-derive"
47 -version = "1.3.0"
47 +version = "2.2.0"
48 source = "registry+https://github.com/rust-lang/crates.io-index"
49 -checksum = "97b94934d118a69e921d14e94d4af5b3076563318c52662c89a0ecb3f139e1da"
49 +checksum = "f4893bfb11e0e193aa5a64611a126ee87567acb1879556519c902722899229de"
50 dependencies = [
51 "quote",
52 - "syn 2.0.119",
52 + "syn 3.0.4",
53 ]
54
55 [[package]]
56 name = "agent-client-protocol-schema"
57 -version = "1.4.0"
57 +version = "1.9.1"
58 source = "registry+https://github.com/rust-lang/crates.io-index"
59 -checksum = "06679e1542356341f4550ccfb16338b64f37f6af70de2105446ef6fbb078234c"
59 +checksum = "1d595a79e1665d02c91c7dd1bedd118501e75cc0a3d5b1651b5150ec4c5c1e0d"
60 dependencies = [
61 "anyhow",
62 "derive_more",
Cargo.toml
+1 -1
@@ -23,7 +23,7 @@ path = "src/main.rs"
23
24 [dependencies]
25 # ACP protocol SDK
26 -agent-client-protocol = { version = "1.3", features = ["unstable_session_fork", "unstable_auth_methods"] }
26 +agent-client-protocol = { version = "2.2", features = ["unstable_session_fork"] }
27
28 # Onde Inference engine (local LLM)
29 # onde = { path = "../onde" }