Skip to content

Theorem v1.4.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 08:07
· 98 commits to main since this release

Added

  • Neural Voice (Supertonic 3, desktop) — Full offline fp32 neural TTS. The fp32 ONNX models, voice styles, and the ONNX Runtime dylib (~400MB) are downloaded on first use from the supertonic-assets GitHub releases with SHA-256 verification — nothing ships in the app. Rust inference via ort (load-dynamic) with sentence-aware chunking, a 1GB content-hash WAV cache, and next-chunk prefetch. Ten voices (F1–M5), 31 languages, speed control. Playback runs through native Rust audio (rodio/cpal) with real pause/resume/seek. Managed in Settings → General → Neural Voice.
  • Companion Audiobooks — Attach a DRM-free .m4b/.m4a/.mp3 to any book from its context menu; the reader's immersion mode upgrades into a human-narrated player (scrubber over the real duration, ±15s skips, speed chips, chapter menu, sleep timer, lock-screen media controls, synced playback position). Chapters, duration and cover are parsed natively in Rust (including a QuickTime chapter-track walker for M4B).
  • Save as Audiobook (desktop) — Generate a complete audiobook from an open book with the neural voice: one click narrates every section and encodes a single Ogg Opus file (~16MB/hour at 36kbps mono) with chapter marks, then attaches it to the book. Background task with progress and cancel.
  • Headless CLI & TUItheorem <command> gives agents and terminals full app parity: library, shelves, search, read, dict, extract, annotations, bookmarks, RSS, OPDS, sync, storage, stats, export, and open. JSON output (--json) for scripting, TTY-aware colored output with the THEOREM logo, and an interactive ratatui TUI (theorem tui). Enable/disable from Settings → General with startup auto-heal.
  • Native Memory-Mapped StarDict & MDict Engine — Native Rust StarDict and MDict .mdx parsers with memmap2, decompressing 64KB zlib blocks on demand with sub-millisecond lookup latency (<0.5ms) and instant offline fallback.
  • Android TTS engine selection — Enumerate and switch system TTS engines from Settings (fixing silent engine-switch failures), with real word-boundary events for the immersion reader and synthesizeToFile support. Neural narration on Android uses the installable Theorem Neural Voice companion engine app.
  • Build stamp — Settings → About shows the git hash and source commit date the binary was built from, making a stale locally built release binary visible at a glance.

Improved

  • Organization migration to Fundaments-Work — Migrated all external repository links, releases, Supertonic asset downloads, StarDict dictionaries, and companion engine APKs to fundaments-work.
  • Desktop launcher resolution — Prevented debug or unbundled binaries from shadowing the standalone production AppImage on desktop.
  • P2P sync — Remote doc entries are batched into single IPC events for faster sync; deletion tombstones older than 90 days are pruned at startup.
  • Android footprint — Panic=abort, opt-level=z, cmap pruning, and locale filtering reduce APK size.
  • Reader immersion player — Replaced the estimated completion timer with real audio playback when the neural voice is installed; Android pause/resume now resumes from the engine's actual word position.
  • Desktop neural narration streaming — Playback position and seek now span the entire streamed page; queue underruns while later chunks synthesize no longer stall playback or jump the scrubber; the next page's first chunks are synthesized in the background while the current page reads.

Fixed

  • MOBI text extraction — Added native HUFF/CDIC (Huffman) decompression for compression-type-2 MOBI files, and corrected the PalmDOC LZ77 distance layout (11-bit, was misread as 9-bit) so compressed MOBI books extract clean text instead of garbled fragments. Books that mislabel themselves as compression 2 without HUFF/CDIC records fall back to PalmDOC decoding.