Changelog

All notable changes to Epilogue are documented here.


[v 1.2.1]

June 21, 2026

Quality of life update focusing on smooth user experience.

Fixed

  • App Freeze / ANR on iOS: Fixed multiple sources of main-thread blocking on iOS — pasteboard access and file-system path scanning no longer stall the UI thread, eliminating hangs during normal use.
  • App Freeze / ANR on macOS: Fixed a freeze caused by CVDisplayLink callbacks and another triggered by sandbox permission checks. The app now handles macOS I/O and display-link callbacks off the main thread.
  • Word count not recording on web: Fixed a bug where word count statistics from web writing sessions were never saved to your progress history.
  • iOS share sheet crash: The iOS share sheet now anchors correctly to its trigger button, preventing a PlatformException crash on iPad and split-screen layouts.
  • Vault I/O performance: Bounded file-system scanning to the known three-level vault structure, preventing runaway I/O on directories with deeply nested content.

Changed

  • Flutter 3.44.2: Upgraded the underlying Flutter framework for improved stability and platform compatibility across iOS, macOS, and Android.

[v 1.2.0]

May 26, 2026

Added

  • Complete App Redesign: Epilogue has a gorgeous new visual design! We’ve completely overhauled the user interface with custom backgrounds, smooth transitions, premium typography, dotted dividers, and refined UI elements for a highly immersive writing experience.
  • Word Count Home Screen Widgets: Keep track of your daily progress without opening the app. We’ve added native word count widgets across iOS, macOS, and Android platforms.
  • 5 Offline Dictionaries & Stable Spellcheck: You can now download and use 5 dictionaries offline, with a fully fixed and robust spellcheck engine ensuring a seamless typing flow.
  • Mobile Formatting Toolbar: A brand-new dedicated formatting toolbar is now available on mobile phones, placing markdown actions right at your fingertips.
  • New Onboarding Flow: Completely re-architected and simplified the onboarding experience to get you from landing to writing a new book in seconds.

Changed

  • Redesigned Landing Page: Overhauled the marketing website and landing page to mirror the elegant new aesthetic of the app.
  • Unified Canonical Vault: Behind the scenes, we’ve merged per-device vault silos into one single canonical vault per user. Multiple devices now sync under the exact same vault automatically, resolving issues with invisible files or duplications.

Fixed

  • App Hang Issues: Fixed two major performance bugs that could cause the app to freeze or hang in specific edge cases.
  • Floating Comments on Mobile: Disabled the floating comment popup on iOS and Android to prevent layout conflicts and screen overlap.
  • Clean Sign Out Flow: Fully resolved issues during sign out to ensure cache, tokens, and active sessions are cleared cleanly without throwing errors.
  • Layout & Image Fixes: Polished shadow buttons, transitions, settings screens, and author images across all platforms.
  • User Archive on Delete: Added server-side support to properly archive deleted user accounts and clean up profiles.

[v 1.1.5]

May 21, 2026

Added

  • Publish your book: You can now publish your book directly from Epilogue. Hit publish in the editor toolbar, set a title and cover, and your book gets a public page at epilogue.page/@username/your-book.
  • Author profile: Each account now has a public author profile at epilogue.page/@username listing all your published books.
  • Username: Set your username in Settings. Your username appears in all your public book and author URLs.
  • Rename & archive books: Long-press any book in the Library to rename it or move it to the archive.

Fixed

  • AppHang on macOS/iOS: Fixed a hang at launch caused by PBKDF2 key derivation running on the main thread. Key derivation now happens on a background isolate.
  • Touch Bar hang on macOS: Fixed a freeze triggered by PlatformMenuBar rebuilding on every startup event. Menu bar is now built once at startup.
  • Sync key re-index loop: Generating a sync key was triggering a continuous re-index loop and spurious directory create/delete events. These are now suppressed correctly after key generation.
  • Image resizing: Fixed images not resizing correctly when the editor column width changed.

[v 1.1.4]

May 13, 2026

