Skip to content

release: v0.13.5#47

Merged
ThomasK33 merged 1 commit into
mainfrom
release/v0.13.5
Jun 2, 2026
Merged

release: v0.13.5#47
ThomasK33 merged 1 commit into
mainfrom
release/v0.13.5

Conversation

@ThomasK33

Copy link
Copy Markdown
Member

Summary

Upgrades the ACP schema to v0.13.5 (make release VERSION=0.13.5) and regenerates the Go bindings.

⚠️ Heads-up: session/set_model is gone — but model selection is not

The 0.13.5 protocol release removed the unstable-only session model API:

  • session/set_model method
  • SetSessionModelRequest / SetSessionModelResponse
  • ModelId, ModelInfo, SessionModelState (availableModels / currentModelId)
  • the models fields on session responses

This is not functionality being removed — it has moved. Model selection now
flows through the generic, stable session/set_config_option framework, where
a session config option carries a semantic category of "model" ("Model selector"),
alongside the mode and thought_level categories. The same uniform "session config
options" API now covers model, mode, and reasoning-level selection instead of a bespoke
method per selectable thing.

Concretely, instead of session/set_model, a client now:

  1. Reads the agent-advertised configOptions (a SessionConfigSelect with currentValue + options) where category == "model".
  2. Calls session/set_config_option { sessionId, configId, value } to switch model.
  3. Receives the full updated configOptions back (and may get config_option_update via session/update).

session/set_config_option and the SessionConfigOptionCategory enum already existed
in v0.13.4 and are unchanged by this bump — 0.13.5 simply retired the redundant
experimental path. acp.SessionConfigOptionCategoryModel is present in the regenerated
types_gen.go.

Upstream rationale (maintainer)

From the upstream PR that removed it:

"Session config options have been around long enough, so cleaning up the old iteration."

And the doc line added by that PR:

"The never-stabilized session/set_model API and related session model response fields
have been removed from the protocol artifacts. Agents should continue to expose model
selection through Session Config Options."

A companion PR removed the dedicated model/mode APIs from the draft v2 protocol too —
so there is no separate "v2" model API; v2 also routes through session config options.

Impact

Because the model API was never stabilized (it only ever lived in schema.unstable.json),
no stable surface breaks. The only affected code is anything implementing/calling the
experimental UnstableSetSessionModel* symbols.

Changes

  • Regenerated: types_gen.go, agent_gen.go, client_gen.go, constants_gen.go, schema JSON, README.md, version files.
  • Hand-edited (non-generated) follow-ups to keep the tree compiling:
    • example/agent/main.go — dropped the now-removed UnstableSetSessionModel implementation.
    • acp_test.go — dropped the UnstableSetSessionModelFunc field and its method.

Verification

  • make test (go test ./... + go build ./example/...) passes.
  • Ran the example/clientexample/agent end-to-end ACP session over stdio: Initialize → NewSession → Prompt → permission round-trip → end-of-turn, exit 0.
  • Probed the removed method directly: session/set_model now returns -32601 Method not found, while a still-supported method (initialize) returns a normal result.

🤖 Generated with Claude Code

Upgrade the ACP schema to v0.13.5 and regenerate bindings.

The v0.13.5 protocol release removed the never-stabilized, unstable-only
`session/set_model` method (and SetSessionModelRequest/Response, ModelId,
ModelInfo, SessionModelState, and the `models` fields on session responses).
Model selection is not going away: it now flows through the generic, stable
`session/set_config_option` framework via the "model" config-option category.

Hand-edited (non-generated) follow-ups to keep the tree compiling:
- example/agent/main.go: drop the now-removed UnstableSetSessionModel impl
- acp_test.go: drop the UnstableSetSessionModel func field and method

Upstream rationale: agentclientprotocol/agent-client-protocol#1325
("Session config options have been around long enough, so cleaning up
the old iteration.") and #1324.

Change-Id: I897316b046c99627fc93ca997231c3b9ec625cbe
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Thomas Kosiewski <tk@coder.com>
@ThomasK33 ThomasK33 merged commit 0845a3b into main Jun 2, 2026
1 check passed
@ThomasK33 ThomasK33 deleted the release/v0.13.5 branch June 2, 2026 14:23
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.

1 participant