Changelog
Every release, every fix. Full history on GitHub Releases.
v0.3.0
Latest Added
- Delete from Archive — new delete button in the archive view lets you permanently remove articles without leaving the list.
- Right-click delete — article cards now expose a context menu with a Delete option for quick removal.
- System theme — Appearance settings gains a third "System" option (Light / System / Dark) that follows the OS preference in real time; migrates gracefully from the old light/dark toggle.
- Dock badge unread count — macOS dock icon now shows the number of unread articles.
Changed
- Full i18n coverage — all previously hardcoded strings in FeedList (view titles, filter tabs, action tooltips, empty state) and ReaderToolbar are now wired through react-i18next; both English and Chinese translations updated.
- Style unification — reader toolbar, activity bar, and article body now share consistent background tokens across light and dark modes.
Fixed
- Appearance panel stays open — the typography/appearance panel in the reader now dismisses when clicking anywhere outside it.
- Highlight toolbar overlap — fixed highlight toolbar overlapping selected text; added missing i18n key.
v0.2.0
Added
- Source Management Modal — replaced the drawer-based source manager with a standalone modal that supports both folder and feed management in one place.
- Drag-to-reorder feeds — drag handles now work correctly in the Source Management Modal; items collapse to folder-level on mousedown for a cleaner drag experience.
- AI article clustering (TF-IDF) — auto-grouping rebuilt with a proper TF-IDF + cosine-similarity engine; removed the broken embedding stub.
- update_read_status_batch Rust command — new O(1) I/O batch command that patches the metadata cache index in a single lock/read/write cycle without touching individual article files.
Fixed
- markAllRead freeze — replaced per-article bulkPut loop (O(n) file I/O) with the new batch command; UI no longer blocks on large libraries.
- Article content corruption — markAllRead was sending metadata-only objects into bulk_put, silently overwriting full article files on disk.
- Articles revert to unread after refresh — sync was re-persisting all existing articles with a fresh updatedAt, causing the merge guard to flip every article back to unread.
- Post-sync UI freeze — setArticles(sorted) after sync triggered a synchronous high-priority React render of 10k+ articles. Wrapped in startTransition.
- Brief links not clickable — fixed link rendering in AI-generated briefs so URLs are tappable in the reader view.
- Drag offset in Source Management — replaced CSS transform-based centering with flex layout.
v0.1.0
Added
- Initial desktop alpha release — local-first read-later and knowledge app with on-device AI, WebDAV sync, and a distraction-free reader.
- Updater contract — auto-update infrastructure wired up from first release.
- Reader rendering contract — smart reader view with typography controls, highlight, and note support.