Manage Accounts (add / switch / remove) #15

Closed
opened 2026-08-02 19:26:44 +00:00 by TheAnachronism · 2 comments

What to build

A Manage accounts screen lets the person list, add, switch, and remove Accounts. Switching lands on the List hub with Fresh + Unread and resets Account-scoped in-memory state. Removing an Account wipes its secrets and that Account’s local mark outbox/data (best-effort server logout). The screen is reachable from the List hub; wire drawer-header and Settings entry points when those UIs exist (#12 / #16).

Acceptance criteria

  • Manage accounts lists saved Accounts and supports add (full Sign-in validation including api_level ≥ 23)
  • Switching Account opens List hub on Fresh + Unread and invalidates the previous Account’s in-memory providers/state
  • Removing an Account deletes metadata, secure secrets, and that Account’s outbox/local data; if it was active, another Account becomes active or Sign-in becomes root
  • Unique on (normalized baseUrl, username); edit (if exposed) may re-login but keeps the same Account id
  • At least one in-app navigation path reaches Manage accounts from the signed-in shell (List hub); drawer header and Settings links added when those screens are present

Blocked by

  • #11 Show Fresh headlines with Unread filter
## What to build A **Manage accounts** screen lets the person list, add, switch, and remove **Accounts**. Switching lands on the **List hub** with **Fresh** + **Unread** and resets Account-scoped in-memory state. Removing an Account wipes its secrets and that Account’s local mark outbox/data (best-effort server logout). The screen is reachable from the List hub; wire drawer-header and Settings entry points when those UIs exist (#12 / #16). ## Acceptance criteria - [ ] Manage accounts lists saved Accounts and supports add (full Sign-in validation including `api_level` ≥ 23) - [ ] Switching Account opens List hub on Fresh + Unread and invalidates the previous Account’s in-memory providers/state - [ ] Removing an Account deletes metadata, secure secrets, and that Account’s outbox/local data; if it was active, another Account becomes active or Sign-in becomes root - [ ] Unique on (normalized baseUrl, username); edit (if exposed) may re-login but keeps the same Account id - [ ] At least one in-app navigation path reaches Manage accounts from the signed-in shell (List hub); drawer header and Settings links added when those screens are present ## Blocked by - #11 Show Fresh headlines with Unread filter
Author
Owner

Done

Manage accounts screen + Account switch/remove.

Delivered

  • List / add / switch / remove Accounts
  • Switch → List hub Fresh+Unread; drawer+headlines refresh for new Account
  • Remove wipes secrets (+ best-effort logout); last Account → Sign-in
  • Reachable from List hub app bar and drawer header
  • Outbox wipe deferred to #14 (not present yet)
  • Tests: 43 passed; analyze clean
## Done Manage accounts screen + Account switch/remove. ### Delivered - List / add / switch / remove Accounts - Switch → List hub Fresh+Unread; drawer+headlines refresh for new Account - Remove wipes secrets (+ best-effort `logout`); last Account → Sign-in - Reachable from List hub app bar and drawer header - Outbox wipe deferred to #14 (not present yet) - Tests: 43 passed; analyze clean
Author
Owner

Implemented on master: Manage accounts add/switch/remove.

Implemented on master: Manage accounts add/switch/remove.
Sign in to join this conversation.
No description provided.