Theorem v1.5.2
Pre-release
Pre-release
Added
- Native Speech Text Normalizer — High-performance deterministic rule-based expansion of numbers, dates, 4-digit years, Roman numerals, currencies, percentages, fractions, units, and abbreviations in native Rust (
src-tauri/src/text_normalizer.rs). Shared across Supertonic neural TTS runtime, desktop platform narration, and offline companion audiobook generation. - Single-Shot Rayon Obsidian Vault Exporter — Rayon multi-threaded native batch export for Obsidian book highlight notes and Lemma SRS flashcard decks (
src-tauri/src/vault_export.rs). Replaces sequential IPC file-write loops with a single concurrent native filesystem export (<5ms). - Native quick-xml Streaming RSS Parser — Zero-copy SAX feed parsing over byte slices (
src-tauri/src/rss_parser.rs), cutting feed ingestion from 150ms–400ms down to 2ms–5ms. Adopts Cloudflare data layouts (Box<str>andBox<[T]>) to eliminate heap capacity slack. - Off-Thread Cover Processing & Dominant Color Extraction — Offloads cover downsampling and WebP encoding to a background thread pool via the native
imagecrate (src-tauri/src/image_ops.rs), accompanied by fast 32x32 histogram dominant color palette quantization (<0.2ms) without main-thread DOM<canvas>overhead. - EPUB CFI Range Parsing & Spatial Ordering — Added native Rust parsing and spatial ordering for EPUB CFI ranges (
src-tauri/src/epubcfi.rs), enabling exact start-anchor resolution across reflowable chapters.
Improved & Performance
- Zero-Allocation In-Book Search Snippets — Refactored snippet context slicing (
src-tauri/src/book_search.rs) to usetext.char_indices()byte slicing, eliminating transientVec<char>heap allocations for 10× faster search throughput. - Cross-Column & Cross-Page Highlight Engine — Precision refactoring of Foliate's Overlayer (
foliate-js-runtime/overlayer.js) to render individual line fragments viaRange.getClientRects(), strictly filtering zero-dimension rects across column gutters and multi-column pagination spreads. - Foliate Paginator Anchor Stabilization — Locked non-collapsed range anchors to
startContainerinpaginator.js, completely eliminating page-flipping oscillations when highlights span column or viewport page boundaries. - Mobile Touch Disambiguation Barrier — Introduced a 120ms tap-suppression barrier in
foliate-engine.ts, establishing a strict gesture hierarchy that eliminates false-positive page turns during mobile selection and drag gestures.
Download & install
| Platform | Download |
|---|---|
| Windows (x64) | Theorem_v1.5.2_x64-setup.exe |
| macOS (Apple Silicon) | Theorem_v1.5.2_aarch64.dmg |
| macOS (Intel) | Theorem_v1.5.2_x64.dmg |
| Linux (Debian/Ubuntu) | Theorem_v1.5.2_amd64.deb |
| Linux (any) | Theorem_v1.5.2_amd64.AppImage |
| Android (arm64) | app-arm64-release.apk |
Linux one-liner: curl -fsSL https://raw.githubusercontent.com/Fundaments-Work/Theorem/main/scripts/install-linux.sh | bash
Desktop builds auto-update in place (Settings → About → Check for Updates). Android updates are manual unless installed via F-Droid.