Reasoning/thinking display garbles streamed text with duplicated overlapping chunks
- Linguagem predominante
- Shell
- Estrelas
- 11.2k
- Forks
- 1.9k
- Merge médio
- 14h 16min
- PRs com merge (30d)
- 6
Descrição
### Describe the bug
When the live reasoning ("thinking") display is enabled (showReasoning: true), the
streamed reasoning text renders with heavily duplicated, overlapping fragments. Word
and phrase boundaries are re-emitted, e.g. "from" renders as "fromply from", "number"
as "numbnumber", and whole phrases like "device under test" print three times in a row.
The bug is isolated to the reasoning stream only — the final answer / normal assistant
output renders correctly. It looks like the reasoning renderer appends streamed token
deltas without de-duplicating overlapping chunk boundaries (the final-answer path does
not exhibit this).
### Affected version
GitHub Copilot CLI 1.0.61.
### Steps to reproduce the behavior
1. Ensure showReasoning is enabled (default; ctrl+t / settings.json "showReasoning": true).
2. Start the CLI and submit a prompt that triggers a long reasoning pass
(e.g. model claude-opus-4.8 with effortLevel: max).
3. Watch the live reasoning/thinking text as it streams in.
4. Observe duplicated, overlapping fragments in the reasoning block.
### Expected behavior
The reasoning/thinking text should stream cleanly, with each token delta appended once
and no duplicated/overlapping characters — i.e. it should render like the final answer
does.
### Additional context
Isolation already performed:
- Reasoning display ONLY; final-answer rendering is unaffected.
- Resizing the terminal does NOT fix it -> rules out terminal-width / redraw-drift.
- Not a version issue: 1.0.61 is the latest published build.
- Workaround that fully avoids it: disable reasoning (ctrl+t, or
/settings set showReasoning false).
Environment:
- Terminal: Alacritty (Wayland, WAYLAND_DISPLAY=wayland-0)
- TERM=xterm-256color, COLORTERM=truecolor, LANG=en_US.UTF-8
- No multiplexer (no tmux/screen)
- OS: Linux
- CLI: v1.0.61
- Model: claude-opus-4.8, effortLevel: max, contextTier: long_context
Sample of garbled output:
"the echo reply fromply from the laptop baback to the device under tesder test...
the ID field 0xAE51 matches... the device under test had a valid checksum — the
device under test... numbnumber 11264..."
Guia de contribuição
Direção de pesquisa
Comece reproduzindo o problema com showReasoning habilitado e um prompt de raciocínio longo; em seguida, rastreie o caminho de exibição do stream de raciocínio da CLI e compare-o com o caminho de renderização da resposta final. Considera-se concluído quando o raciocínio transmitido renderiza cada delta de token uma única vez, sem texto duplicado ou sobreposto, enquanto a saída normal permanece inalterada.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- shell
- Domínio
- cli
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Pouca atividade
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 50/100