chore(acp): mirror SDK ACP provider bump (claude 0.44, codex 0.16, gemini 0.46)#211
Conversation
…mini 0.46) Sync src/models/acp-providers.json to OpenHands/software-agent-sdk ACP_PROVIDERS after the provider-CLI bump + configOptions model-selection change (SDK #3773): - default_command versions: claude-agent-acp 0.30.0->0.46.0, codex-acp 0.15.0->0.16.0, gemini-cli 0.38.0->0.46.0. - claude supports_set_session_model false->true; available_models -> default/opus[1m]/sonnet/haiku; default_model -> opus[1m]. - gemini default_session_mode yolo->default; available_models reconciled to the CLI's availableModels; default_model auto-gemini-2.5 -> auto. - codex models unchanged (0.16 accepts the same combined ids). Regenerated directly from the SDK registry, so the validate-acp-providers drift gate passes once SDK #3773 lands on main (the gate tracks sdk@main). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
✅ Review complete. This review was performed through OpenHands Cloud Automation. You can log in and view the conversation here. |
all-hands-bot
left a comment
There was a problem hiding this comment.
Code Review: PR #211
🟢 Good taste — This is a straightforward configuration file update that mirrors upstream provider version bumps. No code logic changes, no complexity introduced.
Summary
This PR updates the ACP (Agent Client Protocol) provider configuration to match updated upstream package versions:
| Provider | Old Version | New Version |
|---|---|---|
| claude-code | 0.30.0 | 0.46.0 |
| codex | 0.15.0 | 0.16.0 |
| gemini-cli | 0.38.0 | 0.46.0 |
Model lists are also updated to reflect the current available models from each provider.
Notable Changes
- Claude Code:
supports_set_session_modelenabled (false→true), model list simplified to use canonical model IDs - Gemini CLI:
default_session_modechanged from"yolo"to"default"— this is worth noting as it may affect behavior for existing users
Observations
- No breaking API changes: This is a configuration-only change
- No new dependencies: All packages are well-established (Anthropic, OpenAI, Google)
- Version bumps are incremental: These are point releases, reducing risk
- Model ID changes: The new model IDs (e.g.,
"default","opus[1m]","auto") appear to be provider-canonical IDs
One Consideration
The change from "yolo" to "default" for gemini-cli's default_session_mode deserves a mention — if users have come to rely on "yolo" behavior, this could be a behavior change. However, "default" is generally the safer choice for a default configuration.
[RISK ASSESSMENT]
- [Overall PR]
⚠️ Risk Assessment: 🟢 LOW
Configuration-only change with well-established upstream packages. The gemini-cli session mode change from "yolo" to "default" is a minor behavioral consideration but not a technical risk.
VERDICT:
✅ Worth merging — Clean configuration sync, mirrors SDK changes as indicated by the PR title.
KEY INSIGHT:
This is a configuration-only change with no code logic modifications. The main consideration is the gemini-cli session mode default change from "yolo" to "default" which may affect existing user behavior.
This review was generated by an AI agent (OpenHands) on behalf of the user through OpenHands Automation. View conversation
Match SDK #3773: claude-agent-acp held at 0.44.0 (0.45.0/0.46.0 are <7 days old and trip the supply-chain hold; 0.44.0 has the same configOptions mechanism and model set). codex-acp 0.16.0 / gemini-cli 0.46.0 unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Match SDK #3773: codex-acp held at 0.15.0 (0.16.0 regresses the turn after a model switch — set_config_option applies but the next prompt -32603s; 0.15.0 set_session_model switch + turn works). claude-agent-acp 0.44.0 / gemini-cli 0.46.0 unchanged.
Match SDK #3773: codex-acp 0.16.0 (un-held). The SDK splits the combined `<model>/<effort>` id into bare model + separate reasoning_effort for codex's 0.16 configOptions mechanism, so switching works. claude 0.44.0 / gemini 0.46.0 unchanged; codex model list (combined ids) unchanged.
Match the SDK registry: codex available_models become bare presets (gpt-5.5, gpt-5.4, gpt-5.4-mini) with default gpt-5.5. Reasoning effort is a separate configOption, no longer encoded in the model id. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sync the TS-side ACP registry with the openhands-sdk change adding `gemini-3.1-pro-preview` to the gemini-cli model list. Verified an exact mirror via scripts/check-acp-drift.py against the SDK branch. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Why
src/models/acp-providers.jsonis a hand-maintained mirror of the SDK'sACP_PROVIDERS, enforced by the non-optionalvalidate-acp-providersdriftgate (which compares field-for-field against
software-agent-sdk@main). The SDKjust bumped the three ACP provider CLIs and reworked model selection
(OpenHands/software-agent-sdk#3773), so this mirror must move in lockstep.
Summary
default_commandversions: claude-agent-acp0.30.0→0.44.0, codex-acp0.15.0→0.16.0, gemini-cli0.38.0→0.46.0.supports_set_session_modelfalse→true;available_models→default/opus[1m]/sonnet/haiku;default_model→opus[1m].default_session_modeyolo→default;available_modelsreconciledto the CLI's
availableModels;default_modelauto-gemini-2.5 → auto.Regenerated directly from the SDK registry via the same normalization the drift
gate uses, then prettier-formatted.
Issue Number
OpenHands/software-agent-sdk#3772
How to Test
Passes against an SDK checkout that includes #3773. Until #3773 merges to SDK
main, thevalidate-acp-providersCI job stays red (it pinssdk@main,which still has the pre-bump registry) — this is the expected lockstep ordering
from the issue. I verified the JSON matches the #3773 registry exactly with the
gate's own
_normalizecomparison (result:MATCH).Type
Notes
Order of operations (issue #3772): merge SDK #3773 → cut SDK release → merge this
@openhands/typescript-client.Once published, agent-canvas picks up the new commands/models at runtime;
ACP_VERTEX_SAFE_MODEL = "gemini-2.5-pro"stays valid (still in the list).