Repository navigation
v1.4.3 — Progressive markdown rendering
What's new
Live markdown rendering during streaming
Mason used to show raw markdown (## Heading, **bold**, fenced backticks) until the stream finished, then flip the bubble to formatted markdown all at once. Now the response renders progressively as the model types — formatting appears in its final form, never raw.
How it works under the hood: every typewriter tick parses the partial stream and walks a token-aware scanner that finds the last position where all open markdown tokens have closed. The typewriter renders only up to there. Unclosed **, *, `, […](, ``` fences, and any in-progress block-level line are held back invisibly until their closer arrives, then drop into place.
The "Building…" indicator is configurable. Edit THINKING_PHRASES in src/messages.ts to add your own — Mason picks one at random each time it's waiting for the next response. Once content starts streaming, the phrase disappears and the brick animation alone continues below the response.
Smaller things
- Inline streaming chunks render with proper markdown structure (paragraphs, code blocks, links) — no more
<pre-wrap>artifacts colliding with<p>blocks. - Code blocks appear with syntax highlighting and copy button the moment the closing fence lands, rather than streaming partially-highlighted.
Full changelog: v1.4.2...v1.4.3