cmux NEXT Home: the Chief's front page says what it does, and the placeholder cat is gone

Merged
TE
16d ago
+849-48

Leo: "That whole chief setup screen is just not reflective of what's actually there right now… I'm so tired of the placeholder cat icon."

The empty Chief conversation (the first-run panel in HomeFirstRunView) listed two rows, Open a terminal and Start an agent, and said nothing about the Chief. The Chief's header disc and Home tile used ChiefAvatar.png, a bundled cartoon cat.

Now the empty Chief conversation is the Chief's front page:

  • Hero (HomeFirstRunHero): the Chief's face at 72 pt, the same one its header shows (the profile's picture or text, else 🫡). Under it, the title "Your Chief" and what the Chief does today, taken from its system prompt (optchat-chief/src/prompt.rs): "Tell it what you want done. It handles quick things itself and hands longer work to agents, each in its own workspace you can watch and join. It reports back here."
  • Rows: Start an agent, Open a terminal, then Show Chief Pet, which reads Hide Chief Pet while the pet shows. That row runs home.toggleChiefPet, so the pet toggle is right where a new user lands.
  • Below the rows, as before: the "Your agents" list and the Switching card.
  • Short panes: agent rows drop first, then the hero. The action rows always stay.

The cat: feat-cmux-next replaced it with 🫡 while this PR was open (274f690c5f0, "the user picked the saluting face"). This PR used to make the pet character the default face; it now defers to that pick, and the hero shows the same face as the header. An earlier revision's HomeChiefFace, ChiefPetMascot.imageURL and the Floating dependency are gone.

Toggle: Debug Settings > Home > Chief front page hero (home.firstRun.hero, on by default). Off gives the rows-only panel. Logged on #13742.

This includes #22362 (the home.toggleChiefPet action, merged in). Once #22362 lands, this diff shrinks to the front-page commits.

Screenshots

The media-tour label tours the base and head on a glaeda GUI runner with the extended chief-settings tour:

  1. Home with the empty Chief conversation;
  2. dark appearance;
  3. the settings popover.

The tour does not toggle the pet: home.toggleChiefPet is person-only, so the control socket refuses it.

The shots land in this PR's status comment.

Testing

  • HomeChiefFrontPageTests (new, CmuxNextAppTests):
    • the hero shows above the rows in the order hero, Start an agent, Open a terminal, Show Chief Pet;
    • a 130 pt pane drops the hero and keeps every action row;
    • the Debug switch hides the hero;
    • the pet row's title follows the pet's state, and pressing it sends .togglePet;
    • the hero shows the header's face: 🫡 as text with no picture, the picture when there is one.
  • tests/test_cmux_next_media_path_map.py: first-run files map to the chief-settings tour. Ran locally: 10 tests OK.
  • scripts/cmux-next/check-no-godfiles.sh --file …: no Home file over budget. HomeNativeTranscriptView's first-run inputs moved to +FirstRun.swift, which keeps it under 400 lines.
  • scripts/cmux-next/check-l10n.sh: 0 errors. check-swift-type-scale.py: the hero uses TypeScale.title and .detail, no new entries.
  • Localization: four new keys in CmuxNextHome's catalog (home.firstRun.hero.title, .hero.body, .showPet, .hidePet), each in all 20 shipped locales and marked needs_review.

Observed / Not run

No local build (policy). Compilation and the Swift tests run in CI; the look is checked by the tour shots above, not by a person yet.

Changelog

  • Changed: the empty Chief conversation shows the Chief's face and what it does, with a Show Chief Pet row.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Turns the empty Chief conversation into the Chief's front page: the Chief's face, two lines about what it does, and a Show / Hide Chief Pet row. The bundled placeholder cat is gone.

  • The hero shows the header's face — the profile's picture or text, else the saluting 🫡 — at 72 pt above the rows. Debug Settings > Home > Chief front page hero (home.firstRun.hero) turns it off, and a short pane drops it before any action row.
  • The pet row reads the pet's state from home.chiefPetEnabled and runs home.toggleChiefPet; two quick runs flip the value in flight and put the pet back as it began. The toggle is person-only, so controls that only run actions cannot flip it.
  • The first-run inputs moved to +FirstRun.swift, keeping CmuxNextApp and HomeNativeTranscriptView under their size caps.
  • Added HomeChiefFrontPageTests; the first-run files route to the chief-settings media tour, which now also captures dark and system appearances.
  • The last merge took in the base's generated exports; the autofix regenerated the MDM docs, the action surface plans, and the settings schemas.