Skip to content

feat: generic model selection via ACP session/set_model #148

@ironerumi

Description

@ironerumi

Summary

Add generic model selection via ACP session/set_model that works across
any ACP agent advertising available models (Droid, Gemini CLI, Codex, etc.),
not tied to any agent's _meta conventions.

Motivation

Issue #49 covers model passthrough for Claude via _meta.claudeCode.options.model.
This is agent-specific. Agents like Droid, Gemini CLI, and Codex support
session/set_model as a first-class ACP method but don't use _meta.claudeCode.

A generic path is needed so model selection works uniformly across all agents.

Scope

  • --model <id> flag at session creation → calls session/set_model after
    session/new when agent advertises available models
  • acpx <agent> set model <id> during a session → routes through
    session/set_model instead of session/set_config_option
  • Model state tracking, caching, and status enrichment
  • Graceful degradation: agents without model support skip silently;
    ACP-coded rejections produce clear error messages
  • Model cache only updated on successful set (not on rejection)

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions