github / github/copilot-cli

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

Ouverte
#4,233 2 commentaires 3 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

area:non-interactive
Langage dominant
Shell
Étoiles
11.2k
Forks
1.9k
Merge moyen
14 h 16 min
PR mergées (30 j)
6

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez au point d’entrée --acp et suivez la gestion de session/new, session/load, session/resume et prompt-turn. Comparez les données existantes de /context, /usage et statusline avec le schéma ACP session/update, puis vérifiez que usage_update signale used, size, cost et les métadonnées AI-credit demandées après chaque événement du cycle de vie.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
shell
Domaine
cli
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.