Star and mark unread with durable outbox + re-login retry #14

Closed
opened 2026-08-02 19:26:44 +00:00 by TheAnachronism · 1 comment

What to build

From the Reader, the person can star/unstar and mark unread with optimistic UI. Those mark actions are recorded in a durable per-Account outbox so they survive process death and flush via updateArticle. If the sid is dead, the client transparently re-logins with the stored password, refreshes sid, and retries once before surfacing an error.

Acceptance criteria

  • Reader can star/unstar and mark unread; UI updates optimistically
  • Mark operations persist in a durable per-Account outbox and survive killing the app before the server acks
  • Outbox flushes successfully to the server (updateArticle field 0 starred / field 2 unread)
  • On NOT_LOGGED_IN / dead sid, the client re-logins, retries the failing call once, and only then shows an error if it still fails
  • Outbox state is scoped to Account id (switching/removing Accounts does not apply the wrong marks)

Blocked by

  • #13 Open Reader with HTML, media links, and default mark-read
## What to build From the **Reader**, the person can star/unstar and mark unread with optimistic UI. Those mark actions are recorded in a durable per-**Account** outbox so they survive process death and flush via `updateArticle`. If the `sid` is dead, the client transparently re-logins with the stored password, refreshes `sid`, and retries once before surfacing an error. ## Acceptance criteria - [ ] Reader can star/unstar and mark unread; UI updates optimistically - [ ] Mark operations persist in a durable per-Account outbox and survive killing the app before the server acks - [ ] Outbox flushes successfully to the server (`updateArticle` field 0 starred / field 2 unread) - [ ] On `NOT_LOGGED_IN` / dead `sid`, the client re-logins, retries the failing call once, and only then shows an error if it still fails - [ ] Outbox state is scoped to Account id (switching/removing Accounts does not apply the wrong marks) ## Blocked by - #13 Open Reader with HTML, media links, and default mark-read
Author
Owner

Implemented durable per-Account mark outbox + transparent session retry.

Reader: optimistic star/unstar + mark unread. Prefs outbox survives process death; flushes updateArticle (field 0/2). withActiveClient re-logins on NOT_LOGGED_IN and retries once. Remove Account clears outbox; cold start/switch flushes pending. 56 tests passing; analyze clean.

Implemented durable per-Account mark outbox + transparent session retry. Reader: optimistic star/unstar + mark unread. Prefs outbox survives process death; flushes updateArticle (field 0/2). withActiveClient re-logins on NOT_LOGGED_IN and retries once. Remove Account clears outbox; cold start/switch flushes pending. 56 tests passing; analyze clean.
Sign in to join this conversation.
No description provided.