Changelog
Even death stars have an exhaust vent.
Mobile sidebar layering, background activity monitor, and saved content sorting
Features
- Background activity monitor
- Facebook group leave handoff
- Saved content sorting
Fixes
- Mobile sidebar stays above the page on small screens
- Mobile sidebar spacing now matches the settings sidebar
- Reader, feed, and header polish
- Dev release validation is more stable
- Capture and scraper reliability fixes
Follow-ups
- Reduce desktop sync stutter
- Reverse integrate v26.6.303
- Reduce settings scroll frame work
- Reduce sync frame pressure
- Merge main back into dev after v26.6.204
- Stop idle automerge workers reliably
- Trim validation runner checks
- Skip hidden atmosphere startup
- Release hidden atmosphere layers
- Reduce renderer atmosphere memory
- Defer RSS content backfill under WebKit pressure
Background activity monitor, Facebook group leave handoff, and saved content sorting
Features
- Background activity monitor
- Facebook group leave handoff
- Saved content sorting
Fixes
- Reader, feed, and header polish
- Dev release validation is more stable
- Capture and scraper reliability fixes
Follow-ups
- Reduce desktop sync stutter
- Reverse integrate v26.6.303
- Reduce settings scroll frame work
- Reduce sync frame pressure
- Merge main back into dev after v26.6.204
- Stop idle automerge workers reliably
- Trim validation runner checks
- Skip hidden atmosphere startup
- Release hidden atmosphere layers
- Reduce renderer atmosphere memory
- Defer RSS content backfill under WebKit pressure
Builds:v26.6.402-devDev
Stabilize Facebook and Instagram sync under memory pressure
Fixes
- Google Drive sync now uploads local changes from Freed Desktop and the PWA instead of only downloading remote data
- The PWA waits for its Automerge document to initialize before Google Drive sync, manual sync, OAuth callback sync, or relay resume can merge remote data
- Freed Desktop avoids a fatal Automerge worker timeout when adding RSS feed metadata to a large library
- Facebook and Instagram sync now fail loudly when a provider returns an empty extraction instead of recording a false success
- Instagram sync records feed readiness, scroll targets, rejection counts, extraction passes, and store-write details so failed syncs are diagnosable from the field
- Freed Desktop now gates social sync on effective memory pressure instead of raw WebKit RSS, with detailed app RSS and WebKit RSS shown in provider errors
- Background semantic classification no longer blocks social sync, and social scraper listener cleanup avoids a Tauri event teardown crash
Follow-ups
- Public changelog and updater metadata will be refreshed after the production build publishes
Manual cloud troubleshooting joins the June 2 production rollup
Fixes
- Facebook, Instagram, and LinkedIn sync now share lower-profile feed scrolling behavior
- Facebook page checks now require a live cookie, the Feed posts heading, or rendered feed units before marking a page feed-like
- Logged-out Facebook pages with generic main content and tall layout now fail closed instead of wasting scrape passes
- Facebook extraction diagnostics now include feed unit and login chrome evidence for faster follow-up debugging
- Facebook extraction restores DOM-based feed parsing and reports why extracted posts normalize to zero usable items
- Facebook sync now reports unauthenticated or stalled feed pages as real sync failures instead of a successful zero-post pull
- Zero usable Facebook scrape results still surface as sync issues instead of healthy success
- Social source status now requires live auth state before showing a connected badge, so old items do not mask a lost provider session
- Provider login prompts stay visible for disconnected Facebook, Instagram, and LinkedIn accounts instead of being hidden by stale state
- Social sync defers while the Mac is locked, and Freed Desktop startup waits until the session can safely initialize
- RSS scheduled polling backs off after runtime deferrals instead of retrying every 15 seconds
- RSS content backfill defers under WebKit pressure
- Idle Automerge workers stop reliably after queued work drains
- Google Drive sync now retries token-refresh download failures and exposes clearer diagnostics before falling back to an empty cursor
- Google Contacts token refresh failures now stay recoverable in Settings instead of opening the fatal recovery screen
- Freed Desktop and app.freed.wtf now show a Sync now button for connected Google Drive accounts.
- Google Drive sync records visible activity events for queued, started, deferred, completed, waiting, and failed work.
- Sync diagnostics now explain why Last upload can be blank, including when there is no remote file yet or no local change has been uploaded.
- Desktop and PWA Google Drive token refresh failures now surface as recoverable sync diagnostics instead of falling through silently.
- The shared sync debug store now records richer transfer state so the same problem can be diagnosed from either connected device.
Follow-ups
- Facebook group leave now hands off to the provider safely without folding group refresh into normal feed sync
- Hidden atmosphere layers release memory and skip hidden startup work
- Provider validation now has a fast lane so future social sync fixes can be proven without running every heavy validation tier
- Desktop startup diagnostics now capture occluded-window cases that can look like a frozen launch
- macOS Intel release builds now run on Intel GitHub runners so x64 DMG bundling avoids Apple Silicon cross packaging
- Release validation now avoids transient restored-sidebar geometry samples after the stable width assertion passes
- Phase 4, Phase 5, Phase 6, and the public roadmap now describe the manual sync and diagnostics behavior as shipped.
Facebook sync now requires real feed evidence before treating a page as scrapeable, so tall logged-out Facebook shells fail fast instead of looking like empty feeds.
Fixes
- Facebook page checks now require a live cookie, the Feed posts heading, or rendered feed units before marking a page feed-like
- Logged-out Facebook pages with generic main content and tall layout now fail closed instead of wasting scrape passes
- Facebook extraction diagnostics now include feed unit and login chrome evidence for faster follow-up debugging
- Facebook sync now reports unauthenticated or stalled feed pages as real sync failures instead of a successful zero-post pull
- Social source status now requires live auth state before showing a connected badge, so old items do not mask a lost provider session
- Google Drive sync now retries token-refresh download failures and exposes clearer sync diagnostics before falling back to an empty cursor
- Google Contacts token refresh failures now stay recoverable in Settings instead of opening the fatal recovery screen