Release v26.04.14.1 #32

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

Summary

Unified article discussion entry points

  • Both the briefing discuss button and the /news 💬 button now call a shared seed_article_discussion() helper that stages the synthetic read_article tool exchange and the conversational seed prompt — behavior is byte-identical across entry points.
  • /news discuss now auto-starts generation server-side, so clients land on an in-flight stream (matches briefing's behavior). ChatView already calls reconnectIfGenerating on mount so the web attaches to the live stream automatically.

Article summaries persist to RAG

  • First assistant reply in a seeded article conversation is saved as a Note (tags: article-summary + article topics, entity_meta carries rss_item_id + url + conversation_id) and backlinked via rss_items.discussion_note_id. The knowledge base stops being amnesiac about articles the user has engaged with — future chats can surface the prior summary through normal RAG.
  • Post-generation hook in run_generation fires fire-and-forget, is idempotent (skips if already linked), and logs/swallows errors so chat never breaks from note persistence.

CI gating carryover

  • .forgejo/workflows/ci.yml main-ref guards from the last patch ride along on this release.

Schema

Migration 0039 adds rss_items.discussion_note_id (BIGINT NULL, FK → notes.id ON DELETE SET NULL). Additive — existing rows stay unlinked until the next discuss click.

Test plan

  • Click 💬 on a /news article — chat opens with live streaming; first reply matches briefing's Discuss behavior.
  • Verify the first-reply Note appears in /notes tagged article-summary and shows up in RAG for a related query.
  • Re-click 💬 on the same article — no duplicate note created, chat opens normally.
  • Briefing discuss flow still works (regression check).
## Summary **Unified article discussion entry points** - Both the briefing discuss button and the `/news` 💬 button now call a shared `seed_article_discussion()` helper that stages the synthetic `read_article` tool exchange and the conversational seed prompt — behavior is byte-identical across entry points. - `/news` discuss now auto-starts generation server-side, so clients land on an in-flight stream (matches briefing's behavior). `ChatView` already calls `reconnectIfGenerating` on mount so the web attaches to the live stream automatically. **Article summaries persist to RAG** - First assistant reply in a seeded article conversation is saved as a Note (tags: `article-summary` + article topics, `entity_meta` carries `rss_item_id` + `url` + `conversation_id`) and backlinked via `rss_items.discussion_note_id`. The knowledge base stops being amnesiac about articles the user has engaged with — future chats can surface the prior summary through normal RAG. - Post-generation hook in `run_generation` fires fire-and-forget, is idempotent (skips if already linked), and logs/swallows errors so chat never breaks from note persistence. **CI gating carryover** - `.forgejo/workflows/ci.yml` main-ref guards from the last patch ride along on this release. ## Schema Migration `0039` adds `rss_items.discussion_note_id` (BIGINT NULL, FK → `notes.id` ON DELETE SET NULL). Additive — existing rows stay unlinked until the next discuss click. ## Test plan - [ ] Click 💬 on a `/news` article — chat opens with live streaming; first reply matches briefing's Discuss behavior. - [ ] Verify the first-reply Note appears in `/notes` tagged `article-summary` and shows up in RAG for a related query. - [ ] Re-click 💬 on the same article — no duplicate note created, chat opens normally. - [ ] Briefing discuss flow still works (regression check).
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledScribe#32