github / github/copilot-cli

Reasoning/thinking display garbles streamed text with duplicated overlapping chunks

Aberta
#3,755 5 comentários 2 reações 0 responsáveis Ver no GitHub
area:terminal-rendering
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

Abrir o 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

Receba novas issues na sua caixa de entrada

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