Skip to content

v1.4.3 — Progressive markdown rendering

Choose a tag to compare

@DoyleDev DoyleDev released this 02 Jun 18:21
· 25 commits to main since this release
2021a0e

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