What's Fixed
Text no longer runs together between tool calls 🔧
Root cause: When Claude uses tools (Edit, Bash, etc.) between text blocks, the streaming protocol resets the content block index to 0 on each new turn. The paragraph separator (\n\n) was only injected for blocks with index > 0 — so cross-turn text was concatenated without any spacing.
Fix: A _hasEmittedText flag now tracks text emission across turns, ensuring \n\n is always injected between text blocks regardless of index.
Underscores in filenames preserved 🐍
file_name_here,DRIVE_PERSONAL_FOLDER,__init__.py— underscores no longer disappear- Inline code (backticks) is now extracted before bold/italic processing, protecting content like
`config_db_host` _and__emphasis regexes now use word-boundary checks (CommonMark-like) — mid-word underscores in snake_case identifiers are no longer treated as formatting
Cleaner message bubbles 💬
- First/last element margin reset — no more extra spacing at top/bottom of message bubbles
- Code blocks are no longer wrapped in invalid
<p><pre>...</pre></p>HTML - Consecutive
>blockquote lines merge into a single visual block instead of showing gaps - Added
<del>(strikethrough) CSS styling
Files Changed
claude-cli.js— cross-turn paragraph separator fixpublic/index.html— markdown renderer + CSS improvements