fix: merge streamed agent message chunks to prevent fragmentation #6835
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
When external agents (e.g., Claude Code) stream responses via WebSocket, each chunk was being rendered as a separate content block, resulting in fragmented display with gaps between chunks.
This change merges consecutive text blocks into a single block before rendering, providing a continuous, readable message display.
Fixes #6834
Solution
Added a mergeConsecutiveTextBlocks() helper function in frontend/src/components/chat/acp/blocks.tsx that:
Modified AgentMessagesBlock component to use this function before rendering, ensuring streamed text appears as a single, readable message.
Technical Details
Additional Changes
The linter auto-fixed 12 other files for code style consistency (naming conventions, type syntax, numeric separators, copyright headers). These are purely formatting changes with no functional impact.
Checklist
Agents panel splits streamed messages into many lines when connected to Claude Code via WebSocket #6834)