Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Bug: Copilot CLI 1.0.82 BYOK silently disables prompt caching (~5x cost)

Aberta
#4,720 0 comentários 1 reação 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
55/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
shell
Domínio
api, cli

Direção de pesquisa

Localize o BYOK request builder e compare a construção da request com o subscription path e o comportamento da versão 1.0.80 descrito na issue. Verifique se a prompt-cache declaration está presente e, em seguida, execute uma sessão BYOK multi-turn contra um Anthropic-model endpoint e confirme que as métricas de cache-write e cache-read não são mais zero.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

area:models area:networking

Summary

Copilot CLI 1.0.82 in BYOK mode sends chat requests that carry no prompt-cache declaration, so prompt caching is effectively disabled for the whole session. Every turn re-sends the entire growing context at full price — provider usage shows cached_tokens=0 and cache_write/cache_creation_tokens=0 on every request across the session, even though the prefix is stable.

Net effect: ~5x cost for normal multi-turn BYOK sessions.

Setup

  • Copilot CLI 1.0.82, BYOK mode (custom OpenAI-compatible /chat/completions endpoint serving an Anthropic model, claude-sonnet-5)
  • Compare baseline: same machine, same endpoint/model, 1.0.80 BYOK → prompt caching works (~97% hit)
  • Also tested 1.0.82 in GitHub-subscription mode on the same machine → caching works, so the build is cache-capable

Expected

Once a conversation prefix stabilizes, the provider should report cached_tokens > 0 and small cache_creation_tokens for the new tail (that's what 1.0.80 BYOK and subscription mode report).

Actual

Every request reports zero cache metrics:

"prompt_tokens_details": {
  "text_tokens": 146022,
  "cached_tokens": 0,
  "cache_write_tokens": 0,
  "cache_creation_tokens": 0,
  "cache_creation_token_details": { "ephemeral_5m_input_tokens": 0 }
},
"cache_read_input_tokens": 0

Over a 150-request session, text_tokens climbed monotonically 118,966 → 285,085 while cached_tokens and cache_write/creation_tokens stayed 0 every time. The zero cache-write/creation is the strong signal: even a cold miss should write the prefix so the next turn can hit; a persistent 0 write means the request never asks for a cache at all.

Evidence

Metric 1.0.82 BYOK (broken) 1.0.80 BYOK (baseline)
Requests 150 320
Input tokens 30,075,042 100,762,401
Cached tokens 0 98,424,636
Cache hit rate 0% 97.7%
Cost $61.21 $28.92

With normal caching, 30.1M input ≈ $11.4; at 0% it costs ≈ $60.2 → ~$49 (~5x) wasted in a single session.

Root-cause hypothesis

The 1.0.82 BYOK request builder omits the prompt-cache declaration (cache_control / ephemeral-cache policy) that subscription mode injects. Because BYOK calls the user's endpoint directly, the missing declaration is only visible to BYOK users.

Severity

High — silent runaway cost on BYOK setups; no CLI error, only a much larger bill. Requires monitoring provider cache hit-rate to detect.

Suggested fix

Make the BYOK path send the same prompt-cache declaration used by subscription mode.

Repro note

I cannot reproduce right now (downgraded to 1.0.80 where caching works). Reproducing requires running 1.0.82 in BYOK against an Anthropic-model endpoint and reading provider cache accounting. Happy to help test a newer build backported if there's a fix candidate.

Linguagem predominante
Shell
Estrelas
11.2k
Forks
1.9k
Merge médio
17h 6min
PRs com merge (30d)
5

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de github/copilot-cli

Todas as issues de github/copilot-cli

Issues semelhantes

Mais issues de Shell/Bash

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.