Bug: Copilot CLI 1.0.82 BYOK silently disables prompt caching (~5x cost)
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
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
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/completionsendpoint 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
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de github/copilot-cli
-
area:sessions
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
github/copilot-cli#4996 ·
Mantenedores costumam responder em até 1 dia
-
triage
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
github/copilot-cli#4963 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
github/copilot-cli#4932 ·
Mantenedores costumam responder em até 1 dia
-
triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
github/copilot-cli#4909 ·
Mantenedores costumam responder em até 1 dia
-
triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
github/copilot-cli#4906 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de github/copilot-cli
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
AppImage/appimage.github.io#9676 ·
Mantenedores costumam responder em até 1 dia
-
Link Checker ReportAbertaautomated issue report
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
a2aproject/A2A#2289 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
YunoHost-Apps/pixelfed_ynh#346 ·
-
documentation
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
Mantenedores costumam responder em até 1 dia