Edit Account: change base URL / username identity #82

Closed
opened 2026-08-06 21:34:07 +00:00 by TheAnachronism · 2 comments

What to build

Extend Edit Account so base URL and username can change while keeping the same Account id. Re-login uses a typed password when provided, otherwise the stored password; if a re-login is required and no usable stored password exists, require a typed password and persist nothing. Uniqueness stays (normalized base URL, username) excluding this Account. Clear that Account’s mark outbox only when identity (base URL / username) changes. Active identity change resets Selection to Fresh + Unread like switch; still always return to Manage accounts; still do not activate an inactive Account.

Acceptance criteria

  • Edit Account can change base URL and/or username, keep Account id, and re-login with api_level ≥ 23
  • Blank password on identity change reuses the stored password; missing/empty stored password with blank field fails clearly and persists nothing
  • Uniqueness excludes the Account being edited; colliding with a different Account is rejected
  • Mark outbox for that Account clears only when base URL or username changes (password-only edits from the prior ticket still keep outbox)
  • On success: login against the new identity, best-effort logout of the previous session id at the old base URL, then persist
  • Active Account identity change resets Selection to Fresh + Unread; navigation returns to Manage accounts; inactive edit does not activate
  • Automated coverage covers identity change with retained password, missing-password failure, exclude-self uniqueness, outbox clear on identity only, and Fresh + Unread on active identity edit

Blocked by

  • #80 Prefactor Account uniqueness for Edit Account
  • #81 Edit Account: display name and password
## What to build Extend **Edit Account** so base URL and username can change while keeping the same Account id. Re-login uses a typed password when provided, otherwise the stored password; if a re-login is required and no usable stored password exists, require a typed password and persist nothing. Uniqueness stays `(normalized base URL, username)` excluding this Account. Clear that Account’s mark outbox only when identity (base URL / username) changes. Active identity change resets Selection to Fresh + Unread like switch; still always return to Manage accounts; still do not activate an inactive Account. ## Acceptance criteria - [ ] Edit Account can change base URL and/or username, keep Account id, and re-login with `api_level` ≥ 23 - [ ] Blank password on identity change reuses the stored password; missing/empty stored password with blank field fails clearly and persists nothing - [ ] Uniqueness excludes the Account being edited; colliding with a different Account is rejected - [ ] Mark outbox for that Account clears only when base URL or username changes (password-only edits from the prior ticket still keep outbox) - [ ] On success: login against the new identity, best-effort logout of the previous session id at the old base URL, then persist - [ ] Active Account identity change resets Selection to Fresh + Unread; navigation returns to Manage accounts; inactive edit does not activate - [ ] Automated coverage covers identity change with retained password, missing-password failure, exclude-self uniqueness, outbox clear on identity only, and Fresh + Unread on active identity edit ## Blocked by - #80 Prefactor Account uniqueness for Edit Account - #81 Edit Account: display name and password
Author
Owner

Implemented identity Edit Account (base URL/username) with retained-password re-login, exclude-self uniqueness, selective outbox clear. Commit: a8ef09f.

Implemented identity Edit Account (base URL/username) with retained-password re-login, exclude-self uniqueness, selective outbox clear. Commit: a8ef09f.
Author
Owner

Follow-up: accountScopeEpoch so active connection Edit reloads List hub/Drawer like switch (same Account id). Commit: 651d186.

Follow-up: accountScopeEpoch so active connection Edit reloads List hub/Drawer like switch (same Account id). Commit: 651d186.
Sign in to join this conversation.
No description provided.