Summary
Long unbroken strings (URLs, tokens, code identifiers, base64, etc.) inside agent chat responses overflow their container in the chat tab, pushing the layout horizontally and breaking the page on the agent detail view.
Context
When an agent returns a response containing a very long single-line string (e.g., a long URL, API key, file path, or JSON blob without spaces), the message bubble does not wrap the text. Instead the bubble grows wider than its column, which forces the entire chat tab — and surrounding page chrome — to scroll horizontally. Markdown code blocks and inline code seem most affected.
Acceptance Criteria
Technical Notes
- Likely fix lives in the chat message component / markdown renderer styles in
src/frontend/src/
- Candidates:
overflow-wrap: anywhere, word-break: break-word, min-width: 0 on flex children, max-width: 100% on pre/code, plus overflow-x: auto on <pre> blocks
- Also check the message bubble container — if it uses
width: max-content or missing min-width: 0 inside a flex column, the child can force overflow regardless of word-break rules
- Verify against
utils/markdown.js (DOMPurify path) — no sanitization changes needed, purely CSS
Summary
Long unbroken strings (URLs, tokens, code identifiers, base64, etc.) inside agent chat responses overflow their container in the chat tab, pushing the layout horizontally and breaking the page on the agent detail view.
Context
When an agent returns a response containing a very long single-line string (e.g., a long URL, API key, file path, or JSON blob without spaces), the message bubble does not wrap the text. Instead the bubble grows wider than its column, which forces the entire chat tab — and surrounding page chrome — to scroll horizontally. Markdown code blocks and inline code seem most affected.
Acceptance Criteria
<pre>/<code>) either wrap or scroll inside the bubble, not pushing layout<code>) with long content wraps viaoverflow-wrap: anywhere(or equivalent)Technical Notes
src/frontend/src/overflow-wrap: anywhere,word-break: break-word,min-width: 0on flex children,max-width: 100%onpre/code, plusoverflow-x: autoon<pre>blockswidth: max-contentor missingmin-width: 0inside a flex column, the child can force overflow regardless of word-break rulesutils/markdown.js(DOMPurify path) — no sanitization changes needed, purely CSS