Skip to content

feat(acp): expose current model in SessionInfoUpdate and session/list response #2435

@bug-ops

Description

@bug-ops

Problem

In ACP sessions, the currently active model is not visible to the client after session creation:

  1. session/newconfigOptions advertises models as a select-option (correct), but the client must guess which one is active if the session was resumed or if the model was changed mid-session.
  2. session/update streams SessionInfoUpdate only for title changes — model field not included.
  3. session/list response does not include current model per session.

Result: IDE clients (Zed, OpenCode) cannot display which model is active in the session header without issuing session/new again.

Expected Behavior

  • After model switch via session/set_config_option with configId=model, a SessionInfoUpdate should be streamed with the new current_model value.
  • session/list entries should include the current model key.
  • SessionInfoUpdate already exists in the codebase (used for title) — extend it to carry configOptions or a dedicated model field on change.

ACP Spec Reference

agent-client-protocol 0.10.3 / schema 0.11.1 introduces session_info_update as a stable mechanism for streaming session metadata to clients. Model visibility is a natural use case.

Implementation Sketch

In crates/zeph-acp/src/agent/helpers.rs loopback_event_to_session_updates: add a LoopbackEvent::ModelChanged variant that emits SessionInfoUpdate::new().config_options(build_config_options(...)) with the updated model selected.

In handle_set_config_option: fire the ModelChanged loopback event after updating current_model.

Metadata

Metadata

Assignees

Labels

P2High value, medium complexityenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions