From 8f2908f81ee9f8bee10554802b0e27266ccd90d5 Mon Sep 17 00:00:00 2001 From: "git@71rd.net" Date: Thu, 18 Jun 2026 18:35:04 +0000 Subject: [PATCH 1/2] return Failure response when agent does not support extension Signed-off-by: git@71rd.net --- src/blocking.rs | 1 + src/client.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/blocking.rs b/src/blocking.rs index b543dcd..0064c56 100644 --- a/src/blocking.rs +++ b/src/blocking.rs @@ -182,6 +182,7 @@ impl Client { match self.handle(Request::Extension(extension))? { Response::Success => Ok(None), Response::ExtensionResponse(response) => Ok(Some(response)), + Response::Failure => Err(AgentError::Failure), _ => Err(ProtoError::UnexpectedResponse.into()), } } diff --git a/src/client.rs b/src/client.rs index 1618dee..0931453 100644 --- a/src/client.rs +++ b/src/client.rs @@ -186,6 +186,7 @@ where match self.handle(Request::Extension(extension)).await? { Response::Success => Ok(None), Response::ExtensionResponse(response) => Ok(Some(response)), + Response::Failure => Err(AgentError::Failure), _ => Err(ProtoError::UnexpectedResponse.into()), } } From d523f80b53fdf2c4dd1126b7edfb5c596644a74a Mon Sep 17 00:00:00 2001 From: "git@71rd.net" Date: Wed, 8 Jul 2026 17:47:04 +0000 Subject: [PATCH 2/2] explicitly handle ExtensionFailure response to client Signed-off-by: git@71rd.net --- src/blocking.rs | 1 + src/client.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/blocking.rs b/src/blocking.rs index 0064c56..5d8d17d 100644 --- a/src/blocking.rs +++ b/src/blocking.rs @@ -183,6 +183,7 @@ impl Client { Response::Success => Ok(None), Response::ExtensionResponse(response) => Ok(Some(response)), Response::Failure => Err(AgentError::Failure), + Response::ExtensionFailure => Err(AgentError::ExtensionFailure), _ => Err(ProtoError::UnexpectedResponse.into()), } } diff --git a/src/client.rs b/src/client.rs index 0931453..22e0048 100644 --- a/src/client.rs +++ b/src/client.rs @@ -187,6 +187,7 @@ where Response::Success => Ok(None), Response::ExtensionResponse(response) => Ok(Some(response)), Response::Failure => Err(AgentError::Failure), + Response::ExtensionFailure => Err(AgentError::ExtensionFailure), _ => Err(ProtoError::UnexpectedResponse.into()), } }