Skip to content

acp: session/new catalog ignores config providers, agents, and default model since 2.0.4 #50236

Description

@cpu150

Description

Since v2.0.4, opencode acp stops loading user configuration when building the session/new catalog (the configOptions list). Custom providers (e.g. Ollama), custom agents/modes, and the configured default model are missing; ACP clients like Zed only get built-in models (opencode/*, Google) and the default build/plan modes.

  • Works on 2.0.3 (global and project config both honored).
  • Broken identically on 2.0.4, 2.0.6, 2.0.11.

Plugins

None. Config only: ~/.config/opencode/opencode.json with provider.ollama (baseURL http://localhost:11434/v1), a non-default model, and custom primary agents (~/.config/opencode/agents/*.md). Ollama daemon confirmed running at localhost:11434.

OpenCode version

2.0.4 / 2.0.6 / 2.0.11 (regression); 2.0.3 working

Steps to reproduce

  1. Configure the Ollama provider + models + a custom primary agent as above.
  2. Pipe a raw ACP handshake into opencode acp:
    • send JSON-RPC initialize, then session/new with cwd = the project directory (machine has Ollama running).
  3. Inspect configOptions in the session/new response.

Expected id: "model" options include the Ollama models and currentValue equals the configured default; id: "mode" includes the custom agent.

Actual: 45 built-in models only, default falls back to google/gemini-3.8-flash, modes are build + plan.

Screenshot and/or share link

N/A — raw ACP probe output available on request.

Operating System

macOS (Darwin, arm64)

Terminal

Bare stdio JSON-RPC probe (also reproducible from Zed's agent panel / any ACP client)


Investigation notes (bisected v2.0.3 → v2.0.4, v2 branch):

  • refactor(protocol): remove plugin activation wait — deletes client.plugin.awaitActivation({ location }) from loadCatalog() in packages/cli/src/acp/service.ts; replaced by a 5 s poll that exits on the first enabled model, so config-sourced providers lose the race.
  • refactor(core): split provider and model registries (#48901) — provider visibility is gated on provider.activation === "enabled"; the built-in Ollama plugin only sets that after an async GET /api/tags discovery round, which never completes before the ACP poll exits.

Related: #49630 (custom providers missing in ACP catalog), #34743, #42835, #46311.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions