Skip to content

Theorem v1.5.3

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Sep 18:11
· 35 commits to main since this release

Added

  • Hybrid Two-Tier Search Engine (SQLite FTS5 + nucleo-matcher) — Completely replaced JavaScript fuse.js in desktop and mobile environments with a native Rust two-tier search architecture (src-tauri/src/fuzzy_search.rs). Tier 1 leverages SQLite books_fts FTS5 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 zip crate (src-tauri/src/article_epub.rs), eliminating JavaScript fflate (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), and reading_sessions (time-series analytics) in src-tauri/src/database.rs. Automatically and idempotently migrates legacy JSON blobs from kv_store into normalized tables inside an atomic transaction while preserving the original kv_store values as immutable backups.
  • Decoupled Relational RSS & KV Store Footprint Reduction — Decoupled full HTML content from Zustand persistence, shrinking zustand:theorem-rss from 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_window Tauri 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) into cover-extractor.ts and storage.ts, eliminating DOM <canvas> image resizing on desktop and mobile Tauri runtimes.
  • Eliminated JS Fuse.js Overhead — Removed runtime Fuse object instantiation and heap-allocated searchable item caches in filtering.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.