Reasoning/thinking display garbles streamed text with duplicated overlapping chunks
- Dominant language
- Shell
- Stars
- 11.2k
- Forks
- 1.9k
- Avg merge
- 14h 16m
- Merged PRs (30d)
- 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..."
Contributor guide
Assessment
This issue has not been assessed yet.