Agent chat inserts a completed tool-status line mid-word in assistant text

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

While the assistant is streaming a short preamble and then running tools (including Web Search), the chat UI injects a completed tool-status line into the middle of the assistant’s sentence. The break can land mid-word. The rest of the sentence continues after the status line. Reloading the thread does not put the sentence back together.

The reply finishes. Only the layout is wrong.

Actual

The status line is inserted between tonight and 's, so tonight's is split:

I'll check the BE1050G3 manual and tonight
Searched web  APC Back-UPS BE1050G3 power button long...
's PowerChute logs — a long press is usually power-off, so
the "on but battery outlets dead" state is the part to explain.

Screenshot attached.

Why this looks like a renderer bug

The stored assistant message for that turn is a single text part with the full sentence, then the tool calls. The model did not emit a broken string. The UI flushed some tokens, dropped the completed “Searched web …” row into that stream, and never merged the remaining tokens back into one paragraph.

The status text matches the Web Search query (APC Back-UPS BE1050G3 power button long…).

What this is not

This is not the “reply stops mid-sentence / have to type continue” class of reports. Generation completed. Only the chat layout is wrong.

Impact

The pane is harder to read. A quick skim looks like the model produced broken English. The broken layout stays in the thread after the turn ends.

Steps to Reproduce

Not 100 percent reliable. It shows up sometimes on turns that look like this:

  1. In Agent chat, ask something that needs a web search plus other tools.
  2. The assistant starts a one-sentence preamble (“I’ll check …”) and then calls Web Search (and often other tools in the same turn).
  3. Watch the chat as the “Searched web …” status appears.

The status line lands inside the streaming sentence instead of after it.

Expected Behavior

Tool-status rows sit between complete blocks of assistant text, or after the preamble, never inside a word.

I'll check the BE1050G3 manual and tonight's PowerChute logs —
a long press is usually power-off, so the "on but battery
outlets dead" state is the part to explain.

Searched web  APC Back-UPS BE1050G3 power button long...

Keep tool-status widgets as sibling blocks at tool boundaries, not inline in the streaming text buffer. If a search finishes while a sentence is still streaming, render the status after the current text block (or after the turn’s text), not at the last token flush.

Screenshots / Screen Recordings

Operating System

Windows 10/11

Version Information

Version: 3.17.21 (user setup)
VSCode Version: 1.128.0
Commit: 8f2a112cb2845a97b75fd932ea5c470579ca4060
Date: 2026-08-25T01:05:08Z
OS: Windows_NT x64 10.0.26200

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey @Hyphen
You’ve read it right, the reply completes fine, only the layout is off: a tool-status row can drop into the streaming sentence (sometimes mid-word) and the split then sticks, even after reload.

Nothing on your end, and it’s an issue we’re already tracking. No reliable workaround for now (it comes down to streaming timing), but it’s purely cosmetic. I’ll post here when there’s an update.