mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-16 13:03:31 +08:00
The desktop transcript renderer was continuing to inline later nested tool calls under an older parent card even after a new user message had been submitted mid-session. That made the session timeline diverge from CLI behavior, where queued user input becomes the boundary for the next tool round. This change rebuilds the render model around visible message boundaries so nested tool calls only stay attached to a parent within the same contiguous segment. A regression test now covers the interleaved user-message case. Constraint: Preserve existing grouped tool rendering for contiguous parent-child tool activity Rejected: Rework the websocket/session pipeline to synthesize extra transcript events | the bug was in render ordering, not transport semantics Confidence: high Scope-risk: narrow Reversibility: clean Directive: If mid-turn follow-up prompts change again, validate both render ordering and nested child attachment rules together Tested: bun run test --run src/components/chat/MessageList.test.tsx; bun run lint Not-tested: Full desktop app manual session playback against a live running tool turn