The personal level is now called Account Settings, and its Profile card takes a photo — the picture the rail, the popover trigger and a conversation thread draw for you instead of your initials.
7 Sept 2026 · branch account-avatar · captured against propflow-stage · at 5841e54bce+local
Data note. Every name and balance below comes from propflow-stage, which is anonymized by construction (ADR-0097/0110 — phones in the impossible +1000 NPA, emails @example.test). The identical capture against prod would carry real tenants' names and balances and is not safe to attach anywhere, which is why the generator refuses to run against one.
On origin/main the personal level is titled User Settings and the Profile card is name, email, phone, role and the time-zone row. The rail's account row at the bottom-left is a blue disc with the person's initials, and there is no way to put a face on it.
Asserted in the captured DOM — User Settings · Profile · Name · Email · Phone · Time zone. The old title and the five profile fields, asserted in the DOM on origin/main. No 'Photo' label exists on this page.
Same route, renamed in the top bar's centre and the h1 (Gera, 2026-09-08: "maybe we should change it to account settings rather than user settings"). The Profile card opens with a Photo row: the current picture at 56px — initials until there is one — an Upload photo button, and the rule in plain words. The picker accepts JPG, PNG, WebP or GIF up to 8 MB; the server normalises whatever arrives to a 256px square WebP, so every avatar in the product is the same shape. A photo saves on pick, outside the Save bar, because it is chosen rather than typed.
Asserted in the captured DOM — Account Settings · Profile · Photo · Upload photo · JPG, PNG, WebP or GIF up to 8 MB · Name · Email · Phone · Time zone. The new title, the Photo label and its Upload button, the file rule, and the five unchanged profile fields — all in the DOM on the branch. The rail at the bottom-left still shows initials because this account has not uploaded yet; the upload round trip is on the companion page.
The ⋯ popover's name/email header row — the one affordance for the person's own settings since #7324 — keeps its gear and its link to /settings/account; its accessible name follows the rename. The trigger itself is now the same UserAvatar the account page draws, so once a photo exists it shows here too.
Asserted in the captured DOM — Account Settings · Sign out. The popover is open (its Sign out row is in the DOM) on the renamed page.
The upload itself — choose a file, see the photo land in the Profile card and in the rail without a reload, open a conversation thread, then Remove and watch it fall back — is an interaction the evidence spec cannot drive (no file-upload action), so it lives on the companion page pr-7335-account-photo-round-trip, captured against the same branch dev server with DOM assertions per step.