-
v26.04.14.1 Stable
released this
2026-04-14 08:02:25 -04:00 | 410 commits to main since this releaseHighlights
Unified
/news+ briefing discussBoth article discussion entry points now share a single
seed_article_discussion()helper that stages the syntheticread_articletool exchange and the conversational seed prompt. Behavior is byte-identical across entry points —/newsno longer dumps a raw article body into a seeded message and calls it a day./newsdiscuss also auto-starts generation server-side, so clicking 💬 lands you on an in-flight stream instead of a pre-seeded chat waiting for you to press send. The webChatViewreconnects to the running generation on mount; no UI changes were needed there.Article summaries persist to RAG
The first assistant reply in a seeded article conversation is now saved as a Note, tagged
article-summaryplus any article topics, withentity_metacarryingrss_item_id+url+conversation_id. Therss_items.discussion_note_idFK back-link makes the save idempotent — re-clicking Discuss on the same article is a no-op.The goal: the knowledge base stops being amnesiac about articles you've already engaged with. Future chats can surface the prior summary through normal semantic search.
The post-generation hook fires fire-and-forget from
run_generation, logs failures, and never breaks the chat even if note persistence hits a snag.Schema
Migration
0039addsrss_items.discussion_note_id(BIGINT NULL, FK →notes.idON DELETE SET NULL). Additive — existing rows stay unlinked until the next discuss click.Downloads
-
v26.04.13.3 Stable
released this
2026-04-13 23:36:22 -04:00 | 413 commits to main since this releaseHighlights
Rich single-article Discuss
The news/RSS Discuss button now produces real conversations about articles instead of one-shot summaries. Architecture is a three-layer cache on
rss_items(context_prepared → content_full → fresh fetch) so expensive prep work happens once, upfront, at click-time — the chat itself stays as fast as any normal chat turn regardless of article size.- Small articles (≤48k chars) pass through unchanged and cache on first click
- Large articles run a parallel map-reduce step on the background model (chunked by paragraph, ~300-word factual summaries per chunk concatenated under section headers) — one-time cost, cached for repeat clicks
- Follow-up turns in both cases are zero extra cost — the article context is already in history as a synthetic
read_articletool result
The canned
"Please summarize and discuss this article."prompt is replaced with a conversational seed that invites a real discussion ("I want to talk about this article. Start with a substantive summary... I'll ask follow-ups from there.") — the old checklist-shaped prompt was making the model respond like it was completing an assignment instead of starting a conversation.The map step pins
num_ctx=16384explicitly to avoid the same silent-truncation footgun that wrecked the research pipeline in v26.04.13.2.discuss_topic(multi-article aggregation) is intentionally untouched — follow-up work will decide whether to retire it or rework it on the cached-context approach.Schema
Migration
0038adds three nullable columns torss_items:content_full,context_prepared,content_fetched_at. Additive — no backfill, cache fills in lazily.Downloads
-
v26.04.13.2 Stable
released this
2026-04-13 19:00:47 -04:00 | 415 commits to main since this releaseHighlights
Chat auto-naming (#109)
- Title model is now fed raw user/assistant turns instead of the post-
build_contextmessage list.build_contextconcatenates RAG snippets, RSS excerpts, URL content, and briefing articles into the user-role message string, which was leaking into the title filter's first-300-char window and producing garbage conversation titles.
Timezone
- Calendar and briefing dates now interpreted in the user's local timezone instead of UTC.
Research pipeline — monolith note fix
- Root cause:
generate_completionwas the only LLM entry point not defaultingnum_ctx, so_generate_outlineprompts (~6k tokens from 12 sources) were silently truncated to Ollama's ~4k qwen3 default. Outline JSON parse failed → pipeline fell back to the single-note path. generate_completionnow defaultsnum_ctxtoConfig.OLLAMA_NUM_CTXlikestream_chatdoes._generate_outlineand_generate_executive_summarypinnum_ctxexplicitly as a belt-and-suspenders guard against future refactors.
Verified end-to-end on dev: a single research conversation produced a correct index note (title
Research: …, tagsresearch+research-index, 3 section notes withparent_id, executive summary) and a clean conversation title — confirming all three fixes in one test.Downloads
- Title model is now fed raw user/assistant turns instead of the post-
-
v26.04.13.1 Stable
released this
2026-04-13 01:14:03 -04:00 | 419 commits to main since this releaseHighlights
LLM / responsiveness
- Root-cause fix for 5–20s TTFT variance on qwen3:14b: frontend no longer hardcodes
think=true;_should_thinkis a real content classifier (length + keyword). Timing logs splitfirst_token_ms/thinking_ms/ttft_ms. - 38 parametrized
_should_thinktests; briefing/discuss-*actions defer to the classifier. pick_num_ctxnow includes tool schemas — fixes silent prompt truncation at 14K+ tokens.- Ollama model tags normalized to lowercase; error bodies surfaced; pre-gemma3 summaries refreshed.
- Default background model switched to
gemma3:4b.
Tools refactor
- Decorator-based tool registry replaces monolithic
tools.py(2566 lines →tools/package). Single source of truth per tool via@tool; briefing eligibility viabriefing=True; CalDAV/SearXNG viarequires=. - Tool count consolidated from 42 → 38 (
create_task→create_note,delete_task→delete_note, entity saves merged,get_note→read_note).
Research
- Research pipeline emits an index note with executive summary + clickable section-note links; section notes
parent_id→ index. Minimum sections lowered to 2 with retry. - Empty-exception messages now fall back to exception class name.
Chat / UI
- Knowledge and Workspace views stop passing explicit conversation titles so backend auto-naming fires.
- "New Chat" button no longer stretches full height in empty state.
- Task cards in Knowledge view show the Task badge instead of List.
CI
- New
ci-runnerbase image with uv/ruff/jq/tzdata baked in; typecheck 9m41s → ~30s, lint 13s → 2s. - Registry cache export made non-fatal; setuptools install fix for uv + http-ece.
Downloads
- Root-cause fix for 5–20s TTFT variance on qwen3:14b: frontend no longer hardcodes
-
v26.04.10.1 Stable
released this
2026-04-10 11:05:30 -04:00 | 459 commits to main since this releaseWhat's Changed
Paused Projects
- New
pausedproject status with auto-pause after 14 days of inactivity and auto-reactivation on activity - Paused tab added to project list filter; status validation updated to accept
paused
Project Cards
- Overall completion bar rendered on project cards; done milestones auto-collapse
- Fix: null project fields coerced to empty string to avoid NOT NULL violation
Search
- Hybrid keyword + semantic search — exact title/body matches now rank first above semantic hits
Briefing
- Redundant current-conditions block removed; live temperature patched directly into WeatherCard
Email Templates
- Email templates updated to Modern Fable visual identity (violet + gold palette)
Navigation & UX
- Back button from a note/task returns to its project when set, otherwise to Knowledge
- Header nav text darkened in light mode — inactive uses
text-secondary, active usesprimary-solid
Internal
- Lint cleanup: timezone import, direct
timedeltausage, unused variable removal
Downloads
- New
-
v26.04.09.1 Stable
released this
2026-04-08 23:31:15 -04:00 | 471 commits to main since this releaseWhat's Changed
Briefing Intelligence Overhaul
- Actionable briefings: Tasks show days overdue + project context; LLM suggests rescheduling, marking in progress, or breaking down
- Daily planning: "Your Day" section with prioritized focus list and calendar gap analysis
- Differentiated check-ins: Midday = brief progress nudge; Afternoon = wrap-up + capture prompt
- Weekly review: Sunday evening 7-day recap — completed tasks, notes created, project activity, upcoming week preview
- Project continuity: "Pick up where you left off" — yesterday's activity and stale project warnings
Live Weather
- Current conditions endpoint polling every 30 min — live temperature displayed above forecast card
- Weather × calendar cross-reference: rain warnings for outdoor events (30%+ precip probability)
News Synthesis
- Articles clustered by topic for thematic briefing instead of headline listing
- Cluster-level preference filtering: user-preferred topics ranked higher, strongly disliked topics suppressed
- Multi-article topic discussion endpoint for deep cross-article analysis
Downloads
-
v26.04.08.3 Stable
released this
2026-04-08 14:52:47 -04:00 | 482 commits to main since this releaseWhat's Changed
Specialized Note Type Editors
- Person: contact card form (Relationship, Birthday, Email, Phone, Organization, Address) with collapsible Notes section
- Place: form-first layout (Address, Phone, Hours, Website, Category)
- List: checklist builder with Enter-to-add, Backspace-to-delete, checkbox toggle
- Tab navigation skips formatting toolbar; auto-focus on title; type-dependent placeholders
Knowledge View
- New item button: gradient CTA with 5-type icon menu
- Person cards show organization; place cards show category
Calendar Event UX
- Smart time defaults: next 30-minute boundary, 1-hour duration
- Linked start/end: changing start moves end to preserve duration
- End can't be before start; all-day toggle manages times; past event hint
Theme Polish
- DRY: hardcoded violet values replaced with CSS custom properties
- Dark mode contrast boost for borders, glows, and card edges
Downloads
-
v26.04.08.2 Stable
released this
2026-04-08 11:40:25 -04:00 | 494 commits to main since this releaseWhat's Changed
Knowledge View Consolidation
- Tasks integrated into Knowledge view as a fifth card type with status, priority, and due date
/notesand/taskslist 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
released this
2026-04-08 08:37:41 -04:00 | 506 commits to main since this releaseWhat'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
released this
2026-04-07 20:43:26 -04:00 | 508 commits to main since this releaseWhat'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