This release fixes a read-state race that could put already-read rows back into the unread pile, improves the save progress indicator and search grace period, adds keyboard navigation and outside-click search closing, ships lifecycle emails for inactive readers, and stabilizes the E2E suite.
New
- Keyboard navigation for reading views and quick jump to your own pageAdded keyboard cycling through reading views and the
Y shortcut that jumps directly to your own page. ee1639e b772b03 - Lifecycle emails for inactive readersAdded a set of emails that reach out to readers who have become inactive, including dynamic links and simplified row rendering.
0ac616b 0ec8b5b e951237
Improved
- Search stays free until your own archive is large enough to justify payingGrace now only applies to searches of your own pile. Search also closes on outside clicks, and the grace logic was hardened so it never leaks to other users' content.
0417034 e3e3969 5d1f001
Fixed
- Read rows no longer reappear in the unread pile after returning from a linkA visibilitychange race between rebuild() and replay() could cause a just-read row to be swapped back into both the unread pile and the archive. The client now keeps a short local record of marks it has sent and filters every list swap through it.
b706776 - Save progress line now waits for the actual fetch to finishThe alert line no longer uses a fixed five-second timer. It now follows the queued save id (or the new owner event on the home page) and clears only when the work is done, with a stall guard as a safety net.
c678c99 991e66a - Mouse drag restored for links leaving the feedDragging a link out of the feed with the mouse works again.
7ce3ff7