Skip to content

refactor(acp): migrate to agent-client-protocol 2.0.0 - #6658

Merged
bug-ops merged 1 commit into
mainfrom
feat/6655-migrate-acp-2-0-0
Jul 27, 2026
Merged

refactor(acp): migrate to agent-client-protocol 2.0.0#6658
bug-ops merged 1 commit into
mainfrom
feat/6655-migrate-acp-2-0-0

Conversation

@bug-ops

@bug-ops bug-ops commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • Bumps agent-client-protocol 1.2.0 -> 2.0.0 (schema =1.4.0 -> =1.5.0) in crates/zeph-acp, per the migration plan in specs/013-acp/spec.md. Mechanical crate-major bump: the wire protocol Zeph speaks stays at V1; zero handler/transport/builder-chain source changes were needed (the three named compiler-verify points from the spec all compiled clean).
  • Adds a compile-time regression guard (crates/zeph-acp/src/lib.rs) plus an independent runtime test that both hardcode the wire version, so a future schema-pin bump can't silently redefine ProtocolVersion::LATEST away from 1 without failing the build/tests.
  • Adds an integration test covering the SDK's newly-accepted JSON-RPC batch requests end to end through the dispatch loop (a new input path introduced by 2.0.0 that had zero test coverage).
  • Fixes specs/013-acp/spec.md sections that still asserted a stale pre-1.2.0 protocol version as current state, plus several other inaccuracies uncovered during review (the /agent.json vs /.well-known/acp.json handler/route table, cargo-deny evidence, Implementation Gap Tracker cross-references).

Process notes

This went through the full refactoring chain (developer -> parallel tester/security/impl-critic -> code review), with one consolidated fix round after the critic's significant verdict (3 blocking gaps: stale README version, unverified fork/providers test-coverage claims, untested batch-dispatch path) and the tester/security findings from the same pass. The reviewer found and fixed two more issues live with the developer during final review (a stale /agent.json example in the spec, and a wrong cargo-deny invocation/evidence). Security's audit found zero new vulnerabilities from this bump; it separately surfaced a pre-existing (not introduced by this PR) HIGH-severity permission-gate deadlock, filed as #6656.

Closes #6655
Closes #6633

Test plan

  • cargo +nightly fmt --check
  • cargo clippy --profile ci --workspace --all-targets --features "desktop,ide,server,chat,pdf,scheduler,testing" -- -D warnings
  • cargo nextest run --config-file .github/nextest.toml --workspace --features "desktop,ide,server,chat,pdf,scheduler" --lib --bins (15073 tests, all passing)
  • cargo nextest run -p zeph-acp with the full unstable-feature set (222 tests, incl. 2 new regression tests)
  • Rustdoc gate (RUSTFLAGS="-D warnings" RUSTDOCFLAGS="--deny rustdoc::broken_intra_doc_links" cargo doc --no-deps --workspace ...)
  • cargo test --doc --workspace ...
  • cargo deny --config .github/deny.toml check (zero new advisories from the bump; same 3 pre-existing accepted advisories)
  • gitleaks protect --staged --no-banner --redact
  • Live ACP round-trip: initialize -> session/new -> session/prompt against a real local Ollama model, plus fork/resume/session/delete/logout/set_config_option/set_mode/block_task exercised by the zeph-acp integration suite under 2.0.0; /agent.json and /.well-known/acp.json field exposure verified against the actual handler code (only the latter carries protocol_version, confirmed against the upstream ACP Registry RFD)

@github-actions github-actions Bot added refactor Code refactoring without functional changes size/XL Extra large PR (500+ lines) documentation Improvements or additions to documentation rust Rust code changes dependencies Dependency updates labels Jul 27, 2026
Bump agent-client-protocol 1.2.0 -> 2.0.0 (schema =1.4.0 -> =1.5.0) in
crates/zeph-acp, per the migration plan in specs/013-acp/spec.md. Mechanical
crate-major bump: the wire protocol stays at V1, no handler/transport/
builder-chain logic changed. Adds a compile-time regression guard plus a
runtime test that hardcode the wire version so a future schema-pin bump
can't silently redefine it, and a new integration test covering the SDK's
newly-accepted JSON-RPC batch requests end to end through the dispatch loop.

Also fixes specs/013-acp/spec.md sections that still asserted a stale
pre-1.2.0 protocol version as current state, and corrects several
inaccuracies uncovered during review (handler/route table for
protocol_version exposure, cargo-deny evidence, Gap Tracker references).

Closes #6655
Closes #6633
@bug-ops
bug-ops force-pushed the feat/6655-migrate-acp-2-0-0 branch from a37c19b to 5b1dfb2 Compare July 27, 2026 19:49
@bug-ops
bug-ops enabled auto-merge (squash) July 27, 2026 19:50
@bug-ops
bug-ops merged commit c517fef into main Jul 27, 2026
47 checks passed
@bug-ops
bug-ops deleted the feat/6655-migrate-acp-2-0-0 branch July 27, 2026 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dependency updates documentation Improvements or additions to documentation refactor Code refactoring without functional changes rust Rust code changes size/XL Extra large PR (500+ lines)

Projects

None yet

1 participant