Theorem v1.5.7
Pre-release
Pre-release
Fixed
- Mobile EPUB Navigation & Image Rendering Stabilization — Restored immediate, fluid page turns and eliminated blank pages across illustrated and media-rich EPUBs:
- In
foliate-js-runtime/paginator.js, eliminated the blocking pre-layout image decoding wait and 200msvisibility: hiddenblanking, restoring immediate synchronous layout rendering and zero-latency#turnPageresolution. - Fixed CSS multi-column fragmentation: removed
break-inside: avoidand-webkit-column-break-inside: avoidon parent<p>,<div>, and<figure>containers that caused the browser column formatter to abandon columns and generate blank pages before images. - Removed
display: blockandheight: auto !importantoverrides onimgelements, preserving natural aspect ratios and fluid column fitting withobject-fit: contain. - Calibrated touch gesture axis locking to 10px with natural horizontal dominance, preventing swipe drops on diagonal thumb arcs.
- Preserved chapter blob URLs during active reading sessions to prevent broken image assets on previous-chapter navigation.
- Fixed iframe initial visibility transition ensuring content is immediately rendered visible upon load completion.
- In
- Ghost Book Elimination on P2P Sync Deletions — Fixed ghost book cards remaining in the library when a book was deleted on a paired peer:
- In
src-tauri/src/file_transfer.rs, added checks againstdeletion_tombstonesanddeletedAtmetadata, returning an explicitPEER_BOOK_DELETEDstatus if a requested book has been deleted. - In
src/core/lib/sync-orchestrator.ts, immediately merged incomingdeletion_tombstonesover Iroh gossip and purged deleted book cards from local state without delay. - In
src/features/reader/Reader.tsx, handledPEER_BOOK_DELETEDby pruning the local ghost card, displaying an informative toast ("This book was deleted on the source device."), and routing to the Library.
- In
- Android Hardware Back Button Navigation Stack — Intercepted Tauri
onCloseRequested/ hardware back button events insrc/App.tsx:- Dismisses active overlays, sheets, and reader panels in LIFO order via
dispatchBackAction(). - Navigates from Reader view back to Library before closing.
- Minimizes or exits the app only when on the root Library route with no active overlays.
- Dismisses active overlays, sheets, and reader panels in LIFO order via
Improved & Performance
- Note Export Clean Typography & Knap AST Templating —
- In
src-tauri/src/vault_export.rsandsrc/core/lib/vault-sync.ts, cleaned YAML frontmatter to include only essential properties (title,author,type: "theorem-book-highlights", singletotal_highlights: N, andtags: [theorem, highlights]), removing internal paths, formats, and redundant duplicate counts. - Overhauled Markdown body formatting: removed artificial numbered headings (
### 1. Highlight), redundant color labels, timestamps, and divider lines. Quotes are formatted cleanly as> ==quote==with user notes placed directly underneath. - Integrated
@obsidianmd/knapAST template engine in frontend export settings for safe, custom Markdown templates with 0 bytes added to the native Rust binary.
- In
- SQLite Memory Reclaim & Low-Memory OS Trimming —
- Enhanced native
trim_memorycommand insrc-tauri/src/database.rsandlib.rsto runPRAGMA shrink_memory;andPRAGMA wal_checkpoint(PASSIVE);on SQLite connections alongsidelibc::malloc_trim(0)on Linux and Android Bionicmallopt(-101, 0)(M_PURGE). - Wired
document.visibilityState === 'hidden'insrc/App.tsxto automatically triggertrim_memorywhenever Theorem is minimized or backgrounded, preventing background process termination by the Android OS Low Memory Killer (LMK).
- Enhanced native
- Native Rust Readability Engine — Integrated Mozilla's Readability port in Rust (
readabilitycrate) with full DOM scoring intosrc-tauri/src/article_extractor.rs, parsing and scoring article HTML in Rust in <3ms. - Store & Build Modernization —
- Declared explicit ESM module type (
"type": "module") inpackage.jsonfor full Vite 8 native configuration loader compliance. - Optimized O(1) library store lookups in
libraryStore.tsvia direct iterator access, eliminating transient array allocations during large library hydration.
- Declared explicit ESM module type (
Download & install
| Platform | Download |
|---|---|
| Windows (x64) | Theorem_1.5.7_x64-setup.exe |
| macOS (Apple Silicon) | Theorem_1.5.7_aarch64.dmg |
| macOS (Intel) | Theorem_1.5.7_x64.dmg |
| Linux (Debian/Ubuntu) | Theorem_1.5.7_amd64.deb |
| Linux (any) | Theorem_1.5.7_amd64.AppImage |
| Android (arm64) | app-arm64-release.apk |
| Android (arm) | app-arm-release.apk |
| Android (x86_64) | app-x86_64-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.