Fixed

  • Proactive session refresh: Tokens are now automatically refreshed before they expire. This prevents “silent” failures where the editor would stop saving comments or PowerSync would stall during long, uninterrupted writing sessions.
  • Review page highlights: Fixed a bug where stale comment highlights could appear at incorrect locations or fail to load entirely on the shared review page.
  • Pricing link: Fixed the “Pricing” link in the website header to correctly navigate to the pricing section from any page.

[v 1.1.3]

May 7, 2026

Added

  • Drag-and-drop chapter reordering: You can now grab any heading in the outline sidebar and drag it up or down to reorder entire chapters. The full text of the chapter moves with it, and your document is updated instantly.
  • Starter templates for new books: New books now open with ready-to-use content — a two-chapter structure in your writing file and a full planning scaffold (premise, characters, chapter outline, themes, and notes) in your planning file, so you can start writing right away.
  • Classic books sample library: The in-app sample library now includes 50 public domain classics — Austen, Dickens, Dostoevsky, Hugo, Joyce, Kafka, Tolstoy, Twain, and many more giving you real-world, long-form view of how published book experience will feel like. Will open this up for authors shortly.

Changed

  • “Vault” is now called “Library”: The term “vault” has been replaced with “library” everywhere in the app for clearer, friendlier language.

Bug Fixes

  • Web: book list blank on first visit: Opening the web app for the first time would show an empty book list until you refreshed the page. Fixed a browser database issue that caused the loading step to hang silently.
  • macOS: “Operation not permitted” error on launch: On macOS, the app could fail to open your library folder after relaunch with a permissions error. Fixed a timing issue in how macOS security permissions are established at startup so your library opens reliably every time.

[v 1.1.2]

April 30, 2026

Added

  • Multi-book vault: A vault can now hold multiple books as top-level subfolders (e.g. MyVault/MyBook/). The file indexer and sync engine both understand the new layout, and the file watcher handles book-scoped events on macOS.
  • Public share links: Shared review links are now public by default — no password required for the reviewer. For E2EE documents the content is decrypted client-side before sending, so the viewer renders without a password step. Password protection remains available as an opt-in toggle; non-E2EE docs get a fresh document key generated on the fly when password protection is enabled.
  • Automatic vault linking: Removed the manual VaultLinkSheet. Devices now link automatically via PowerSync metadata — scanning the QR code is all that’s needed.

Bug Fixes

  • iOS sync after QR link: Scanning the Mac’s QR code on iOS was showing “Name your first book” instead of the user’s existing books. Fixed three root causes: the single-vault auto-link now fires correctly on iOS so the device adopts the server’s vault UUID; entities created locally before linking are migrated to the correct UUID; and the book list now re-scans live after each sync write without requiring an app restart.
  • Cross-device sync with multiple vault UUIDs: updateVaultIndexedTime was using INSERT OR REPLACE, which created a stale vault_config row synced to all devices, pushing the known-vault count above 1 and breaking the single-vault auto-link. Fixed to use UPDATE WHERE id so it silently no-ops when no server row exists yet.
  • Null-name vault rows breaking auto-link: Pre-fix installs could leave null-name vault_config rows that were incorrectly counted during vault resolution, preventing iOS from ever adopting the Mac’s vault UUID. Auto-link now only considers named rows.
  • Vault UUID resolution simplified: Replaced a two-level name-match + fallback with a single _soleNamedVault() helper — if there is exactly one named vault_config row, it is the user’s vault on every platform, eliminating iOS/Android path-name mismatches entirely.
  • Key suffix formatter: The WRITE-prefixed key formatter was clearing the suffix field on every keystroke whose first five characters spelled “WRITE”. Guard is now gated on full key length (13 chars) so it only strips on paste, not during typing.
  • Optical centering: Minor visual alignment fix in the UI.

Visual upgrades

  • Book selector pill: The book selector in the editor toolbar is now displayed as a pill-shaped control with improved layout and visual treatment.
  • Dismiss button on welcome screen: A close button (×) now appears on the welcome view when a book is already selected, allowing users to dismiss it without selecting a new book.
  • Margin icon visibility in dark mode: Hover and default states for margin icons were using a hardcoded dark color (darkBorderColor) that was nearly invisible on dark backgrounds. Colors now use colorScheme.onSurfaceVariant / onSurface so they respond correctly to the active theme.