Skip to content

goose acp: fails ACP registry CI — missing authMethods and crashes without provider config #7026

@angiejones

Description

@angiejones

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.rs
    • GooseAcpAgent::new() (~line 280) — provider/model config required at construction time
    • on_initialize() (~line 677) — no auth_methods in response

References

Metadata

Metadata

Labels

corePertains to core goose functionality

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions