Show timestamp in article detail date display
Details
Date now shows "February 28, 2026 · 12:29 PM" instead of just
"February 28, 2026" in the article detail pane.
Add ProseMirror JSON-to-markdown normalization and strengthen slot descriptors
Details
NormalizeContentFromJson intercepts ProseMirror-style JSON documents
({"type": "doc", "content": [...]}) that the AI hallucinates instead
of markdown text, converting them back to markdown before block
parsing. Handles headings, paragraphs, bullet/ordered lists, code
blocks, blockquotes, tables, and horizontal rules via recursive node
tree extraction.
Intent slot descriptors for notes.create_note and notes.update_note
now explicitly warn against JSON document objects in the content slot.
10 new NUnit tests cover plain markdown passthrough, ProseMirror doc
conversion, tables, bullets, code blocks, mixed types, invalid JSON,
non-document JSON, empty strings, and deeply nested table cells.
Add RFC 5005 pagination support for feed fetching
Details
Refactor FetchFeedAsync to follow rel="next" pagination links,
retrieving up to 20 pages of older entries during initial feed
import. This allows the RSS plugin to fetch the full history from
paginated feeds (like the PrivStack changelog) instead of only the
first page. RefreshFeedAsync is unchanged — it only needs the
latest page for new article detection.
Fix article vanishing from Unread filter when selected
Details
When viewing articles in the Unread filter, clicking an article would
mark it as read, which immediately failed the Unread filter match,
causing ReplaceArticleInPlace to remove it from FilteredArticles and
clear SelectedArticle — so the user never got to read it.
Now checks whether the article is the currently selected one before
deciding to remove it. Selected articles stay visible in the list
even if they no longer match the active filter, letting the user
finish reading. The article is removed naturally when the list
reloads on next filter change or navigation.
Same fix applies to toggling starred in the Starred filter view.
Align RSS styling with Tasks plugin conventions
Details
Article list items now use the same styling patterns as the Tasks
plugin: item-card class with ThemeRadiusMd corner radius, 10,8 padding,
and selected-state styles (ThemeHoverBrush background + subtle shadow)
matching the ListBox.sidebar ListBoxItem:selected pattern.
Category tags in both the list items and detail view now use
ThemeHoverBrush background with ThemeSecondaryBrush foreground and
ThemeRadiusXs corners — identical to how task tags are rendered.
Replaced all hardcoded CornerRadius="12" and CornerRadius="6" values
with ThemeRadiusMd dynamic resource for consistency across sidebar
feed buttons, empty state, summary box, and reader error panel.
Get notified about new releases