VoidReader 1.0.3
VoidReader 1.0.3 — "Scroll Like You Mean It"
The one where diagrams stop cosplaying as thumbnails
Mermaid Diagrams Actually Fill The Page Now
Mermaid was generating SVGs at their "natural" size, which apparently means "sized for ants." Diagrams now scale to fill the reading width using proper CSS vector scaling. Lossless, responsive, legible. Sequence diagrams are no longer a suggestion.
Scroll Performance: Tables Were The Villain
Tables were built from 170+ individual sticky notes (nested VStack/HStack/ForEach). SwiftUI was doing N² layout negotiations every time a table scrolled into view. Switched to Grid — the layout primitive that was right there the whole time. One line change. Massive improvement. We don't talk about it.
Code Blocks Stop Re-Highlighting Every Frame
Syntax highlighting was running on every single view body evaluation. During a 60fps scroll, that's 60 full Highlightr passes per second, per visible code block. Now it highlights once and caches the result. Your CPU sends its regards.
Broken Mermaid Diagrams Stay Broken (Gracefully)
Failed diagrams used to spin up a fresh WKWebView, load mermaid.js, parse, fail, and repeat — every time you scrolled past. Now the first failure gets cached and subsequent encounters skip straight to the code fallback. Click the new info icon to see what mermaid is complaining about.
Automated Release Pipeline
No more hand-carrying DMGs like it's 2004. Push a tag, GHA builds, signs, notarizes with Apple, creates the release, uploads the DMG, and updates the Homebrew cask. The future is now Jiffin.
Install / Update
brew install --cask lazypower/tap/voidreader
# or
brew upgrade --cask voidreaderOr grab the DMG from Releases.
Full Changelog: v1.0.1...v1.0.3