Release v26.04.14.1 #21

Merged
bvandeusen merged 0 commits from dev into main 2026-04-14 08:00:31 -04:00
bvandeusen commented 2026-04-14 08:00:25 -04:00 (Migrated from git.fabledsword.com)

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 via RefreshIndicator + AlwaysScrollableScrollPhysics (works even when the briefing is empty).
  • Lifecycle resumed hook calls the new refreshMessages() method, which unfreezes the streaming state when the server-side message is already complete.

Attach to in-flight chat streams

  • New attachToGeneration() method on the chat provider — safe to call unconditionally on screen init. Landing on a conversation whose last assistant message is mid-stream (e.g. the unified /news discuss button, which now creates a conversation and auto-kicks generation server-side) picks up live tokens instead of freezing on the placeholder.
  • Same stall watchdog pattern as sendMessage().

CI

  • Dropped main from the branches trigger so merge commits no longer re-run dev CI. Mirrors the equivalent fix applied to the fabledassistant repo.

Test plan

  • Start a briefing reply, background the app, return — input unfreezes, latest message visible.
  • Pull-to-refresh on an empty briefing fires correctly.
  • Tap 💬 on /news — chat screen opens and shows live streaming tokens (not a frozen placeholder).
  • CI runs on dev push; no duplicate run on the main merge commit.
## 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 via `RefreshIndicator` + `AlwaysScrollableScrollPhysics` (works even when the briefing is empty). - Lifecycle `resumed` hook calls the new `refreshMessages()` method, which unfreezes the streaming state when the server-side message is already complete. **Attach to in-flight chat streams** - New `attachToGeneration()` method on the chat provider — safe to call unconditionally on screen init. Landing on a conversation whose last assistant message is mid-stream (e.g. the unified `/news` discuss button, which now creates a conversation and auto-kicks generation server-side) picks up live tokens instead of freezing on the placeholder. - Same stall watchdog pattern as `sendMessage()`. **CI** - Dropped `main` from the branches trigger so merge commits no longer re-run dev CI. Mirrors the equivalent fix applied to the fabledassistant repo. ## Test plan - [ ] Start a briefing reply, background the app, return — input unfreezes, latest message visible. - [ ] Pull-to-refresh on an empty briefing fires correctly. - [ ] Tap 💬 on `/news` — chat screen opens and shows live streaming tokens (not a frozen placeholder). - [ ] CI runs on dev push; no duplicate run on the main merge commit.
This repo is archived. You cannot comment on pull requests.
No Reviewers
No Label
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledApp#21