Theorem v1.5.3
Pre-release
Pre-release
Added
- Hybrid Two-Tier Search Engine (
SQLite FTS5+nucleo-matcher) — Completely replaced JavaScriptfuse.jsin desktop and mobile environments with a native Rust two-tier search architecture (src-tauri/src/fuzzy_search.rs). Tier 1 leverages SQLitebooks_ftsFTS5 index to prune large libraries on disk down to candidate sets in ~1ms without heap allocation. Tier 2 uses SIMD-accelerated Smith-Waterman matching (nucleo-matcher, powering Helix editor) to rank candidates, recover typos, and compute exact matching UTF-32 character indices in ~0.1ms. - UI Match Character Highlighting (
<HighlightMatch />) — Reusable, high-performance UI letter highlighting component (src/ui/HighlightMatch.tsx) that visually accentuates matched character segments in book titles, authors, annotations, and bookmarks across grid, compact, and list views as the user types. Grouping contiguous matched characters minimizes React DOM nodes for zero-lag 60fps typing. - Native Standards-Compliant Article EPUB Packaging — Offloaded EPUB packaging directly to Rust using the
zipcrate (src-tauri/src/article_epub.rs), eliminating JavaScriptfflate(zipSync) on the main thread and preventing UI thread stutters when opening web articles and RSS entries. - Morphological Lemmatizer & Irregular Inflection Stemmer — Native Rust stemmer (
src-tauri/src/stemmer.rs) integrated into MDict (mdict.rs) and StarDict (stardict.rs) dictionary engines. Provides automatic inflection, irregular verb, and plural normalization for near-100% dictionary hit rates without network fallbacks. - Zero-Data-Loss Relational Migration Subsystem — Added dedicated SQLite relational tables for
rss_feeds,rss_articles,rss_article_content(separating heavy article bodies from metadata), andreading_sessions(time-series analytics) insrc-tauri/src/database.rs. Automatically and idempotently migrates legacy JSON blobs fromkv_storeinto normalized tables inside an atomic transaction while preserving the originalkv_storevalues as immutable backups. - Decoupled Relational RSS & KV Store Footprint Reduction — Decoupled full HTML content from Zustand persistence, shrinking
zustand:theorem-rssfrom 25MB+ down to <50KB and eliminating 150ms V8 GC stalls on feed mutations. - Full Relational Storage & Session Telemetry API — Exposed native Tauri commands and typed TypeScript wrappers for RSS feed/article/content CRUD and reading session recording. Reading time hook flushes active session telemetry directly to relational tables while feeding daily goal reminders.
- Atomic P2P Annotation Sync — Hardened Iroh Docs P2P synchronization with atomic item-level keys (
anno:<bookId>:<annotationId>) to prevent overwrite collisions and ensure rapid delta replication across paired devices. - Windowed Library Query API — Added
sqlite_query_books_windowTauri command with native limit/offset cursor queries to support large library virtualization.
Improved & Performance
- Off-Thread Cover Downsampling Across All Ingestion Paths — Fully wired native Rayon cover downsampling (
downsample_cover) intocover-extractor.tsandstorage.ts, eliminating DOM<canvas>image resizing on desktop and mobile Tauri runtimes. - Eliminated JS
Fuse.jsOverhead — Removed runtimeFuseobject instantiation and heap-allocated searchable item caches infiltering.ts, dropping library filtering memory pressure and query latency to near-zero. - Robust Cross-Platform Search Fallbacks — Seamlessly falls back to token matching in pure browser and mock environments while running native two-tier search in desktop and mobile Tauri runtimes.
Download & install
| Platform | Download |
|---|---|
| Windows (x64) | Theorem_v1.5.3_x64-setup.exe |
| macOS (Apple Silicon) | Theorem_v1.5.3_aarch64.dmg |
| macOS (Intel) | Theorem_v1.5.3_x64.dmg |
| Linux (Debian/Ubuntu) | Theorem_v1.5.3_amd64.deb |
| Linux (any) | Theorem_v1.5.3_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.