github / github/copilot-cli

Reasoning/thinking display garbles streamed text with duplicated overlapping chunks

Abierto
#3,755 5 comentarios 2 reacciones 0 asignados Ver en GitHub
area:terminal-rendering
Lenguaje dominante
Shell
Estrellas
11.2k
Forks
1.9k
Merge medio
14 h 16 min
PR fusionados (30 d)
6

Descripción

### 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..."

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.