github / github/copilot-cli

ACP: expose contextTier as a session config option (parity with interactive /model picker)

Abierto
#4,275 3 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

area:configuration area:non-interactive
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:

  1. Include a contextTier entry in the configOptions array returned by session/new (and session/load), of type: "select", with the eligible values for the current model (default, long_context) and the current value.
  2. Accept session/set_config_option with configId: "contextTier" and apply it to the live session, exactly as the /model picker does interactively.
  3. 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
  1. 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.
  2. A user on Claude Opus hits a large refactor mid-conversation and switches from default to long_context without losing session state — today the client must kill and respawn copilot --acp --context long_context and resume, or the control is simply hidden.
  3. A client drops back from long_context to default after the large task is done, to avoid the surcharge for the rest of the conversation.
  4. A client reads the current tier from session/load when 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/newsession/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

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.