Repository navigation
feat(avatar): show the Permitteer picture first, then Gravatar, then the initial - #1294
Conversation
…xt source exists, neutral profile caption
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
This pull request is automatically being deployed by Amplify Hosting (learn more). |
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Changes
Avatars now show the picture Permitteer has for an account first, then Gravatar, then the initial. Until now every avatar went straight to Gravatar, even though the app already kept each signed-in account's id_token
picture(Google photos, for example) in its account registry. Only the account switcher used it, and it never fell back to Gravatar.oidcPicture(email)inservices/oidc.tsfinds an account's picture in the registry by email, ignoring case. Only accounts signed in on this browser have one, because Permitteer stores the picture per login session, not per user.Avatartries the sign-in picture, then Gravatar, then the initial. An optionalpictureprop (https only) takes priority over the lookup.<img>up while itssrcloads, so a load that never errors left an empty coloured circle. That's what the org circles in the iOS TestFlight sidebar showed.d=404, a straight 404 for an unknown email. The oldd=force-failredirected tohttp://i1.wp.com/force-fail.AvatarMenunow use the sharedAvatarwith the picture they already have, so they fall back to Gravatar too and get the same colours.md5is replaced by@noble/hashes, pinned to the 2.3.0 the lockfile already held as a dev dependency.gravatarImportedkey is gone.Other people (org members, guests, device owners) still go Gravatar → initial. A server-side
pictureon the graphqlUseris the follow-up that will pass through the newpictureprop.Testing
Avatar.test.tsxruns the real MUI component with a stubbedImage. It checks:picture, and that a non-https one is ignored.oidcPicturecases inoidc.test.ts.tsc --noEmitandnpm run i18n:checkpass.