Skip to content

Migration plan for goose 2.0 to use ACP+#8533

Draft
jamadeo wants to merge 3 commits intomainfrom
acp-plus-plan
Draft

Migration plan for goose 2.0 to use ACP+#8533
jamadeo wants to merge 3 commits intomainfrom
acp-plus-plan

Conversation

@jamadeo
Copy link
Copy Markdown
Member

@jamadeo jamadeo commented Apr 14, 2026

A (work in progress) plan for ACP-plus adoption in goose2

Comment thread ui/goose2/acp-plus-migration-plan/01-expose-goose-serve-url.md Outdated

### 4. Check `@agentclientprotocol/sdk` version compatibility

The `@aaif/goose-acp` package declares `@agentclientprotocol/sdk` as a **peer dependency** (`"*"`). The Rust backend currently uses `agent-client-protocol = "0.10.4"`. The TypeScript SDK should be at a compatible version.
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.

this is interesting. i thought i did a refactor such that it fully wraps the @agentclientprotocol/sdk interactions all inside GooseClient

maybe I/we mistakenly left it as a peer dep?

### 8. `listProviders`

```typescript
const DEPRECATED_PROVIDER_IDS = new Set(["claude-code", "codex", "gemini-cli"]);
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.

?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

straight from the tauri layer:

const DEPRECATED_PROVIDER_IDS: &[&str] = &["claude-code", "codex", "gemini-cli"];

(not that that explains much)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

we should clear this up. I think the idea here is that these are or could be ACP providers, so you'd connect to them directly rather than connecting through the goose provider layer ?


## Objective

Replace all `invoke()` calls in `src/shared/api/acp.ts` with calls to the new TypeScript ACP session manager (Step 05) and search module (Step 06). Keep the same public API signatures so consumers don't need to change.
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.

I would have it just eliminate this layer of abstraction in this step and hook the things that called it up directly to the new thing

}
```

Wait — adding `reqwest` is a new dependency. A simpler approach: use `tokio::net::TcpStream::connect` to check if the port is open:
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.

You might regen this file to be more to the point of using one approach

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

ha, nice catch


| Method | Request | Response |
|--------|---------|----------|
| `goose/config/get` | `{ key: string }` | `{ value: string \| null }` |
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.

these method prefixes will need _goose right?


This is the trickiest subsystem because it involves **interactive shell commands with streaming output**. The current Rust code spawns a child process and streams stdout/stderr lines as Tauri events (`agent-setup:output`, `model-setup:output`).

#### Options
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.

I would re-gen this file with one perspective on what the best approach is

@jamadeo jamadeo changed the title Make a plan Migration plan for goose 2.0 to use ACP+ Apr 15, 2026
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