• v0.9.0 139771c8d8

    feat(tui): live Markdown rendering during text streaming (v0.9.0)

    vh released this 2026-05-24 22:18:45 -07:00 | 246 commits to main since this release

    Replaces v0.8.2's drop-Markdown patch with proper in-place Markdown
    rendering. The transcript becomes a VerticalScroll container; each
    turn's response body lives as a single Static widget whose content
    is updated as Text deltas arrive — Markdown is re-rendered in place
    rather than re-printed on Done. Eliminates the v0.8.x double-print
    without sacrificing rich formatting.

    • transcript: RichLog → VerticalScroll (#transcript-scroll)
    • Text deltas: mount Static(Markdown(buffer)) on first delta;
      Static.update(Markdown(buffer)) on subsequent deltas
    • --raw mode: bypass Markdown, mount Static(plain_str) for the same
      in-place update semantics
    • Terminal events (Done/Error/Cancelled) mount styled label Statics
    • _cancel_via_sse: write → mount Static on the new container
    • _write_turn_headers: transcript gets a styled RichText Static
      ("── turn N ──"); other panes still receive Rule renderables
    • Test suite reshape: bulk rename log → transcript for the
      presenter contract, _mounted_renderables helper extracts
      Static.content for assertion, _spy_writes captures both
      RichLog.write and VerticalScroll.mount
    Downloads