github / github/copilot-cli

Reasoning/thinking display garbles streamed text with duplicated overlapping chunks

Ouverte
#3,755 5 commentaires 2 réactions 0 personnes assignées Voir sur GitHub
area:terminal-rendering
Langage dominant
Shell
Étoiles
11.2k
Forks
1.9k
Merge moyen
14 h 16 min
PR mergées (30 j)
6

Description

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

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.