You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: Using Explanatory Output Style plugin in CC causes broken output #10711
Confirmed as a web/desktop markdown rendering bug (minor / cosmetic). The Explanatory Output Style plugin is doing what it is supposed to: a SessionStart hook tells Claude to emit ASCII-art insight fences like:
Claude Code’s own CLI special-cases that into a boxed callout. T3 does not. We persist the text as a normal assistant message and run it through ChatMarkdown.
We already tried to meet this halfway in #4344 (closed #3652) by turning on lineBreaks when the message matches ★ Insight. That restored newlines so the block no longer collapses to one paragraph, but the ─ box-drawing still wraps (overflow-wrap: anywhere) and draws a rule through the first insight line — matching the second screenshot. This is leftover from that fix, not a duplicate of #3652.
Not the same class of issue as #7644 (terminal), #3747 (error JSON), or #1147 (tool metadata leak).
Mobile also missing: ThreadFeedAssistantMarkdownContent has no insight detection and does not preserve soft breaks for these blocks
Suggested fix
Parse the ★ Insight / trailing ─ fences out of assistant text and render a dedicated callout (title + body). Do not send the box-drawing through markdown. Same split on web and mobile. The learning-output-style plugin uses the same fence, so one parser covers both.
Reproduced on Linux in the web dev app at ed9b7ca9c5, using Claude Code 2.1.303 with explanatory-output-style@anthropic-plugin-directory enabled locally and the reported prompt. Insight fences render as inline code, with explanatory text running into the rules instead of a separate block.
Existing fix candidate: #22239. No competing PR opened; leaving this issue open pending that work. Its fix has not been independently verified here.
Activity
juliusmarminge commentedon Sep 8, 2026
Triage
Confirmed as a web/desktop markdown rendering bug (minor / cosmetic). The Explanatory Output Style plugin is doing what it is supposed to: a SessionStart hook tells Claude to emit ASCII-art insight fences like:
Claude Code’s own CLI special-cases that into a boxed callout. T3 does not. We persist the text as a normal assistant message and run it through
ChatMarkdown.We already tried to meet this halfway in #4344 (closed #3652) by turning on
lineBreakswhen the message matches★ Insight. That restored newlines so the block no longer collapses to one paragraph, but the─box-drawing still wraps (overflow-wrap: anywhere) and draws a rule through the first insight line — matching the second screenshot. This is leftover from that fix, not a duplicate of #3652.Not the same class of issue as #7644 (terminal), #3747 (error JSON), or #1147 (tool metadata leak).
Where to fix
MessagesTimeline.logic.ts/AssistantTimelineRow/ChatMarkdownThreadFeedAssistantMarkdownContenthas no insight detection and does not preserve soft breaks for these blocksSuggested fix
Parse the
★ Insight/ trailing─fences out of assistant text and render a dedicated callout (title + body). Do not send the box-drawing through markdown. Same split on web and mobile. Thelearning-output-styleplugin uses the same fence, so one parser covers both.Workaround for now: disable the plugin.
juliusmarminge commentedon Oct 22, 2026
Reproduced on Linux in the web dev app at ed9b7ca9c5, using Claude Code 2.1.303 with explanatory-output-style@anthropic-plugin-directory enabled locally and the reported prompt. Insight fences render as inline code, with explanatory text running into the rules instead of a separate block.
Existing fix candidate: #22239. No competing PR opened; leaving this issue open pending that work. Its fix has not been independently verified here.