• v26.04.08.2 Stable

    bvandeusen released this 2026-04-08 11:40:25 -04:00 | 877 commits to main since this release

    What's Changed

    Knowledge View Consolidation

    • Tasks integrated into Knowledge view as a fifth card type with status, priority, and due date
    • /notes and /tasks list routes deprecated — redirect to Knowledge (/)
    • New-note button toggles to reveal type options (Task, Person, Place, List)
    • "Tasks" removed from header navigation

    Modern Fable Visual Identity

    • Deep violet (#7c3aed) + muted gold (#d4a017) palette replaces indigo
    • Pill-grouped nav tabs with violet glow on active; brand shortened to "Fabled" in Fraunces italic
    • Card type DNA: gradient top bars (note/task/list), corner accents (person/place), violet hover bloom
    • Fraunces italic as "narrator voice" for sidebar labels and empty states
    • Amber for all temporal data (due dates, timestamps, event times)
    • Scroll edge fades, ornamental section dividers, glow buttons, status dot pulse
    Downloads
  • v26.04.08.1 Stable

    bvandeusen released this 2026-04-08 08:37:41 -04:00 | 889 commits to main since this release

    What's Changed

    • fix(voice): Resume AudioContext after creation so silence detection actually fires — browsers start it suspended, causing the auto-stop to never trigger
    Downloads
  • v26.04.07.3 Stable

    bvandeusen released this 2026-04-07 20:43:26 -04:00 | 891 commits to main since this release

    What's Changed

    • Discuss button fix: Full article content fetched via trafilatura for both briefing and chat discuss paths
    • Push notifications: Fixed VAPID key format (PEM → base64url DER); added "Regenerate VAPID Keys" button in Settings → Notifications
    • Chat titles: Rewrote title generator to only use user messages — no more JSON fragments, special tokens, or system prompt leakage
    • Project inference: System prompt now explicitly forbids inferring project names on task/note creation
    • Background model: Default bumped from qwen2.5:0.5b to qwen2.5:3b for reliable title/summary generation
    • Voice STT: Whisper receives conversation context as initial_prompt to reduce mishearings
    • Voice UI: Mic button integrated into ChatInputBar with click-to-toggle + silence detection; VoiceOverlay removed
    • Voice reactivity: Status re-checked on tab focus and after saving voice settings; mic visible on HTTP with graceful error
    Downloads
  • v26.04.07.2 Stable

    bvandeusen released this 2026-04-07 08:40:03 -04:00 | 898 commits to main since this release

    What's Changed

    • Discuss button fix: Full article content is now fetched via trafilatura when clicking Discuss in the briefing view or News screen — fixes the model discussing the wrong/empty article
    • Push notifications fix: VAPID key was stored in the wrong format (PEM instead of base64url DER), causing all push sends to fail silently. Fixed key generation; existing installs can recover using the new "Regenerate VAPID Keys" button in Settings → Notifications
    Downloads
  • v26.04.07.1 Stable

    bvandeusen released this 2026-04-06 22:40:53 -04:00 | 902 commits to main since this release

    What's Changed

    Voice & Audio

    • Web voice overlay: click-to-toggle with silence detection and animated amplitude bars
    • Streaming TTS wired into Chat, Briefing, and Workspace views
    • Kokoro voice blending — blend builder UI + weighted tensor synthesis
    • Automatic Kokoro offline mode + daily update check
    • Voice S2S — faster-whisper STT, Kokoro TTS, PTT overlay

    Chat & UI

    • ChatPanel unification — all views (Chat, Briefing, Workspace, Home, Knowledge) use shared component
    • Streaming bubble and input bar extracted as reusable components
    • Listen mode with volume knob; persisted across views via localStorage
    • Live card refresh and interactive checkboxes in list note viewer

    Knowledge & Research

    • Knowledge view: entity types (People, Places, Lists), two-tier pagination
    • Research pipeline rewrite: multi-note outline + parallel section synthesis + index note
    • Read article tool + full article fetching via trafilatura

    Calendar & Events

    • Recurring event expansion, CalDAV pull sync, past search, reminders
    • Month/year picker popover; event popover on calendar grid

    Briefing

    • Article Discuss endpoint with synthetic tool exchange
    • Structured user profile with LLM-learned preferences
    • Briefing pipeline rewrite to conversational prose
    • Slot gating + morning work-day gate; SSO account guard

    Settings & Performance

    • Timezone field in General tab; background model picker with KV cache warning
    • Adaptive num_ctx tiers; KV cache prefix reuse and priming on startup/model change
    • Background task routing to dedicated model to preserve KV cache
    • Conditional thinking classifier

    LLM Tool Fixes

    • Prevent model from inferring project names on create_task / create_note
    • Confirmed guard for deletes; update_person/place, get/update_profile, calculate tools
    • News nav link added to AppHeader

    Bug Fixes

    • Many audit-pass fixes across projects, tasks, chat, events, knowledge, and briefing
    Downloads
  • v26.04.06.2 Stable

    bvandeusen released this 2026-04-06 18:22:27 -04:00 | 910 commits to main since this release

    What's Changed

    • News nav link — Added News to the AppHeader navigation
    • Generation metrics — Token counts, thinking rounds, and timing logged after each generation
    • Interactive checkboxes — List note viewer now renders checkboxes as interactive toggles
    • CI fix — Stop CI runner from filling disk between builds
    • Registry fix — Disabled provenance attestation for Forgejo registry compatibility
    • fable-mcp — Fixed SSE streaming error handling; bumped timeout for long-running tool calls
    Downloads
  • v26.04.06.1 Stable

    bvandeusen released this 2026-04-05 22:21:20 -04:00 | 917 commits to main since this release

    What's new

    Article reading

    • New read_article tool — paste a URL into chat and the assistant fetches and reads the full article text
    • Removed RSS article content cap (was 50,000 chars) — no more truncated articles
    • Fix: conversation history now correctly replays tool calls so article context survives follow-up questions
    • Briefing "Discuss" button injects full article content before launching generation

    Quick capture refactor

    • Replaced the old intent router with native Ollama tool-calling — same pipeline as main chat
    • Thinking is now auto-decided by the classifier instead of being hard-disabled
    • ~460 lines of intent.py deleted

    Settings consistency pass

    • Timezone field — new section in General settings with a text input and a Detect button (auto-fills from browser)
    • Saving timezone now immediately live-patches the briefing scheduler without requiring a config re-save
    • Briefing tab — "Firing in timezone" hint shows the stored timezone value instead of the live browser API
    • Account tab — SSO users now see an informational banner instead of email/password forms they can't use
    • Briefing tab — redundant Office Days section removed (work days are configured in Profile)
    • Scheduler — slot toggles now actually control which jobs are scheduled (previously decorative)
    • Scheduler — morning slot skips non-work days based on profile.work_schedule.days

    Bug fix

    • Fixed ImportError on startup caused by a stale reference to CONTENT_MAX_CHARS in the RSS backfill function
    Downloads
  • v26.03.29.1 Stable

    bvandeusen released this 2026-03-29 15:40:45 -04:00 | 1037 commits to main since this release

    What's new

    Security fixes

    • SSRF: block private/internal URLs in image cache fetch, RSS feed add, and CalDAV URL setting
    • Auth: GET /api/images/<id> now requires authentication (was unauthenticated)
    • Auth: Ollama model pull and delete restricted to admin users only
    • Info disclosure: email addresses removed from /api/users/search response
    • OAuth: account auto-linking skipped when provider does not set email_verified: true
    • Config: startup fails with a clear error when SECRET_KEY is default and SECURE_COOKIES=true
    • Rate limiting: startup warning added when TRUST_PROXY_HEADERS is not set behind a proxy
    • XSS: tightened DOMPurify config — src/alt removed from global attribute allowlist

    MCP bug fixes

    • fable_add_task_log: was posting {"body": ...} — API expects {"content": ...}; all log entries now save correctly
    • fable_create_project: status parameter was silently discarded; projects can now be created with status="archived"
    • fable_create_milestone: status parameter was silently discarded; milestones can now be created with status="done"
    Downloads
  • v26.03.28.2 Stable

    bvandeusen released this 2026-03-28 14:03:11 -04:00 | 1041 commits to main since this release

    What's new

    • Fix: weather column — briefing weather now returns properly formatted card data; was showing raw cache rows
    • Fix: temp unit label — °C/°F label now correctly reflects the saved preference (was always showing °C)
    • Fix: news column and /news view empty — resolved asyncpg AmbiguousParameterError on NULL feed filter; articles with no published_at now fall back to fetched_at instead of being silently excluded
    • Fix: version badge contrast — app version in settings footer is now legible in both light and dark modes
    • Fix: gitignoredocs/superpowers/, docs/plans/, docs/specs/ excluded and de-tracked from repo
    • Feat: add_rss_feed LLM tool — users can add RSS feeds to their briefing by asking the assistant
    • Feat: fable-mcp auto-version bump — Claude Code PreToolUse hook auto-increments the fable-mcp patch version on every commit that touches fable-mcp/
    Downloads
  • v26.03.28.1 Stable

    bvandeusen released this 2026-03-28 01:38:35 -04:00 | 1051 commits to main since this release

    What's new

    • Briefing view redesign — 3-column layout (weather · chat · news). Weather and news panels load independently; news shows the last 2 days of articles from all feeds with 👍/👎 reactions.
    • /news archive view — browse 90 days of RSS articles with feed filter, load-more pagination, topic pills, and reactions.
    • RSS article retention extended to 90 days (was 14).
    • Deep article Q&A in briefing chat — follow-up questions in the briefing conversation can reference the full content of source articles.
    • Task enhancementscancelled status, started_at/completed_at timestamps auto-set on status transitions, recurrence_rule field with a new RecurrenceEditor UI component.
    • Fix: migration 0031 — corrected a broken ALTER TYPE task_status SQL; status column is plain TEXT so migration is now a no-op.
    Downloads