Repository navigation
[CMUX Next] Chief pet: a Chief Pet settings page like ChatGPT's Mini & Pets - #21822
Conversation
A small Chief character in a non-activating panel that joins every Space, never takes focus, drags anywhere (its spot is kept per display and pulled back on screen), and opens the Chief on a click. Behind the chiefPet.enabled Debug Settings toggle, off by default, until it has a user setting. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CmuxNextApp may not grow (code-quality SW14), so the pet lives in a new CmuxNextFloating target with the floating chat's per-display frames, which it already shares; the App keeps only the wiring and shrinks by 23 source lines. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- regenerated Packages/macOS/CmuxNext/ci-target-graph.json Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/39137151099
A public default argument may only use what the file imports publicly; the controller now takes an optional switch and reads the tunable itself. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The App's ChiefAvatar.png is the round cat Home draws in a disc; Leo's references float the full-body Chief the Chief Dock uses. CmuxNextFloating now bundles that character (ChiefPet.png, the dock's ChiefAvatar.png) as the pet's default image. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This reverts commit 2eed332.
Match chief-water-reference: the Chief Dock's pixel mascot (Orb by default, all nine bundled, scaled up with whole pixels) over a glass rail with a compose tool, 8 pt apart. A drag anywhere but a tool moves the pet; a click on the character or compose opens the Chief. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The rail matches chief-water-reference's capsule: compose and the chevron (the dock's disclosure mark pointing up). The character's box is 88 x 80 pt so the pixel mascot carries the reference pet's weight. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
What alerts on this Mac (a banner's rules) also shows over the pet, matching chief-chat-source-captures d154d558: glass capsules of the references' size (330 x 56 pt) with a bold title and one muted line and no status glyph, the older ones peeking out below as a deck; the rail's chevron unfolds them into a column and each capsule opens its tab. One notice per tab; identical content never re-animates; a finished turn leaves after 8 s while a question or failure stays, counted on the character's badge, until its tab is read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A click on the pet or the rail's compose opens a reply capsule just over the pet, the notices' size and glass, that takes the keys without activating cmux. It starts on the newest notice: Return types the reply into that terminal (as a notify --reply banner does) or, for an agent chat, opens the chat in the floating chat or its tab; with no notice it messages the Chief. Cmd-Return opens the target. The Quick Agent Chat's panel moves into CmuxNextFloating with the rest of the floating surfaces, so the App keeps shrinking. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ettings home.chiefPetEnabled (off by default) and home.chiefPetMascot (the Chief Dock's nine pixel mascots, Orb by default) in Settings > Home > Chief Pet, the palette's settings rows and cmux settings set replace the Debug Settings toggle; agents may set both (looks only). The pet follows them live. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Replies type into a terminal only while the notice is still its tab's unread notification, as a notify --reply banner's do. - A notice read anywhere else (another client, a closed tab) leaves the pet. - The reply menu keeps two notices with one title apart, keeps the chosen session across refreshes and falls back to the Chief, never to another session; Cmd-Return opens, other command keys stop at the box. - Notice capsules take their press, so a click opens the tab; an agent chat opens its tab rather than a second copy in the floating chat. - A finished turn dropped behind three waiting notices shows nothing. - CmuxNextFloating no longer imports CmuxNextDaemon (the App maps the notification); the pet is made by the notification service, so AppServices and AppDelegate stay unchanged; the mascot constant is initial (lint); the Chief Pet settings get a card under Agents. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pet-setting # Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextSettings/Schema/SettingsPageLayout.swift
…plies, no screen sharing - home.chiefPetEnabled is user-only: the pet puts agent output over every app and a reply box that types into terminals. The character stays agent-settable. - A pet reply types only while a program still runs in the terminal's foreground: process-info and the paste go over one connection, back to back, and a bare shell refuses the reply. - The pet, its notices and the reply box stay out of screen shares. - The notice deck takes its size with no screen, and the deck height test compares CGFloats. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r the Chief pet Generated only. Settings exports from the fleet export-settings step at 2f2f1e6 (cmux-ci step 20d9ccba77afe7b51e35de31, decoded from its BEGIN_ARTIFACT blocks), defaults snapshot from defaults_guard.py snapshot, Settings page strings from webviews/scripts/pages/gen-strings.mjs settings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pet-setting # Conflicts: # schemas/settings-export/settings-schema.sources.sha256 # schemas/settings/settings-schema.json
…ef pet test feat-cmux-next moved NotificationPolicy into CmuxNextSettings (#21735). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…base merge Generated only, from the fleet export-settings step at 492302f (cmux-ci step on key chiefpet-export-settings-492302f); defaults snapshot and Settings page strings checked fresh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Settings gets a Chief Pet category whose card previews the pet over its rail with Show Pet / Hide Pet, then lists every character (the Chief Dock's pixel mascots) as a card with its name and a line about it, plus None, which hides the pet. The card draws home.chiefPetEnabled and home.chiefPetMascot in place of their rows; search, the palette and cmux settings still reach them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… tighter preview The category is chief-pet (gallery variants and routes are lower kebab case). The card's header and grid carry their rows' keys, so search and the gallery's control probe land on them. The preview is 160 pt tall, nearer ChatGPT's Mini & Pets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Generated only, from the fleet export-settings step at ff4bf11 (key chiefpet-export-settings-ff4bf11); defaults snapshot and Settings page strings checked fresh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This comment has been minimized.
This comment has been minimized.
|
Probably yours: CI failed on
Matched log linesNot re-run automatically: Written by |
|
|
|
Bead |
…et-settings # Conflicts: # schemas/settings-export/settings-schema.sources.sha256
… chosen one is checked As ChatGPT's picker: the preview over the rail shows the character under the pointer or keyboard focus until it leaves, without writing anything, and the chosen card carries a check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ws it without picking it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… write; no stuck preview Review of #21822: - Picking a character while the pet is hidden turns it on only if no later click (None, Hide Pet, another pick) came while the character write was out. - A locked grid previews nothing: a disabled card may never get its mouseleave or blur. - The hover test builds its events with window.MouseEvent (Bun has no MouseEvent global). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pet-settings-page
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
…ep a6c252508e25157dd685f2ee) Regenerated by run-swift-testing-suites.sh export-settings on the fleet at 98b5e74 plus #22821's one-line base compile fix (palette code; it does not reach the settings exports). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15bab-4f26-7f80-bf66-d528ccafc751&host=cosmic-gray
…pet-settings-page # Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextSettings/Localizable.xcstrings
…pet-settings-page # Conflicts: # schemas/settings-export/settings-schema.sources.sha256
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (subagent, correctness first): SHIP at a3417f6. The independent review passed (one finding, the search focus, fixed in eb736f4). Since then: base merges and fleet-regenerated settings exports. Fleet compile-check --app passed at a3417f6 (job 5ff205e256f29c8c886c3846). The remaining reds also fail on base: defaults-snapshot (base has 19 stale settings sources), web react-apps-check (stale optchat inspector page) and the nightly guards. |
… joins Settings > Chief #21822 added a Chief Pet category for the pet card; its owner and this PR agreed on one Chief page. The card leads the Chief category after the Chiefs list, and the chief-pet category goes. Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c01-a495-7013-b37d-abe71de99881&host=cosmic-gray Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Shipped in:
|
|
Shipped in:
|
Summary
Leo asked for nicer Chief pet settings, like ChatGPT's Mini & Pets page. This adds a Chief Pet category to Settings for the floating pet that landed in #21738. One card draws the page:
home.chiefPetEnabled(ChatGPT's "Show mini").How you find the pet:
home.chiefPetEnableddefaults to false in base; this PR doesn't change that). Leo couldn't find it in the nightly, so it now has its own sidebar entry, Settings > Chief Pet, and Show Pet there turns it on. Picking any character also shows it.How it fits the Settings page:
home.chiefPetEnabled,home.chiefPetMascot) instead of their plain toggle and menu. This works the same way the Backdrops card draws its rows.cmux settingsstill reach both keys. The card's header and grid carry their row keys, so search results land on them.chief-pet, in kebab case for routes and gallery variants. Its sidebar symbol is a newpawprinticon.What's different from ChatGPT's page:
Screenshots
These are the real page, rendered from this branch by the Settings gallery (
pages.settings→chief-pet,chief-pet-customized) in headless Chromium at 1000 × 795 pt @2x. That's the same 2000 × 1590 px as Leo's ChatGPT screenshot.Pet on (Orb Spark):

Pet off (None):

Leo's ChatGPT reference was pasted in chat and isn't saved anywhere I can reach, so it isn't placed beside these.
Testing
chiefPetCard.test.tsx(new) covers (hover preview test added by the adopting lane; CI runs it, not run locally):.row[data-row-key], so it fails if the filter breaks);categories.test.tsnow listschief-petamong the approved categories, since Leo asked for this page.editors.test.tsxchecks that the card draws both rows.chiefPetCard,categories,editorsandsearchtests pass, run per file.gallery-coveragenow coversChiefPetCard; its remaining gaps are base components.vp lintandvp fmtare clean on the changed files.gen-strings --checkpasses.Localization: there are 16 new strings in 20 locales:
The character names reuse #21738's
settings.choice.chiefPetMascot.*.Changelog
Added: Settings > Chief Pet shows a preview of the floating pet, shows or hides it, and picks its character from a grid of nine
Adopted from the stopped Chief subagent a11 (claimed with pr-owner); base merged and the hover preview and check added.
Agent session: cosmic-gray
🤖 Generated with Claude Code