Skip to content

v0.13.1

Choose a tag to compare

@mortondev mortondev released this 29 Jun 22:50
003c850

This release fixes dark-mode theme flashing and its cache keying, repairs slug generation for non-Latin and symbol-only board and help-center names, makes inbound chat email replies deliver reliably, restores images in API/MCP/webhook content, and splits the CSAT webhook so integrations stop double-counting ratings. It also adds a presentation-only published-date override for changelog entries.

Features

  • Changelog published-date override. Set or clear a presentation-only published date on a live changelog entry, separate from when it actually went live. The portal list, detail, feed, and sitemap all use the chosen date, and it never sends notifications. (#288)

Bug fixes

  • No more white flash in dark mode. The server now commits the resolved theme straight onto the rendered page, so dark-mode visitors no longer see a white flash on load. The system setting is resolved server-side too on browsers that report the OS preference, and the response is cache-keyed correctly so a shared cache can't serve a mismatched theme. (#297, #298)
  • Images preserved in API, MCP, and webhook content. Rich-text posts, changelog entries, and help-center articles dropped embedded images from the markdown returned by the REST API and MCP and emitted in webhook and notification payloads. Markdown is now rendered from the source rich text so images survive as ![alt](src), and existing entries self-heal without a backfill. (#317, fixes #292)
  • Valid slugs for non-Latin and symbol-only names. Board and help-center names in scripts like Chinese, Japanese, or Korean (or emoji- and punctuation-only names) no longer produce an empty slug that broke board selection and help-center routing. Names are transliterated to a readable slug, with a safe fallback when nothing remains, and existing broken slugs are healed. (#295, closes #285)
  • Inbound chat email replies deliver again. Agent reply-to addresses exceeded the 64-character local-part limit some providers enforce, so inbound replies were rejected and never reached the visitor. The address now stays within the limit. (#294, fixes #293)
  • CSAT webhook no longer double-counts. A satisfaction survey now emits conversation.csat_submitted exactly once when the rating is banked, and an optional follow-up comment rides its own conversation.csat_comment_added event, so integrations stop double-counting a rating when a visitor adds a comment. (#299)
  • Reliable changelog publish notifications. Publish notifications now fire exactly once per entry and recover automatically if the delivery job is dropped, so subscribers are never missed or notified twice.

Full Changelog: v0.13.0...v0.13.1