Repository navigation
cmux NEXT Chief pet: orbs move to the end, and a Series 2 (Arctic Fox, Violet and Gold Machine, Rose Moon) - #30494
Conversation
…Violet and Gold Machine, Rose Moon) Leo 2026-11-01: "maybe we can make like a series 2 ... the rest of the team doesn't like the first one the orb though they all like the other ones... we can reorder them a little bit so they orb doesn't come first ... obv i assume this won't switch up what they've currently selected...?" The picker's order is now Series 1 without the orbs, Mochi, Series 2, then the orbs, in the Swift enum, HomeChiefPetSetting.mascots, the schema choices and the web lists. Series 2 is four recolours of Fox, Machine and Moon made by scripts/cmux-next/art/chief_mascot_series2.py (stdlib only; --check). Choices are stored by id (cmux.json home.chiefPetMascot, defaults home.chief.mascots), so nobody's pick changes. Orb stays the default by id, and the grid's and the web card's unknown-id fallback is now the default id instead of the list's first entry, so the reorder cannot move it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3a05ae6e302bba4a7be8
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Gallery before/after for
States
Pick other states with a Not verified: macOS jobs did not run: compile and app tests were skipped on CI passes on Written by red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: Default changesThis pull request changes 2 defaults at
Signed off on this commit by Merge receipt: merged as Regenerate the snapshot with Shipped in:
|
|
Review (subagent claude-opus-5-5 medium, post-merge): SHIP at ab97774 This PR merged with no review at its head, so this is an after-the-fact review. No blocking findings: saved picks decode by id, the default is still orb, and every character test reads the new order. Follow-ups:
|
Leo (2026-11-01):
What changes
New order (the Chief Settings popover grid, Settings > Chief > Look, the schema's choices, the Swift enum and the web lists all agree):
fox-arctic), Violet Machine (machine-violet), Gold Machine (machine-gold), Rose Moon (moon-rose)Series 2 is four new colourways of Fox, Machine and Moon, the characters the team likes, made the same way Cyan Machine and Blue Moon sit beside the originals.
scripts/cmux-next/art/chief_mascot_series2.pymakes them from the bundled PNGs. It changes only saturated pixels in each recipe's hue bands and keeps outlines, faces and whites, so the pixel art stays crisp. It uses the stdlib only, writes both the 256 px still and the…Avatar.png, and--checkreports drift. Each has its name and one-line description in all 21 locales the catalogs carry (non-English asneeds_review, like their neighbours).No grid restructure and no "Series 2" header: the grid is still 5 columns, now 14 characters plus the upload cell.
Does the reorder change anyone's selection? No
home.chiefPetMascotin cmux.json; every other Chief's is in UserDefaultshome.chief.mascots(participant id → character id,ChiefMascotPicks). Every old id is still a valid character, so every saved pick reads back as the same character.HomeChiefPetSetting.defaultMascot = "orb"andChiefPetMascot.initial = .orbare unchanged, by id.ChiefPetMascotGrid.select(cells.first) and the web card (CHIEF_PET_MASCOTS[0], also in ChiefsCard). Since the reorder, the first one would have been Fox. They now fall back to the default id (orb), so the reorder can't move them.ChiefPetSettingsRows.avatarURL(of:)already fell back by id.Characters
Tests
ChiefPetMascotOrderTests(CmuxNextAppTests):home.chiefPetMascot: "moon"still reads back as moon, and the popover checks it.{"agent_scout01": "machine-blue"}underhome.chief.mascotsstill reads back machine-blue.ChiefPetTests.everySettingIdIsAMascot, the webchiefPetCard.test.tsx(plus a new saved/unknown-id case) andchiefLook.test.tsx(its count now follows the list).cmux-ci run --class light --script scripts/ci/package-test-lane.sh, stepc712d2c490f98e01ab3da1ad): ChiefPetMascotOrderTests, ChiefPetPopoverPickerTests, ChiefPetMascotGridLaunchTests, ChiefAvatarUploadWiringTests, ChiefPetTests and ChiefPetSettingTests all pass, with no failures. That run used scratch ref061380ad3cd(this head plus fix(apps): store.updates.available plural forms use %lld (base red from #30288) #30493's xcstrings fix). At this head alone (stepa033f460c83c01bf6f4f77df) the test build stopped before any test on a base red that isn't this PR's:CmuxNextAppsLocalizable.xcstringstr: store.updates.available, "Plural variation requires referencing the number" (from fix(apps): "1 updates available" reads "1 update available", page strings pick their plural form #30288; fix(apps): store.updates.available plural forms use %lld (base red from #30288) #30493 and Revert "fix(apps): "1 updates available" reads "1 update available", page strings pick their plural form" #30492 fix it). That file is identical at this PR's base and at today's feat-cmux-next tip.bun testfor chiefPetCard, chiefLook, chiefsCard, ChiefDock and editors (80 pass).scripts/web-lint.shandprepush-gate.pypass.chief_mascot_series2.py --checkis clean.Observed / Not run
settings-schema.json/docs/mdm/*are not hand-edited; the base autofix regenerates them with the new choice order and ids.Changelog
Risk: normal
Agent session: agent session
🤖 Generated with Claude Code