Changelog

Version history and changes

0.9.1 April 25, 2026   diff · release

  • International discovery v1.0: full overhaul of curated lists in preparation for the international rollout
  • "Activity" carousel: rebranded from "recently added", reading-first sort, "new" badge hidden when a status badge is already shown, ES/DE propagation
  • Library: persistent sort control collapsed into a single pill with popup (empty-author entries at the bottom), collection grouping driven from settings, fixed progress bar
  • Peer book sheet: draggable sheet with pinned header and persistent borrow CTA
  • Covers: isolated peer cover cache with a user-controlled cap, warning badge when hub upload is pending retry, unified URL resolution via CoverUrlResolver
  • Loans (ADR-034): typed loan metadata, reader-extraction helper, fixed reading of the /api/copies/borrowed payload
  • Statistics: count books marked read without a finished date, fix loan and pages-read cards stuck at 0
  • Book detail: block deletion on active loans, preserve addedAt / hubCoverUploadFailedAt, coerce DateTime → ISO string in FFI updates
  • Network: stale-connection badge on peer cards (ADR-032)
  • Collections: option to also delete associated books when removing a collection
  • i18n: "Gamification" renamed to "Accomplissements" (FR), Activity carousel strings and new badges propagated to ES and DE
  • Stability: tap-to-mark-read in the notifications popover, localized shelf-deletion confirmation, library-rename replay when config is not yet hydrated

0.9.0 April 17, 2026   diff · release

  • Peer delta sync (ADR-028 / ADR-029): peer catalog refreshes now use incremental deltas (adds, updates, deletes) instead of full pulls, dramatically reducing bandwidth and speeding up discovery of peer changes
  • Transparent fallback: automatic fallback to the legacy full pull when the peer does not yet support the delta protocol
  • Local state preserved: firstSeenAt and the online state are kept during delta refreshes (the "new" badge stays consistent)
  • Cross-device avatar sync (ADR-025): profile avatars now propagate across linked devices via profile_changed
  • Peer library self-heal (ADR-030): library UUID recovery via E2EE manifest, delta cursor preserved after a reset-recovery
  • Recently-added carousel: new carousel of latest additions on own and peer libraries, collapsible variant driven by scroll, auto-hidden on small libraries
  • Sticky header: collapsing header with sticky tabs on Library and Loans
  • Discover directory: ungated entry with in-tab publish CTA, cover-grid catalog view, reliable "new" badge, incoming follow requests surfaced on the Discover card, explicit confirmation snackbars, approval and borrowing toggles unlocked with privacy-first defaults
  • Accessibility: tooltips on 13 IconButtons, semantic labels for screen readers, Semantics headers on book detail
  • Settings: visual grouping of module toggles into 4 sections, neutralized jargon, explicit confirmation on destructive network actions
  • Leaderboard: startup module sync and UI harmonization, client-side refresh timeout with user feedback
  • Games hub: hangman link added on the dashboard
  • Peer library UI: cover grid by default with bounded RAM, restored color variety on book placeholders, "new" badge now driven by owner-supplied added_at
  • Hub directory: clients now report their app version to the hub on register
  • Book cover: avoid the OpenLibrary grey placeholder for unknown ISBNs
  • i18n: 24 missing strings translated in Spanish and German

0.8.9 April 13, 2026   diff · release

  • Public hub directory: public directory enabled with UX guardrails and direct borrow requests from followed libraries
  • Real-time leaderboard (ADR-023): live leaderboard push, cache-first display, pre-warm on startup, reset scores button, skip direct on cellular
  • Loan reminders: due-date reminder notifications, fixed deep-link targets for lent/returned events
  • Enriched book detail: active loan status (borrower, due date, overdue badge), contact notes, copies stepper, borrow button disabled when book is already lent or borrowed
  • Live peer catalog: subscribe to peer changes to refresh the library without manual action, re-check peer connectivity before sync to avoid stale offline paths
  • Controlled covers: cap at 300×450, JPEG re-encode on upload, ETag cache, evict on 404, hub proxy for peer covers, propagation of custom covers to the hub
  • Page count: page count field on book details, add/edit forms and search
  • Configurable loan duration: customize loan duration in settings, pick borrowing peer from loan dialog
  • Book forms: redesigned add/edit book forms for better UX
  • Network peers: peer avatars (LAN and relay via hub), tap peer card to open library directly, peer list polish (status dot, skeleton, full-screen QR), share invite button in add-connection sheet
  • Relay robustness (5G/4G): reliable credential republish on reconnect, non-blocking sync, offline fallback, 502 circuit breaker, nodeId refresh, sync timeout
  • Hub profile: profile recovery code, automatic recovery on 401 (retry with recovery code before purge), hardened Keychain backup, registration 401 back-off, Hub URL hidden in release, safeguards against permanent profile lockout
  • Multi-device sync: fixed synchronization of authors, notes, copies and metadata between linked devices, library rename propagated to the hub
  • Search: improved external source reliability, relevance scoring, protection against concurrent searches
  • i18n: completed ES/DE translations (cover, loans, notes, recovery), "Copies" renamed to "Exemplaires" (fr)
  • Security & stability: sensitive logs gated in debug and identifiers redacted, Inventaire deserialization fix, localized default library name fix

