From b7fb017ee5d47e362d3c7d1bf5c0f51590b3c265 Mon Sep 17 00:00:00 2001 From: Ben Brandt Date: Fri, 5 Jun 2026 17:59:08 +0200 Subject: [PATCH 1/2] feat: Stabilize session/delete, message ids, and context usage --- Cargo.lock | 4 +- Cargo.toml | 2 +- src/agent-client-protocol/Cargo.toml | 8 +-- .../src/schema/client_to_agent/requests.rs | 13 ++--- .../src/schema/enum_impls.rs | 2 - .../src/schema/v2_impls.rs | 52 ------------------- .../tests/schema_session_delete.rs | 2 - 7 files changed, 10 insertions(+), 73 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0dbd51a..bdfc68a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -115,9 +115,9 @@ dependencies = [ [[package]] name = "agent-client-protocol-schema" -version = "0.13.5" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d419a87e28240978e4bfdf2a5b91bccb95ae8d5b06e10721bb07c449b9f43dd" +checksum = "c290bfa00c6b52339db66f8e9cf711d5f08530800529f7d619ff24d6cba253d0" dependencies = [ "anyhow", "derive_more", diff --git a/Cargo.toml b/Cargo.toml index 42fa6bd..0919589 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -35,7 +35,7 @@ agent-client-protocol-trace-viewer = { path = "src/agent-client-protocol-trace-v yopo = { package = "agent-client-protocol-yopo", path = "src/yopo" } # Protocol -agent-client-protocol-schema = { version = "=0.13.5", features = ["tracing"] } +agent-client-protocol-schema = { version = "=0.13.6", features = ["tracing"] } # Core async runtime tokio = { version = "1.52", features = ["full"] } diff --git a/src/agent-client-protocol/Cargo.toml b/src/agent-client-protocol/Cargo.toml index 7e995bb..2452ab4 100644 --- a/src/agent-client-protocol/Cargo.toml +++ b/src/agent-client-protocol/Cargo.toml @@ -23,20 +23,16 @@ unstable = [ "unstable_auth_methods", "unstable_boolean_config", "unstable_elicitation", + "unstable_end_turn_token_usage", "unstable_mcp_over_acp", - "unstable_message_id", - "unstable_session_delete", "unstable_session_fork", - "unstable_session_usage", ] unstable_auth_methods = ["agent-client-protocol-schema/unstable_auth_methods"] unstable_boolean_config = ["agent-client-protocol-schema/unstable_boolean_config"] unstable_elicitation = ["agent-client-protocol-schema/unstable_elicitation"] +unstable_end_turn_token_usage = ["agent-client-protocol-schema/unstable_end_turn_token_usage"] unstable_mcp_over_acp = ["agent-client-protocol-schema/unstable_mcp_over_acp"] -unstable_message_id = ["agent-client-protocol-schema/unstable_message_id"] -unstable_session_delete = ["agent-client-protocol-schema/unstable_session_delete"] unstable_session_fork = ["agent-client-protocol-schema/unstable_session_fork"] -unstable_session_usage = ["agent-client-protocol-schema/unstable_session_usage"] unstable_protocol_v2 = ["agent-client-protocol-schema/unstable_protocol_v2"] [dependencies] diff --git a/src/agent-client-protocol/src/schema/client_to_agent/requests.rs b/src/agent-client-protocol/src/schema/client_to_agent/requests.rs index bfea420..536263f 100644 --- a/src/agent-client-protocol/src/schema/client_to_agent/requests.rs +++ b/src/agent-client-protocol/src/schema/client_to_agent/requests.rs @@ -1,13 +1,11 @@ use crate::schema::{ AuthenticateRequest, AuthenticateResponse, CloseSessionRequest, CloseSessionResponse, - InitializeRequest, InitializeResponse, ListSessionsRequest, ListSessionsResponse, - LoadSessionRequest, LoadSessionResponse, LogoutRequest, LogoutResponse, NewSessionRequest, - NewSessionResponse, PromptRequest, PromptResponse, ResumeSessionRequest, ResumeSessionResponse, - SetSessionConfigOptionRequest, SetSessionConfigOptionResponse, SetSessionModeRequest, - SetSessionModeResponse, + DeleteSessionRequest, DeleteSessionResponse, InitializeRequest, InitializeResponse, + ListSessionsRequest, ListSessionsResponse, LoadSessionRequest, LoadSessionResponse, + LogoutRequest, LogoutResponse, NewSessionRequest, NewSessionResponse, PromptRequest, + PromptResponse, ResumeSessionRequest, ResumeSessionResponse, SetSessionConfigOptionRequest, + SetSessionConfigOptionResponse, SetSessionModeRequest, SetSessionModeResponse, }; -#[cfg(feature = "unstable_session_delete")] -use crate::schema::{DeleteSessionRequest, DeleteSessionResponse}; #[cfg(feature = "unstable_session_fork")] use crate::schema::{ForkSessionRequest, ForkSessionResponse}; @@ -16,7 +14,6 @@ impl_jsonrpc_request!(AuthenticateRequest, AuthenticateResponse, "authenticate") impl_jsonrpc_request!(LogoutRequest, LogoutResponse, "logout"); impl_jsonrpc_request!(LoadSessionRequest, LoadSessionResponse, "session/load"); impl_jsonrpc_request!(ListSessionsRequest, ListSessionsResponse, "session/list"); -#[cfg(feature = "unstable_session_delete")] impl_jsonrpc_request!( DeleteSessionRequest, DeleteSessionResponse, diff --git a/src/agent-client-protocol/src/schema/enum_impls.rs b/src/agent-client-protocol/src/schema/enum_impls.rs index 37d1c3f..ab024f8 100644 --- a/src/agent-client-protocol/src/schema/enum_impls.rs +++ b/src/agent-client-protocol/src/schema/enum_impls.rs @@ -17,7 +17,6 @@ impl_jsonrpc_request_enum!(ClientRequest { NewSessionRequest => "session/new", LoadSessionRequest => "session/load", ListSessionsRequest => "session/list", - #[cfg(feature = "unstable_session_delete")] DeleteSessionRequest => "session/delete", #[cfg(feature = "unstable_session_fork")] ForkSessionRequest => "session/fork", @@ -38,7 +37,6 @@ impl_jsonrpc_response_enum!(AgentResponse { NewSessionResponse => "session/new", LoadSessionResponse => "session/load", ListSessionsResponse => "session/list", - #[cfg(feature = "unstable_session_delete")] DeleteSessionResponse => "session/delete", #[cfg(feature = "unstable_session_fork")] ForkSessionResponse => "session/fork", diff --git a/src/agent-client-protocol/src/schema/v2_impls.rs b/src/agent-client-protocol/src/schema/v2_impls.rs index 03384a7..e937ff5 100644 --- a/src/agent-client-protocol/src/schema/v2_impls.rs +++ b/src/agent-client-protocol/src/schema/v2_impls.rs @@ -227,7 +227,6 @@ impl_v2_jsonrpc_request!( v2::ListSessionsResponse, "session/list" ); -#[cfg(feature = "unstable_session_delete")] impl_v2_jsonrpc_request!( v2::DeleteSessionRequest, v2::DeleteSessionResponse, @@ -262,46 +261,11 @@ impl_v2_jsonrpc_notification!(v2::CancelNotification, "session/cancel"); #[cfg(feature = "unstable_mcp_over_acp")] impl_v2_jsonrpc_notification!(v2::MessageMcpNotification, "mcp/message"); -impl_v2_jsonrpc_request!( - v2::WriteTextFileRequest, - v2::WriteTextFileResponse, - "fs/write_text_file" -); -impl_v2_jsonrpc_request!( - v2::ReadTextFileRequest, - v2::ReadTextFileResponse, - "fs/read_text_file" -); impl_v2_jsonrpc_request!( v2::RequestPermissionRequest, v2::RequestPermissionResponse, "session/request_permission" ); -impl_v2_jsonrpc_request!( - v2::CreateTerminalRequest, - v2::CreateTerminalResponse, - "terminal/create" -); -impl_v2_jsonrpc_request!( - v2::TerminalOutputRequest, - v2::TerminalOutputResponse, - "terminal/output" -); -impl_v2_jsonrpc_request!( - v2::ReleaseTerminalRequest, - v2::ReleaseTerminalResponse, - "terminal/release" -); -impl_v2_jsonrpc_request!( - v2::WaitForTerminalExitRequest, - v2::WaitForTerminalExitResponse, - "terminal/wait_for_exit" -); -impl_v2_jsonrpc_request!( - v2::KillTerminalRequest, - v2::KillTerminalResponse, - "terminal/kill" -); #[cfg(feature = "unstable_elicitation")] impl_v2_jsonrpc_request!( v2::CreateElicitationRequest, @@ -328,7 +292,6 @@ impl_v2_jsonrpc_request_enum!(v2::ClientRequest { NewSessionRequest => "session/new", LoadSessionRequest => "session/load", ListSessionsRequest => "session/list", - #[cfg(feature = "unstable_session_delete")] DeleteSessionRequest => "session/delete", #[cfg(feature = "unstable_session_fork")] ForkSessionRequest => "session/fork", @@ -348,7 +311,6 @@ impl_v2_jsonrpc_response_enum!(v2::AgentResponse { NewSessionResponse => "session/new", LoadSessionResponse => "session/load", ListSessionsResponse => "session/list", - #[cfg(feature = "unstable_session_delete")] DeleteSessionResponse => "session/delete", #[cfg(feature = "unstable_session_fork")] ForkSessionResponse => "session/fork", @@ -369,14 +331,7 @@ impl_v2_jsonrpc_notification_enum!(v2::ClientNotification { }); impl_v2_jsonrpc_request_enum!(v2::AgentRequest { - WriteTextFileRequest => "fs/write_text_file", - ReadTextFileRequest => "fs/read_text_file", RequestPermissionRequest => "session/request_permission", - CreateTerminalRequest => "terminal/create", - TerminalOutputRequest => "terminal/output", - ReleaseTerminalRequest => "terminal/release", - WaitForTerminalExitRequest => "terminal/wait_for_exit", - KillTerminalRequest => "terminal/kill", #[cfg(feature = "unstable_elicitation")] CreateElicitationRequest => "elicitation/create", #[cfg(feature = "unstable_mcp_over_acp")] @@ -389,14 +344,7 @@ impl_v2_jsonrpc_request_enum!(v2::AgentRequest { }); impl_v2_jsonrpc_response_enum!(v2::ClientResponse { - WriteTextFileResponse => "fs/write_text_file", - ReadTextFileResponse => "fs/read_text_file", RequestPermissionResponse => "session/request_permission", - CreateTerminalResponse => "terminal/create", - TerminalOutputResponse => "terminal/output", - ReleaseTerminalResponse => "terminal/release", - WaitForTerminalExitResponse => "terminal/wait_for_exit", - KillTerminalResponse => "terminal/kill", #[cfg(feature = "unstable_elicitation")] CreateElicitationResponse => "elicitation/create", #[cfg(feature = "unstable_mcp_over_acp")] diff --git a/src/agent-client-protocol/tests/schema_session_delete.rs b/src/agent-client-protocol/tests/schema_session_delete.rs index 2766deb..785a8a1 100644 --- a/src/agent-client-protocol/tests/schema_session_delete.rs +++ b/src/agent-client-protocol/tests/schema_session_delete.rs @@ -1,5 +1,3 @@ -#![cfg(feature = "unstable_session_delete")] - use agent_client_protocol::schema::{ClientRequest, DeleteSessionRequest, DeleteSessionResponse}; use agent_client_protocol::{JsonRpcMessage, JsonRpcRequest, JsonRpcResponse}; use serde_json::json; From 936fb91b0b89852986c6568c22ff68538adc28b3 Mon Sep 17 00:00:00 2001 From: Ben Brandt Date: Fri, 5 Jun 2026 17:59:46 +0200 Subject: [PATCH 2/2] Less partitions --- .github/workflows/ci.yml | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9e1bf09..61adbab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,22 +68,14 @@ jobs: fail-fast: false matrix: partition: - - "1/16" - - "2/16" - - "3/16" - - "4/16" - - "5/16" - - "6/16" - - "7/16" - - "8/16" - - "9/16" - - "10/16" - - "11/16" - - "12/16" - - "13/16" - - "14/16" - - "15/16" - - "16/16" + - "1/8" + - "2/8" + - "3/8" + - "4/8" + - "5/8" + - "6/8" + - "7/8" + - "8/8" steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10