Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 4 of 127 Next →
February 28, 2026
patch Rss

Reorder RSS list items: single-line title, tags, then date

Rss 1.10.0 | a10465f4
Details

Title is now single-line with ellipsis truncation on overflow.

Layout order changed from title/date/tags to title/tags/date

for better scannability.

patch Rss

Show timestamp in article detail date display

Rss 1.10.0 | 52b69748
Details

Date now shows "February 28, 2026 · 12:29 PM" instead of just

"February 28, 2026" in the article detail pane.

patch Notes

Add ProseMirror JSON-to-markdown normalization and strengthen slot descriptors

Notes 1.65.2 | f5ca75f2
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.

patch Rss

Add RFC 5005 pagination support for feed fetching

Rss 1.10.0 | 4fb60f9d
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.

patch Rss

Fix article vanishing from Unread filter when selected

Rss 1.10.0 | d23edf6b
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.

← Prev Page 4 of 127 Next →

Get notified about new releases