0.8.8 March 23, 2026   diff · release

  • Multi-device sync (E2EE): end-to-end encrypted synchronization between linked devices, bidirectional pairing, backfill and deduplication
  • Book notes: add notes to books with voice dictation support
  • Private books: hide books from network peers
  • Book descriptions: automatic retrieval from OpenLibrary and SUDOC
  • Hangman game: new mini-game added to the games hub
  • Onboarding: sequenced flash messages and welcome design overhaul
  • Stability: fixed crashes on first launch and first scan, Android Keystore recovery

0.8.7 March 17, 2026   diff · release

  • macOS DMG: distribution via DMG with hardened runtime and resilient Keychain fallback
  • Device fingerprint: register device model and fingerprint on the hub
  • Peer stability: catalog refresh, offline cache, peer name persistence
  • Notifications: complete UX overhaul, borrowed filter, peer name fix
  • Compatibility: ClipRect fix for Flutter 3.38

0.8.6 March 13, 2026   diff · release

  • Unified hub catalog: consistent rendering and faster peer library loading
  • Mass scan: batch scanning feature with redirect to scanned shelf
  • Statistics: enriched quantity and quality, colors harmonized with profile
  • Localization: added Italian, Turkish fixes, i18n cleanup
  • UI: logo, search toggle, bottom nav border, operation log dates

0.8.5 March 7, 2026   diff · tag

  • Activity feed: new activity stream with "new" badges
  • Borrow management: borrow requests, notification UX, tap-to-edit reading status badge
  • Network discovery: cross-reference mDNS names with saved peers, 5G sync fallback
  • UI: bottom navigation bar option, instant cover refresh, share quick action

0.8.4 March 4, 2026   diff · tag

  • Hub directory: Explore screen, library follow/unfollow, incoming requests
  • Collections: refactored to FFI direct, grouped in library view
  • Web browsing: connect and browse peer libraries via web browser
  • Device sync: sync safety module with review screen
  • Covers: capture covers with device camera

0.8.2 February 26, 2026   diff · tag

  • Short invite links: simplified profile sharing with short URL via the hub
  • Share button: new profile share button
  • Accessibility: accessibility prerequisites added (work in progress)

0.8.1 February 25, 2026   diff · tag

  • Memory game: new mini-game using your library covers, with leaderboard and animations
  • Sliding puzzle: cover-based puzzle game with dedicated screen and games hub
  • Help: enriched help section
  • Translations: added Portuguese and Turkish

0.8.0 February 20, 2026   diff · tag

  • End-to-end encryption (E2EE): QR code v2 key exchange, E2EE indicator in UI, encrypted loan requests
  • Relay hub: relay hub settings UI and API integration
  • AGPL-3.0 license: project relicensed to AGPL-3.0
  • CJK support: fallback fonts for Japanese, Chinese and Korean, .po skeleton files
  • Languages: added Bulgarian, regional variant support (pt-BR, zh-TW...)
  • Loans: configurable auto-approve, pending request counter

0.7.2 February 13, 2026   diff · tag

  • Internationalization: translations migrated to .po files, multi-language search
  • Theme: theme customization in settings, default theme optimization
  • UX audit: persona-based fixes, search deduplication, 4 major friction points resolved
  • Leaderboard: fixed leaderboard display on profile and between peers

0.7.1 February 10, 2026   diff · tag

  • Leaderboard module: gamification leaderboard across connected libraries

0.7.0 February 6, 2026   diff · tag

  • P2P discovery: mDNS hostname.local fallback, removed 127.0.0.1 fallback
  • Clean architecture: migrated Flutter screens to Repository pattern
  • Database path: installation folder migration
  • Optimizations: reading status, online search, import, peer caching

0.6.6 January 25, 2026   diff · tag

  • Borrowing and loans: fixes and improvements to the borrowing feature
  • UX/UI: improved empty states, avatar visibility management, search enhancement
  • Statistics: statistics page and dashboard display improvements
  • Quick actions: new quick actions button in the top banner
  • Simplified install: removed setup wizard, auto-initialization, ES/DE support

0.6.5 January 12, 2026   tag

  • Initial alpha release: personal library management, book add/scan, online search
  • Local network: peer discovery via mDNS, neighbor library browsing
  • Interface: dashboard, collections, shelves, profile with gamification badges