MoonshotAI / MoonshotAI/kimi-cli
VS Code extension: streamed chat text drops individual characters at render/copy layer
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 11.4k
- Forks
- 1.3k
- Avg merge
- 9h 47m
- Merged PRs (30d)
- 2
Description
Summary
In the Kimi Code VS Code extension chat panel, individual characters occasionally go missing from the assistant's rendered message text. The underlying model output is intact — verified against the session wire log — so the loss happens at the rendering (or copy-from-panel) layer.
Evidence
Session wire log (~/.kimi-code/sessions/.../agents/main/wire.jsonl) contains the full correct text, e.g.:
В режиме «спрашивать когда нужно»— displayed/copied asВ режим «спрашивать когда нужно»(missingе)(разрешить — она закроет...)— displayed as(разреш — она закроет...)(missingить)/yolo— displayed as/olo(missingy) — especially harmful for slash commands«продолжай», и она пойдёт— displayed without the closing quote and comma
The dropped characters are single, scattered, and look consistent with a redraw/line-wrap race during streaming in the webview.
Environment
- Extension: moonshot-ai.kimi-code 0.7.5 (darwin-arm64), latest on the marketplace as of 2026-09-05
- VS Code on macOS (Apple Silicon)
- Model: Kimi K2
Impact
Low for prose, but dangerous for commands: a missing character in a slash command or shell snippet silently breaks copy-paste execution.
Suggestion
If the webview re-renders streamed markdown on line-wrap boundaries, consider diffing against the accumulated raw text (source of truth) rather than incremental DOM patches, or re-sync the final message text once streaming completes.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the VS Code extension's chat-panel webview and its streamed markdown rendering or copy-from-panel path. Reproduce streaming text loss while comparing the rendered or copied message with the session wire log, then verify that complete text, including slash commands and punctuation, remains intact after streaming finishes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- vscode
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100