-
released this
2026-04-29 12:11:21 -04:00 | 0 commits to main since this releaseHotfix-style follow-up to v26.04.29.1.
Drop the WeatherCard
The card expected a flat shape (
current_temp,condition,today_high, ...) but the prep payload sends raw OpenMeteo data nested underforecast_jsonper location. Every field read as null, so the rendered card showed "null°" and "null/null" pinned at the top of the journal chat — covering the actual prep prose.The prep prose itself already mentions weather plainly. Removing the redundant card eliminates the bug; the underlying weather data is still in
metadata.sections.weatherfor any future visualization that wants the structured form.flutter analyzeclean. Tag push triggers the signed-APK build.Downloads
-
released this
2026-04-28 22:30:34 -04:00 | 2 commits to main since this releaseTier 2 offline mode (#147 closed)
Real offline support: cache everything read, queue everything written, reconcile cleanly on reconnect.
- Phase 1 — Drift cache + read-through for notes
- Phase 2 — cache extended to tasks, projects, milestones, calendar events, conversations
- Phase 3 — generic offline write queue with optimistic UI, server-wins conflict resolution, auto-replay on reconnect
- Phase 4 — per-row pending-sync indicators
When you go offline now, edits land in the local cache immediately and queue for replay. The OfflineBanner shows
Retry (N)with the pending count; rows with queued writes get a small upload-cloud glyph. On reconnect the queue drains in order; conflicts (someone else edited the same row) and rejections (4xx) surface as one-time SnackBars.Design system port (#156 closed)
The "Illuminated Transcript" design language from the web app lives on Android now: dusty violet (#5B4A8A) accent, warm parchment light surfaces, Moss / Bronze / Oxblood action tokens, and the full Lucide icon set.
Journal migration
The Briefing surface is gone; daily Journal takes its place.
Tag push triggers the signed-APK build; the artifact attaches automatically once CI completes.
Downloads
-
released this
2026-04-28 09:13:56 -04:00 | 8 commits to main since this releaseMirrors the FabledScribe v26.04.28.1 web design pass. Single-file change to
lib/core/theme.dart— most widgets readcolorScheme.primaryso the palette flip alone covers a large surface.Highlights
- Palette swap — dark mode flipped from cool grey to Obsidian/Iron/Pewter (
#14171A/#1E2228/#3F4651). Light mode flipped from white-and-cool-blue to warm parchment (#F5F1E8/#FBF8F0). Primary color swapped from indigo#7C3AEDto dusty violet#5B4A8Ain both modes. - Action token ThemeExtension — new
ActionColorsextension exposes Moss / Bronze / Oxblood / Pewter outside theColorSchemefor the Hybrid rule. Read at call sites viaTheme.of(context).extension<ActionColors>()!.primaryetc. No widget refactors yet — extension is defined for surface-phase work to consume. - Typography — Inter loaded for body / labels (was system default). Fraunces still loaded for display / headline /
titleLarge≥18px. JetBrains Mono available at call sites for code. - GradientButton recolored — the chat send / journal send / brand-moment CTA equivalent of the web's
--gradient-cta. Indigo gradient (#7C3AED→#5B21B6) → dusty-violet gradient (#5B4A8A→#3F3560).
Backend requirement
No new API surface used. Compatible with FabledScribe v26.04.27.1 and newer. Pairs cleanly with the matching FabledScribe v26.04.28.1 release for visual consistency across web and mobile.
What's deferred
Per-screen Hybrid-rule button reclassification (Save → Moss
FilledButton, Delete → Oxblood, etc.), Lucide icon migration, chat bubble Illuminated Transcript pattern inChatMessageBubble, input border radius adjustment (24 → 8), voice/tone touchups. Tracked in Fable task #156.Reference
Web foundation pass shipped on FabledScribe at
7a9a8b7(2026-04-27). Web design system doc:docs/design-system.mdin fabledscribe.Downloads
- Palette swap — dark mode flipped from cool grey to Obsidian/Iron/Pewter (
-
released this
2026-04-27 08:20:06 -04:00 | 10 commits to main since this releaseTracks the FabledScribe v26.04.27.1 server-side release. The Daily Briefing is gone; the Journal takes its place.
Highlights
- Journal tab replaces Briefing as the home tab post-auth. Daily LLM-generated prep at the top, conversational chat below, weather card preserved.
- News tab removed along with the entire RSS surface — the backend retired all of it. Nothing of the news/RSS UI remains in the app.
- Past Days picker (formerly "Past Briefings") browses
/api/journal/daysand drills into individual days.
Backend requirement
This build talks to
/api/journal/*endpoints. You need FabledScribe v26.04.27.1 or newer running — older Scribe instances do not have these endpoints and the Journal tab will fail to load.Removed
- News tab + screen
- All briefing API code, models, providers, widgets
openArticleInChat(the from-article entry point — backend endpoint deleted)rssEnabledProviderand the rss-gated nav
What's deferred
The Journal screen is a 1:1 functional swap of the Briefing screen with the necessary repointing. A polished mobile-native Journal UX (matching the web side's design-system pass) is a follow-up.
Downloads
-
released this
2026-04-18 13:14:25 -04:00 | 12 commits to main since this releaseFixes
- Server offline no longer "loses" the server URL. When the backend is unreachable at launch, returning users now land on the briefing with a sticky offline banner + retry button instead of the login screen.
- Network failures (
NetworkException) are now distinguished from HTTP 401 in auth verification. - Fresh installs with an unreachable server still show the login screen (no stolen trust on a first boot that never authenticated).
Tier 2 follow-up
Real offline mode — local store, per-provider last-good caching, and edit reconciliation — is tracked as a follow-up task and is not part of this release.
Downloads
-
released this
2026-04-17 23:41:17 -04:00 | 14 commits to main since this releaseHighlights
- Voice input stability — fixed the dual-recorder conflict and the defunct element crashes that were plaguing push-to-talk.
- Background update downloader — new builds download in the background; a snackbar prompts to install when ready.
- Inline chat images — images returned by the assistant (Wikipedia thumbnails, image searches) now render in the chat bubble.
- RSS gating — News tab and briefing news cards respect the server-side
rss_enabledsetting.
Downloads
-
released this
2026-04-16 21:01:13 -04:00 | 18 commits to main since this releaseReplace amplitude-based silence detection with Silero VAD v5 ONNX for robust speech-vs-noise classification. Upgrade record to v6. Add no-speech guard on manual stop.
Downloads
-
v26.04.16.1 Stable
released this
2026-04-16 01:57:29 -04:00 | 21 commits to main since this releaseTablet landscape improvements: NavigationRail, chat master-detail, responsive grids, briefing reading column, knowledge snippet fixes, dynamic silence threshold.
Downloads
-
released this
2026-04-15 00:38:35 -04:00 | 23 commits to main since this releaseVoice
- Silence detection now auto-calibrates to your mic + room. Once the session peak arms above -20 dBFS, recording stops when current level drops ≥15 dB below peak. Before arming, a -35 dBFS static fallback keeps dead-silent sessions from spinning. 1500 ms grace period at the start.
- Fixes the bug where recordings wouldn't stop on their own and you had to click the mic a second time.
Downloads
-
v26.04.14.3 Stable
released this
2026-04-14 22:55:00 -04:00 | 25 commits to main since this releaseLive amplitude mic pulse
The mic button now pulses in real time with mic input, giving obvious feedback that audio is actually being picked up.
VoiceStatecarries a normalized 0..1 amplitude fed from the existingonAmplitudeChangedsubscription (already used for silence detection), with a 0.02 change threshold to keep rebuild traffic sane.VoiceMicButtondrops its old constant-rateAnimationControllerand replaces it with anAnimatedScale+ animated glow driven by live amplitude. 0.1 floor keeps the button breathing on silence; 120ms ease-out smooths between the 200ms amplitude samples. Applied at all three call sites — chat, briefing, and the top-app-bar capture mic.Downloads