• v26.04.14.2 Stable

    bvandeusen released this 2026-04-14 21:46:03 -04:00 | 27 commits to main since this release

    News card title readability

    News card titles were purple-on-black — eye-catching but hard to read. Title text now uses onSurface for contrast; the underline stays in primary at 70% alpha as the "this is a link" signal so tappability is still visible.

    Downloads
  • v26.04.14.1 Stable

    bvandeusen released this 2026-04-14 08:00:38 -04:00 | 29 commits to main since this release

    Summary

    Briefing chat stall watchdog + pull-to-refresh

    • Briefing provider now uses the same StreamIterator + 45s per-event stall watchdog as the main chat provider, applied to both discussArticle and sendReply. Mobile network handoffs no longer leave isBriefingStreaming stuck true.
    • Pull-to-refresh on the briefing message list, works even when empty.
    • Lifecycle resumed hook calls a new refreshMessages() that unfreezes the streaming state when the server-side message is already complete.

    Attach to in-flight chat streams

    • New attachToGeneration() on the chat provider, called on screen init. Landing on a conversation whose last assistant message is mid-stream (e.g. the unified /news discuss button, which now auto-kicks generation server-side) picks up live tokens instead of freezing on the placeholder.

    CI

    • Dropped main from the branches trigger so merge commits no longer re-run dev CI.
    Downloads
  • v26.04.13.2 Stable

    bvandeusen released this 2026-04-13 19:00:52 -04:00 | 32 commits to main since this release

    Summary

    Tool-use visibility in chat & briefing

    • Chat and briefing bubbles now render the same live tool-use status line and tool-call chips as the web app. The mobile SSE parser handles the tool_call event and stores tool calls on the Message model.
    • Tool-call chips for notes, tasks, events, and projects are tappable — tap to jump straight to the created entity. Read-only tools stay visible but non-tappable.

    Chat freeze mitigation

    • SSE read loop replaced with StreamIterator + 45s per-event stall watchdog to catch silently-dropped sockets on mobile network handoffs. Without this, the UI could hang forever with isStreaming=true.
    • Added RefreshIndicator pull-to-refresh on the message list, plus an AppBar refresh button with inline spinner feedback.
    • refresh() now also clears isStreaming when the server-side message is complete, unfreezing the input after a stuck stream.
    Downloads
  • v26.04.13.1 Stable

    bvandeusen released this 2026-04-13 01:14:06 -04:00 | 36 commits to main since this release

    Summary

    • Voice: recreate AudioRecorder each session to avoid stale native state; improved permission handling with re-check after settings; user feedback after 3 consecutive empty transcripts; STT-only mode when TTS is unavailable.
    • Knowledge: hydrate IDs immediately after loading more pages so scroll-based pagination no longer stalls at the bottom.
    • CI: switch to shared ci-runner base image (uv, ruff, jq, tzdata baked in).
    Downloads
  • v26.04.08.2 Stable

    bvandeusen released this 2026-04-08 17:22:57 -04:00 | 40 commits to main since this release

    What's Changed

    • fix(test): CalendarEvent test updated to expect local time after the .toLocal() timezone fix from v26.04.08.1
    Downloads
  • v26.04.08.1 Stable

    bvandeusen released this 2026-04-08 14:52:50 -04:00 | 42 commits to main since this release

    What's Changed

    • Violet theme: Palette shifted from indigo to deep violet to match web identity
    • Flicker-free refresh: All pull-to-refresh and app-resume refreshes hold stale data visible while fetching — no more blank screen flashes
    • STT context: Last assistant response passed to Whisper to reduce voice mishearings
    • Calendar timezone: Event times display in local timezone instead of UTC
    • Faster refresh: App-resume cooldown reduced from 5 minutes to 30 seconds
    • Pull-to-refresh: Added to News, Calendar, and Knowledge screens
    Downloads
  • v26.04.07.3 Stable

    bvandeusen released this 2026-04-07 17:52:32 -04:00 | 46 commits to main since this release

    What's new

    • Smarter voice transcription: Last assistant response is passed as context to Whisper, reducing mishearings of domain words (e.g. "cold" no longer transcribed as "gold" after a weather briefing)
    • Calendar timezone fix: Event times now display in local timezone instead of UTC
    • Faster refresh: App-resume cooldown reduced from 5 minutes to 30 seconds — data feels more alive when switching back
    • Pull-to-refresh: Added to News and Calendar screens
    • Chat resume refresh: Chat messages refresh automatically when returning from background
    Downloads
  • v26.04.07.2 Stable

    bvandeusen released this 2026-04-06 23:07:29 -04:00 | 49 commits to main since this release

    What's new

    • Bug fix: Calendar event times now display in the device's local timezone instead of UTC
    Downloads
  • v26.04.07.1 Stable

    bvandeusen released this 2026-04-06 22:41:21 -04:00 | 51 commits to main since this release

    What's new

    • Calendar — month strip + daily agenda view with full event CRUD, recurrence picker, and colour chips
    • News — RSS article feed with per-feed filter, reactions, and Discuss button to open any article in chat
    • Knowledge view — 4-tab shell (notes/tasks/projects/search) replacing Library screen; two-tier pagination
    • Voice I/O — recording with silence detection, streaming TTS; integrated in Chat, Briefing, and Quick Capture
    • Nav restructure — Projects tab replaced by More bottom sheet; Calendar and News wired to routes
    • Quick capture — fire-and-forget chat conversation instead of quick-capture endpoint; offline queue preserved via chat API
    • Bug fixes — black screen after delete confirmation (dialog context mismatch), auto-refresh on resume, conversation auto-naming, event delete confirmation
    Downloads
  • v26.04.06.1 Stable

    bvandeusen released this 2026-04-06 17:57:41 -04:00 | 56 commits to main since this release

    What's new

    • Calendar — month strip + daily agenda view with full event CRUD, recurrence picker (None/Daily/Weekly/Monthly/Yearly), and colour chips
    • News — RSS article feed with per-feed filter, reactions, and Discuss button to open any article in chat
    • Knowledge — Tasks tab now loads correctly; removed tab counts that caused resize jank
    • Chat — live tool-use status shown during generation (e.g. "Calling create_note…"); new conversations auto-named by server after first exchange
    • Voice STT — fixed silent failure on Android: switched to AAC/M4A recording, surfaced errors to UI, guarded invalid amplitude readings
    • Auto-refresh — data refreshes automatically on app resume and when switching tabs
    • Briefing — Discuss button on RSS news cards; capped at 3 cards per message
    Downloads