Skip to content

task(acp): upgrade SDK and use new HTTP/WS crate - #10082

Merged
alexhancock merged 3 commits into
mainfrom
alexhancock/acp-http-sdk-dep
Jun 29, 2026
Merged

task(acp): upgrade SDK and use new HTTP/WS crate#10082
alexhancock merged 3 commits into
mainfrom
alexhancock/acp-http-sdk-dep

Conversation

@alexhancock

@alexhancock alexhancock commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

Does two things re: ACP over HTTP/WS

  1. Upgrades the ACP SDK to 1.0
  2. Begins to use the https://crates.io/crates/agent-client-protocol-http crate we made and added to the ACP SDK instead of our previous inbuilt HTTP/WS transport support

Testing

Manual testing with a fresh client

Related Issues

#6642

Screenshots/Demos (for UX changes)

(Single file test client made with the TS SDK support for HTTP/WS agentclientprotocol/typescript-sdk#155)

Screenshot 2026-06-28 at 8 43 11 PM

@@ -1,4 +1,4 @@
use agent_client_protocol::schema::SessionInfo;
use agent_client_protocol::schema::v1::SessionInfo;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice that they have done this, makes sense 👍

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1103eab312

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines 55 to 58
acp_routes = acp_routes.layer(axum::middleware::from_fn_with_state(
secret_key.clone(),
auth::check_acp_token,
));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Preserve CORS preflights for header auth

When GOOSE_SERVER__SECRET_KEY is set and a browser ACP client authenticates with the documented X-Secret-Key header, the browser sends an unauthenticated OPTIONS preflight before the real /acp request. This auth layer is applied after create_acp_router, so it wraps the ACP router's CORS layer and check_acp_token rejects that preflight before CORS can answer it; the result is that header-authenticated HTTP/SSE clients fail before their actual request reaches the agent. Put CORS outside the auth middleware or bypass token checks for preflight requests while allowing the auth header.

Useful? React with 👍 / 👎.

@michaelneale

Copy link
Copy Markdown
Collaborator

nice net saving too:

image

👍

@alexhancock

Copy link
Copy Markdown
Collaborator Author

nice net saving too:

image 👍

Yeah, HTTP/WS transport code is in the ACP SDK now where it belongs. For goose and now others!

@lifeizhou-ap lifeizhou-ap left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sense 👍

I have approved. However, before merge, would you please pull the latest main into your branch and make sure ui/desktop still works properly. Thank you!

@alexhancock
alexhancock added this pull request to the merge queue Jun 29, 2026
Merged via the queue into main with commit 2cc1140 Jun 29, 2026
24 checks passed
@alexhancock
alexhancock deleted the alexhancock/acp-http-sdk-dep branch June 29, 2026 05:35
michaelneale added a commit that referenced this pull request Jun 29, 2026
* origin/main:
  task(acp): upgrade SDK and use new HTTP/WS crate (#10082)
  fix(providers): reject non-object tool-call arguments instead of panicking (#9832)

# Conflicts:
#	crates/goose/src/agents/agent.rs
lifeizhou-ap added a commit that referenced this pull request Jun 29, 2026
* main:
  task(acp): upgrade SDK and use new HTTP/WS crate (#10082)
  fix(providers): reject non-object tool-call arguments instead of panicking (#9832)
  docs: name the message field in the hooks payload guide (#9913)
  fix(cli): save /edit prompts to history (#10011)
  feat(i18n): add fr, de, it, pt, id, ms, vi, zh-TW desktop locales (#10072)
  feat (acp+): Use ACP permission manager for tool permissions (#10066)
lifeizhou-ap added a commit that referenced this pull request Jun 30, 2026
* main:
  chore: Remove legacy MCP-UI proxy support (#10086)
  Remove session_id from provider streaming trait methods (#9984)
  fix(cli): update help text for --session-id (#10077)
  task(acp): upgrade SDK and use new HTTP/WS crate (#10082)
  fix(providers): reject non-object tool-call arguments instead of panicking (#9832)
  docs: name the message field in the hooks payload guide (#9913)
  fix(cli): save /edit prompts to history (#10011)
  feat(i18n): add fr, de, it, pt, id, ms, vi, zh-TW desktop locales (#10072)
  feat (acp+): Use ACP permission manager for tool permissions (#10066)
  feat (ui):  Remove ACP chat feature flag and turn on chat using ACP (#10062)
  fix(schedule): use session.message_count for schedule sessions listing (#10026)
  feat(acp): migrate getDictationConfig and transcribeDictation to ACP (#10048)
  fix: sync the sesion store after session provider and model update and also update thinking effort (#10060)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants