ACP: expose contextTier as a session config option (parity with interactive /model picker)
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Shell
- Estrellas
- 11.2k
- Forks
- 1.9k
- Merge medio
- 14 h 16 min
- PR fusionados (30 d)
- 6
Descripción
Describe the feature or problem you'd like to solve
The interactive CLI lets you change the context window tier mid-session (via the /model context tier picker), but the ACP server does not expose contextTier as a session config option. ACP clients can only set the tier at spawn time with --context <tier>, and have no way to discover or change it once the session is running.
Proposed solution
Expose the context tier over ACP with the same shape already used for reasoning_effort:
- Include a
contextTierentry in theconfigOptionsarray returned bysession/new(andsession/load), oftype: "select", with the eligible values for the current model (default,long_context) and the current value. - Accept
session/set_config_optionwithconfigId: "contextTier"and apply it to the live session, exactly as the/modelpicker does interactively. - Only advertise the option for tiered-pricing models, mirroring the interactive behaviour ("context tier picker appears for eligible models").
This closes a parity gap rather than adding new functionality: the capability already exists in the runtime and is reachable from the interactive UI and from settings.json; it is just not reachable through ACP.
Issue #1994 ("Allow reasoning effort discovery and setting via ACP") is the direct precedent — reasoning_effort is now a first-class ACP config option, and contextTier is the remaining sibling setting that isn't.
Example prompts or workflows
- An ACP client (Zed, or any ACP editor integration) shows a "Context Size" picker next to the model and reasoning-effort pickers, populated from
session/new, instead of having to hardcode the tier list per CLI version. - A user on Claude Opus hits a large refactor mid-conversation and switches from
defaulttolong_contextwithout losing session state — today the client must kill and respawncopilot --acp --context long_contextand resume, or the control is simply hidden. - A client drops back from
long_contexttodefaultafter the large task is done, to avoid the surcharge for the rest of the conversation. - A client reads the current tier from
session/loadwhen reconnecting to an existing session, so the UI reflects reality instead of guessing.
Additional context
Reproduced against GitHub Copilot CLI 1.0.75.
The interactive CLI supports hot changes — from copilot help config:
contextTier: context window tier for tiered-pricing models (e.g., "default" or "long_context").
- Can also be set with --context flag (overrides persisted setting)
- Can be changed with /model command (context tier picker appears for eligible models)
ACP does not. Minimal probe over copilot --acp (initialize → session/new → session/set_config_option):
configOptions ids: ["mode","model","reasoning_effort","allow_all"]
contextTier -> {"code":-32602,"message":"Unknown config option 'contextTier'."}
context -> {"code":-32602,"message":"Unknown config option 'context'."}
contextSize -> {"code":-32602,"message":"Unknown config option 'contextSize'."}
So reasoning_effort is exposed but contextTier is not, even though both are per-session model settings adjustable from the interactive /model flow.
Current workaround and why it's poor. The tier can only be pinned at spawn time via --context <tier>. Changing it for a running conversation requires terminating the agent process and respawning it with a different flag, then reloading the session — an intrusive lifecycle operation for what is a per-request setting, and one that ACP clients cannot make feel like the interactive picker.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la opción de configuración de ACP existente reasoning_effort como precedente y, a continuación, sigue el anuncio y el manejo de session/new y session/load, así como de session/set_config_option. Compara esas rutas con el comportamiento del selector interactivo /model y de --context. Se considera terminado cuando los modelos elegibles exponen el contextTier actual y los clientes pueden cambiarlo durante una sesión activa sin reiniciar.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- shell
- Área
- api, cli
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Activo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 65/100