Updates
Even death stars have an exhaust vent.
Freed now runs its active Desktop Library on SQLite and its PWA Library on IndexedDB, with safer writer ownership and a resilient geographic map
Features
- Complete PWA SQLite runtime fence
Fixes
- Address draft release assets by ID
- Refresh Library Core persistence census
- Fence retired SQLite library writers
- Import actor-bearing SQLite checkpoints
- Prevented repeated full-Library SQLite sorting from pinning Freed Desktop CPU on large libraries
- Indexed per-author and per-feed SQLite timelines so Friends and item-detail views no longer rescan the full Library
- Freed Desktop now enforces the active SQLite writer epoch before committing Library changes or contacting providers
- The PWA now stays on its bounded IndexedDB Library without starting the retired Automerge relay
- Restored the geographic map background when its remote style document is unavailable
Builds:v26.8.1203-devDev
Search the whole Library without loading it into browser memory
Features
- Freed Desktop now searches the active SQLite Library in bounded native pages instead of rebuilding a full-library search heap in WebKit
- The PWA now keeps its disposable search index in IndexedDB and streams bounded result pages, so large synchronized libraries stay searchable without living in JavaScript memory
- The normal PWA startup no longer loads the legacy Automerge worker or its WebAssembly runtime
Fixes
- Preserve malformed legacy text during SQLite migration
- Desktop cloud merge type import restored
- Reject unsafe entity map keys
- SQLite Library imports now preserve full Unicode text, including flag emoji, so large libraries can finish migrating instead of safely falling back to Automerge
Follow-ups
- Keep Automerge dormant in the PWA
- Index map location candidates
- Prepare v26.8.1100-dev
- Every saved character reaches the new local database
- SQLite keeps the full Library out of browser memory
Freed now runs its Library on SQLite in Freed Desktop and IndexedDB in the PWA, with immutable Drive sync and signed mobile actions
Features
- Keep the renderer corpus bounded and stop the legacy Automerge worker after SQLite takes over
Fixes
- Reader, feed, and header polish
- Release build and type-safety cleanup
- Repair SQLite browser regression boundary
- Keep full-library PWA search and reader content off the legacy Automerge worker
- The user-visible 24-generation cloud backup mirror
- Geographic map backgrounds in Freed Desktop and PWA restored
- SQLite-backed Desktop previews and durable Friends state across reloads restored
- Refresh the authenticated immutable checkpoint after accepting PWA intents
- Scope PWA intents and result heads to the active writer epoch so ownership transfer can safely restart actor sequences
- Publish explicit PWA acceptance and provider-result receipts
- Keep twenty-four scrubbed local SQLite backups on a self-rearming daily schedule
- Enable immutable SQLite Library sync by default with an immediate PWA refresh and one bounded refresh per connected minute
- Move Freed Desktop Library startup, reads, writes, resets, and daily backups to native SQLite after a verified one-time import
Follow-ups
- Reader, sidebar, and settings UX work
- Close the feed item capture and sync receipt inventories
- Pin the destructive merge guard policy and its blind spots
- Finish the reviewed replacement-sync activation and retire Automerge
- Expand PWA intent support beyond read state
- Give the PWA a complete IndexedDB Library reader and search path, signed read-state intents, and exact single-writer ownership transfer
Stops recurring renderer restarts and adds portable feed reading with durable PWA intent delivery
Features
- Authenticated portable feed reader
- Durable PWA intent outbox
- Library Core SQLite item-detail reads
Fixes
- Accept in-band release approval
- Stop blocked preflight renderer crash loop
- Bind Library Core control to manifest ID
Follow-ups
- Authenticate Library Core operation admission
- PWA portable checkpoint store
- Portable Library Core checkpoints
- Import exact Library Core manifests
- Library Core Google Drive adapter
- Define Library Core writer reassignment
- Coordinate immutable Library Core publication
Builds:v26.7.3100-devDev
Cuts peak memory while building the SQLite-backed feed by reusing the renderer snapshot instead of traversing the full Automerge library twice
Features
- The ordinary All Content feed now reads exact, source-bound pages from the verified SQLite projection, capped at 128 rows per page and a 2 MiB native cache
- Freed Desktop keeps at most 512 SQLite-backed feed cards in React and cancels stale page work when the source changes
- The PWA and native browse-generation foundations now support the same bounded paging contract without activating a PWA cutover
Fixes
- SQLite browse generations are sealed, pinned, and tied to the exact Automerge source frontier before a page can be returned
- A stale or divergent SQLite result falls back to the existing Automerge feed instead of replacing authoritative data
- The macOS menu bar now uses the correct monochrome template icon, the card-density menu no longer shows a stray divider, and nightly tooling tests shard independently
- The SQLite feed materializer now reuses the plain library snapshot already produced at startup
- Incremental item patches preserve exact source order without another full Automerge traversal
- Migration still sends only bounded 128-row pages into SQLite and falls back safely if the source changes
Follow-ups
- Automerge remains the authority, full corpus, and fallback. SQLite does not accept user or provider writes in this build
- If bounded-feed parity, responsiveness, or memory regresses, the local freed.libraryCore.feedBrowseReaderV1.disabled flag restores the Automerge reader
- This activation changes only local storage reads. It adds no provider requests, navigation, cookies, headers, retries, or cadence