Remove the Default video avatar; Atlas is the default
First of two PRs for the plan Remove default avatar option and make previews bigger/easier to see (https://tryluke.dev/stage/plan/cbf135d8-d4f5-4cd4-9823-a367a5d46c9a). This one removes Default. The next one enlarges the faces in the picker.
What changes
- Settings › Experimental › Avatar now lists only Keyframe's eight stock avatars. Default is gone, and Atlas is the new default (the developer chose Atlas).
- Old saved value: a settings file still holding
defaultfrom an earlier build fails the guard, reads as no choice, and so shows Atlas. - What the Mac sends: every
avatar.startfrom this build names its avatar. - Service: it still mints the deployment's own persona (
LUKE_KEYFRAME_PERSONA_ID) for a start that names no avatar, or one it doesn't list. Builds before this one keep working against a new service, and this build works against an old one, since it only names avatars the old service lists. askedAvatarinlive-contract.tsnow reads an unknown avatar asundefinedrather thandefault.personaOfmapsundefinedto the deployment's persona.
Goldens
live-contract-avatarStartFrameSchema.json and live-contract-avatarRequestFrameSchema.json were regenerated with LUKE_UPDATE_FIXTURES=1. The only change is that default drops out of the avatar enum.
Tests
settings-store.test.ts: new test that a storeddefaultreopens as no choice.compose-live.test.ts: a call with no saved choice now asks for Atlas.avatar.test.ts: a start namingdefault, or naming no avatar, still mints the deployment's persona.experimental-page.test.ts: the menu lists the eight avatars, each with its photo.
pnpm check:affected passes. The first run failed in app-menu.test.ts only because the sandbox was missing the Electron binary; it passed once the binary was installed.
Made with Luke
Summary by cubic
Removes the "Default" avatar from Settings › Experimental › Avatar, leaving Keyframe's eight stock avatars as the only choices with Atlas as the new default.
- A settings file still holding
defaultfrom an earlier build reads as no choice, so it shows Atlas. - Every start from this build names its avatar; the service still mints the deployment's own persona for a start naming none or one it doesn't list, so older builds keep working against a new service and this build works against an old one.
askedAvatarreads an unknown avatar asundefinedinstead ofdefault, andpersonaOfmapsundefinedto the deployment's persona.- The live-contract JSON schema fixtures were regenerated;
defaultdrops out of the avatar enum. - Tests cover a stored
defaultreopening as no choice, Atlas being asked with no saved choice, and the service minting the deployment's persona fordefaultor no avatar.