Appearance
Changelog
All notable changes to ForeverLM are documented here. Dates are in YYYY-MM-DD format.
ForeverLM follows semantic versioning against its public surface: the MCP tool contracts, the knowledge-base/sync format, and licensing compatibility. While the version is 0.x, minor releases may include breaking changes to that surface; patch releases never do.
Unreleased
- A paragraph whose sentences carry attached sources now shows a small dot in the left margin, so a reader can see what the doc stands on without selecting anything — and a paragraph standing on nothing reads as a gap in that column. Hovering a passage underlines exactly the words its sources cover
- Added sources attached to a passage rather than named in it: highlight a sentence or paragraph, attach the sources it stands on, and the prose keeps reading exactly as written — no number, no footnote, no chip. Asking Chat about a passage sends exactly those sources, unioned across every passage the selection covers
- The References shelf now shows what the selected passage stands on, and stays hidden until a passage is selected, instead of listing everything the doc stands on in a permanent band under the page
- Typing
@in a doc no longer opens source search, so an address or a handle types through as prose; sources are attached from a highlighted passage, and/sourcestill cites one by name - Fixed the beachball when opening the Docs source picker: the sheet no longer rebuilds and re-sorts the whole library on the main thread while its window is being sized
- Fixed Docs source search so typing after
/sourcestrictly narrows title, author, type, URL, and whole-book matches instead of repopulating the picker with merely similar sources - Every new account now starts with a $1 AI balance, granted once after Sign in with Apple, so the first conversation works without topping up first
- Google Drive meeting recordings now play through the connector's authenticated session, Drive shortcuts and native transcript Docs import correctly, and recording-only or notes-only meetings gain an on-device transcript when opened.
- Added paper discovery to Google Drive meeting recordings: read a meeting's transcript and notes, resolve explicitly mentioned papers, and import, dismiss, or restore candidates from the reader or an MCP assistant
- Made Notepad source search cite a whole book as one reference and expand it into every current chapter in Chat context on Mac and Web Studio
- Fixed Google Drive meeting folders that connected successfully but always appeared empty: existing connections now request reconnection, folder contents use the required read-only permission, and nested folders are no longer truncated after two levels
0.4.4 — 2026-08-23
Highlights:
- Prevented large paper and article pages from hanging during metadata extraction when opened or fetched
0.4.3 — 2026-08-22
Highlights:
- Eliminated CloudKit self-echo sync storms that could stall the main thread and beachball the app
- Fixed Safari Reading List access, reconciliation, onboarding, and ForeverLM-owned read state
- Added shared X authorization with event-driven bookmark refresh
- Added related Project context across Mac and Web Studio
- Improved book file drops, import feedback, cover resume behavior, and contents navigation
- Prevented Finder PDF drops from aborting the app
0.4.2 — 2026-08-22
Highlights:
- Added Shallow Read for a fast, selective grasp of a source and Deep Read for careful, source-grounded study, with the same modes on Mac and Web Studio
- Moved iCloud sync status out of the Studio sidebar and into Settings, kept healthy background activity silent, and stopped CloudKit session conflicts from entering a retry loop
- Replaced the oversized update notice with a compact sidebar affordance and showed the crown consistently for every complimentary account
- Repaired mojibake in archived article text across Mac, iPhone, and Web readers, and limited pinch zoom to the reader instead of scaling unrelated app chrome
- Stopped repeated local-file access prompts and suppressed harmless Safari Reading List permission warnings while keeping genuine access failures visible
- Improved source ingestion with reliable Figshare article-title extraction and refreshed Web Studio reader caches for corrected content
0.4.1 — 2026-08-21
Highlights:
- Added synced highlights and notes to Mac and Web readers, including CloudKit-backed selection restoration and cross-device updates
- Synced archived article reader documents so rich article layouts survive across devices, with stored-text and live-web fallbacks when an archive is unavailable
- Made Apple Podcasts ingestion event-driven and durable: library file changes trigger sync, missing Apple transcripts are transcribed, and queued work resumes after interruptions
- Hardened CloudKit recovery with bounded retries, quarantine for rejected records, monotonic progress, and clearer status messages
- Fixed reader navigation and interaction across Mac and Web, including first-click opening, source reselection, back navigation, pointer-aware pinch zoom, adaptive toolbars, titlebar clicks, and full-screen chrome
- Recorded reading and listening activity consistently across tutor surfaces, including listened book chapters and externally supplied activity dates
- Grouped book chapters under shared artwork in Projects and resolved project covers from the same synced artwork
- Opened Sign in with Apple directly from the Mac app and eliminated transient Full Disk Access warnings
- Read-aloud's default model now declares the 70+ languages Google publishes for Gemini 3.1 Flash TTS instead of claiming every language there is, so unsupported source languages can be routed or reported correctly
0.4.0 — 2026-08-19
Highlights:
- Read, hear, and answer in the learner's own language rather than in English, with read-aloud recognizing when a source is not in English and narrating it with a voice that speaks that language — asking first when none does, rather than billing for words read with the wrong pronunciation, and letting Vision detect a scanned page's language instead of guessing it
- Made credit arriving the thing that resumes work an empty balance parked, and stopped treating a blank a paper's document never prints as a failed ingestion
- Made read-aloud a first-class way to take a source in: generation survives a dropped connection, continues in the background, resumes where a listener left off, opens with short chunks so playback starts sooner, and states its price — per book rather than per chapter — before it is switched on
- Extended opt-in automatic read-aloud to every reading type, so books and courses are each their own choice alongside articles and papers, and a source the phone cannot narrate yet no longer blocks the rest of the pass
- Rebuilt review around a cohort of what you actually read rather than a deck of ideas, with consumption measured by how far a source was genuinely taken in
- Gave Notepad a clean writing canvas that opens the existing source-grounded Chat beside selected text, plus Obsidian-style Markdown editing and an inline slash-command palette at the caret
- Made saved sources genuinely available offline on iPhone, including papers whose document cannot be reached, with one menu row for downloads and a clear reason when a save fails
- Synced generated audio, course material, and listening completion across Apple devices, and showed iCloud progress as a pie that fills as it catches up
- Added a friends-and-family comp list to managed AI: a named tester's usage is paid for rather than billed, capped at a monthly allowance they cannot raise, with their text models routed through Ramp Router, and a badge beside their name in the sidebar that says what the comp covers this month
- Let an operator add balance without paying, reconciled the server ledger when credits run out, and stopped paying the cache-write premium on prompt prefixes nothing can read
- Removed the one-time $5 promotional starter balance for new accounts. New accounts start at zero balance and must top up before using managed AI. Existing balances and historical allowance ledger entries are unaffected
- Restored an in-app Google Drive connection for meeting folders, with Google's folder picker, narrow
drive.fileaccess, secure token storage, and event-driven refresh, and taught the reader to open Google Sheets and Slides links - Published the official Grok Build plugin and marketplace listing
- Stopped the paper metadata gate from withholding a source's own text, stopped calling a resolved paywall "Ready", and let a running batch check be stopped
- Gave the reader link context menus that do what they offer, in books as well as articles, and kept links working in archived web articles
- Separated iPhone and CarPlay chats in the sidebar, stopped stalled CarPlay voice capture safely, and gave iPad a home surface composed for its canvas
- Made an available update announce itself: the Mac app now checks hourly and on every launch rather than once a day, and posts a notification you can click to install, instead of relying on a pill in a sidebar you may have hidden
0.3.0 — 2026-08-15
Highlights:
- Added a synced Notepad workspace for Markdown artifacts, with autosave, heading-derived titles, slash commands, split-view navigation, direct creation, and bounded Web Studio editing
- Added opt-in automatic read-aloud preparation for ready articles and papers, with synced settings across Mac, iPhone, and Web Studio
- Brought Web Studio and macOS into closer parity across Projects, Schedule, source management, reviews, Deep Research, Calendar export, and reader state
- Published the official Claude connector and submitted the shared 25-tool ChatGPT and Codex plugin for review
- Made hosted MCP a complete Learning Journey control surface, including review transcripts and correct Project completion when scheduled work is reopened
- Improved iPhone Project, Schedule, source archive and revival, listening, reading, and cross-device relationship behavior
- Distinguished listened sources from read sources across library filters and progress
- Removed orphaned image, diagram, static flashcard, retired provider, and dormant overnight-audio paths
- Fixed portable URL and DOI identity convergence plus Project, Schedule, activity, chat, artifact, and review relationship preservation across clients
- Removed the direct Meta API starter-credit trial; Muse Spark remains available through the managed first-party Meta route
- Added one account-wide Ramp Router switch that narrows Settings to Ramp's active, fully priced catalog and keeps exact fail-closed cost accounting
0.2.0 — 2026-07-21
Highlights:
- Made pricing purely usage-based: the app is free to download with nothing to unlock or subscribe to — you pay only for the AI you actually use (provider API rates + 15% in the app, 1¢ per MCP tool call), drawn from one prepaid dollar balance with a $5 free allowance for new accounts, optional auto top-up, and per-chat costs visible in the context gauge
- Consolidated every AI call onto OpenRouter as the single rail — one searchable model directory with live list prices grouped by maker, covering chat, transcription, and text-to-speech; retired the Cloudflare AI Gateway hop and the direct DeepSeek, Moonshot, and Together hosts
- Redesigned Studio navigation: a left rail with per-project chats, source tabs in the titlebar band, center tab groups you can drag and split like an editor, a docked chat panel, and a Projects gallery page
- Rebuilt Projects around outcomes: timebound Goals created through chat, standing Instructions the model follows in every Project chat, key research questions as a first-class attribute, and a Goal path that reads straight off the Schedule (the separate AI-planned day arc is gone)
- Upgraded chat: web search, slash commands, live markdown streaming, visible tool-call chips, a rolling history summary with automatic tool-result compaction, and no per-turn tool ceiling
- Hardened the chat harness: native tool calling, typed errors, full-turn cancellation, transient-failure retries, and fixes for lost replies and dead-end turns
- Wired prompt caching for every provider that discounts it, and surfaced cache and context-window usage in chat and settings
- Moved semantic search fully on-device (Apple embeddings fused with full-text search), with one shared ranking for the app and MCP
- Improved readers: a color theme setting that now defaults to light (no more inverted PDFs and articles), back/forward navigation, click-to-expand figures and tables, "Chat about this" on selected text, and Zoom recording transcripts
- Fixed a long list of main-thread hangs: chat switching, file pickers, CloudKit refresh stalls, sidebar and reader iCloud file checks, and text-selection freezes
- Added X posting, Google Docs drafting over MCP, meeting-file session grouping, and content fetching at ingestion so sources are ready the moment they're opened
0.1.0 — 2026-07-13
Versioning restarted at 0.1.0 to adopt proper semantic versioning. Earlier releases used a retired numbering scheme and have been unpublished; this release supersedes all of them (existing installs update to it normally).
Highlights:
- Added Meta's Muse Spark 1.1 as a text AI provider via the new Meta Model API — add a Meta API key in Settings and pick Meta for chat or background tasks (Meta's consumer chat app doesn't support MCP connectors, so it can't connect to ForeverLM directly)
- Added Gemini as a Read Aloud provider, with overnight batch audio generation at half price
- Added one-click approval for MCP connections in the app and a redesigned pairing consent page
- Made Sign in with Apple the primary unlock: your license follows your Apple ID, with self-serve device management and key recovery
- Overhauled read-aloud reliability: per-paragraph generation with retries, synced playback position, sleep timer, AirPods/system media controls, and a playback scrubber
- Moved the Google Drive connector to file-picker scope and YouTube to a ForeverLM-owned OAuth client
- Hardened the MCP server: hosted relay only, stricter auth, and friendlier client names
- Added an AI support agent on the website that can file GitHub issues for licensed users
- Added custom source ordering in Project pools and read-status/content-status filters in the sources sidebar
- Fixed several main-thread hangs (app launch, sidebar, EPUB chapter loads, thumbnail cache)