github / github/copilot-cli

[ACP] Emit `usage_update` in `--acp` mode (context window + AI credits) for parity with the interactive statusline

Abierto
#4,233 2 comentarios 3 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

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

copilot --acp never emits the ACP usage_update session update, so ACP clients (Zed, etc.) can't show a context-window or AI-credit usage indicator for Copilot — even though the CLI already computes this data for /context, /usage, and the statusline.

Proposed solution
Summary

When Copilot CLI runs in ACP mode (copilot --acp), it never sends the ACP
session/update notification with sessionUpdate: "usage_update". As a result,
ACP clients (Zed and other editors/tools integrating over ACP) cannot show a
context‑window usage indicator or AI‑credit usage for Copilot — even though the
CLI already computes this data and surfaces it in interactive mode.

The gap: interactive mode has it, ACP mode doesn't

In interactive mode the data is already there:

  • The experimental statusLine.command receives JSON with
    context_window.current_context_tokens, context_window.displayed_context_limit,
    context_window.current_context_used_percentage, etc.
  • /context shows the context‑window breakdown.
  • /usage shows AI credits used in the current session.

But in --acp mode none of it is forwarded — the client only ever receives
agent_message_chunk, tool_call, available_commands_update, etc., and never a
usage_update (even though the type is part of the ACP schema the CLI already speaks).

Why it matters
  • ACP standardized session usage reporting (Session Context Size & Cost RFD).
    usage_update carries { used, size } (+ optional cost) and powers Zed's
    context‑window indicator.
  • Other ACP agents (e.g. Claude Code via claude-agent-acp) emit usage_update, so
    their users get a live context indicator in Zed. Copilot users don't — Zed falls
    back to inaccurate estimation (see zed-industries/zed#44909, where Copilot models
    show a hardcoded 128k limit that doesn't match the real limit).
  • For long agentic sessions, knowing how close you are to compaction — and how many
    credits you've spent — is valuable.
Request

In --acp mode, emit session/update with sessionUpdate: "usage_update":

  • After session/new, session/load, session/resume, and after each prompt turn.
  • Populate the standard fields: used (current context tokens), size (context
    window size), and cost (session cost) when available.
  • For AI credits (used / remaining) — which have no standard ACP field — attach them
    via the update's _meta (already part of the usage_update schema), e.g.
    _meta: { ai_credits_used, ai_credits_remaining }.

This brings ACP mode to parity with the interactive statusline / /context /
/usage, with no new data to compute — just forwarding what already exists over the
protocol the CLI already implements.

References
  • ACP usage_update (Session Context Size & Cost RFD)
  • Zed context indicator; zed-industries/zed#44909 (Copilot token limits estimated / incorrect)
  • Related CLI requests: #2052 (persistent token/context indicator), #1953 (always‑visible context status)
Example prompts or workflows

No response

Additional context

No response

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 en el punto de entrada --acp y sigue el manejo de session/new, session/load, session/resume y prompt-turn. Compara los datos existentes de /context, /usage y statusline con el esquema ACP session/update y verifica después que usage_update informe de used, size, cost y los metadatos de AI-credit solicitados tras cada evento del ciclo de vida.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
shell
Área
cli
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.