-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Description
Summary
The ACP Registry PR #23 to add goose to the ACP registry is failing CI because of two issues in goose acp.
Failed CI run: https://github.com/agentclientprotocol/registry/actions/runs/21552882501/job/62129109237?pr=23
Issue 1: GooseAcpAgent::new() crashes without provider config
The registry CI runs goose acp in a sandboxed environment with HOME set to an empty temp directory. GooseAcpAgent::new() in crates/goose-acp/src/server.rs calls Config::global().get_goose_provider() which fails because there is no config file. The error propagates via ? and the process exits before the stdio JSON-RPC transport is set up, causing the CI to see a 60-second timeout with no response.
✗ Failed: Timeout after 60s waiting for initialize response
9 out of 10 other agents in the registry pass this check. Only goose fails.
Expected behavior: goose acp should still be able to respond to the initialize JSON-RPC handshake even when no LLM provider is configured. The provider/model is not needed to respond to initialize — it is only needed when actually running a session.
Suggested fix: Defer provider creation to session start time rather than during GooseAcpAgent::new(), or handle the missing config gracefully so the JSON-RPC transport can still start and respond to initialize.
Issue 2: on_initialize() does not return authMethods
Even if Issue 1 is fixed, the on_initialize() method in crates/goose-acp/src/server.rs builds an InitializeResponse without any authMethods:
Ok(InitializeResponse::new(args.protocol_version).agent_capabilities(capabilities))The ACP registry CI validator expects at least one authMethods entry with type "agent" or "terminal" in the initialize response. Without this, the validation fails with:
No authMethods in response
Goose already handles AuthenticateRequest/AuthenticateResponse, so it does support auth — it just does not advertise it during initialization.
Suggested fix: Add auth methods to the InitializeResponse. The agent-client-protocol-schema crate's InitializeResponse struct has an auth_methods field, and AuthMethod has id, name, description, and _meta fields.
Affected Code
crates/goose-acp/src/server.rsGooseAcpAgent::new()(~line 280) — provider/model config required at construction timeon_initialize()(~line 677) — noauth_methodsin response