singularity-forge/packages
Jeremy c8c416802f fix(tui): render assistant tool calls inline with text instead of grouped at end
Previously the chat-controller created one AssistantMessageComponent per
assistant message and removed/re-appended it to the chat container's tail
on every tool block, forcing all narration after every tool execution
regardless of stream order. Users had to scroll up to read text that was
written before each tool call.

Replace the reorder hack with a stream-order segment walker that walks
content[] left-to-right, collapses contiguous text/thinking blocks into
text-run segments, emits one segment per tool block, and append-only adds
new segments to chatContainer. AssistantMessageComponent gains a
ContentRange API so a single message can spawn multiple text-run
components, plus a separate showMetadata flag so timestamp/error footers
render only on the trailing segment without duplicating earlier text.

Adds a regression test that streams [text, tool, text, tool, text] and
asserts both interleaved order and per-segment rendered text content.

Closes #4144
2026-04-13 17:23:17 -05:00
..
daemon fix(pi-ai): remove Anthropic OAuth flow for TOS compliance 2026-04-10 17:33:34 -05:00
mcp-server fix(gsd): route quality gates through a per-turn registry 2026-04-12 21:13:16 -05:00
native fix: align @gsd/native module type with compiled output (#3253) 2026-03-30 13:51:57 -06:00
pi-agent-core fix claude code mcp elicitation bridge 2026-04-10 19:24:51 -05:00
pi-ai feat(claude-code): pass thinking level as effort 2026-04-13 18:05:19 +02:00
pi-coding-agent fix(tui): render assistant tool calls inline with text instead of grouped at end 2026-04-13 17:23:17 -05:00
pi-tui fix(pi-tui): filter kitty keypad private-use input (#4026) 2026-04-13 06:51:12 -04:00
rpc-client feat: Headless Integration Hardening & Release (M002) (#2811) 2026-03-26 23:33:22 -06:00