Skip to content

[CMUX Next] Chief pet: a Chief Pet settings page like ChatGPT's Mini & Pets - #21822

Merged
teamleaderleo merged 60 commits into
feat-cmux-nextfrom
feat/chief-pet-settings-page
Oct 21, 2026
Merged

teamleaderleo merged 60 commits into
feat-cmux-nextfrom
feat/chief-pet-settings-page

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

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:

  • Header: a one-line description, plus Show Pet / Hide Pet, which toggles home.chiefPetEnabled (ChatGPT's "Show mini").
  • Preview: the chosen pet over its rail (compose and the chevron), as it floats on screen. It's dimmed while the pet is hidden.
  • Pets: a grid of cards, one per character (the Chief Dock's nine pixel mascots from Codex), each with its art, name and a line about it, plus None. Clicking a character picks it and shows the pet. None hides the pet and keeps the character for next time. The chosen card is outlined and checked.
  • Hover preview: hovering or focusing a character shows it in the preview over the rail until the pointer or focus leaves, without writing anything (as ChatGPT's picker does).

How you find the pet:

  • The pet is off by default (home.chiefPetEnabled defaults 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:

  • The card draws the category's two rows (home.chiefPetEnabled, home.chiefPetMascot) instead of their plain toggle and menu. This works the same way the Backdrops card draws its rows.
  • Like a plain row, the card's buttons are disabled while Settings is disconnected or a key is managed, and it shows the managed reason or a refused write. Picking a character turns the pet on only if saving the character worked.
  • Search, the palette's settings rows and cmux settings still reach both keys. The card's header and grid carry their row keys, so search results land on them.
  • The category id is chief-pet, in kebab case for routes and gallery variants. Its sidebar symbol is a new pawprint icon.

What's different from ChatGPT's page:

  • No shortcut chip: ChatGPT's ⌥Space shows and focuses the pet. A global show-pet key isn't part of this PR, and ⌥Space would conflict with Start Agent's opt-in system-wide key.
  • No Create pet.
  • No Customize button.

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):
on

Pet off (None):
off

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):
    • None and all nine characters show, with None chosen while the pet is off;
    • the plain rows aren't drawn again below the card (checked against .row[data-row-key], so it fails if the filter breaks);
    • picking a character shows the pet with it;
    • None hides the pet but keeps the character;
    • Show Pet / Hide Pet toggle the pet and keep the character;
    • hovering a character previews it without picking it.
  • categories.test.ts now lists chief-pet among the approved categories, since Leo asked for this page.
  • editors.test.tsx checks that the card draws both rows.
  • After merging feat-cmux-next: chiefPetCard, categories, editors and search tests pass, run per file. gallery-coverage now covers ChiefPetCard; its remaining gaps are base components.
  • vp lint and vp fmt are clean on the changed files.
  • gen-strings --check passes.
  • The settings schema export carries the Chief Pet category. The export stamp is stale on feat-cmux-next itself, so it's left for the base autofix to regenerate.

Localization: there are 16 new strings in 20 locales:

  • the category title;
  • the card's lede, Show/Hide, Pets, None and its help;
  • nine character descriptions.

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

teamleaderleo and others added 22 commits October 18, 2026 14:23
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>
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>
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>
@coderabbitai

coderabbitai Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 375cbebb-ca0a-4ea7-b6be-de89bd503913

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@blacksmith-sh

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

Probably yours: CI fast guards failed: a guard step failed, FAIL 1.3s workflow-guard-tests / ci: Check that push and pull_request path filters agree.

CI failed on 383d2f6905 (run 39178062159 attempt 1): 4 code, 7 unknown.
macOS jobs did not run: compile and app tests were skipped: Fast static checks failure.

Job Verdict Why
CI fast guards code a guard step failed
Fast static checks code a static check failed
guards / workflow-guard-history unknown no known signature; failed step: Validate SwiftPM lockfile policy
guards / workflow-guard-tests / preflight unknown no known signature; failed step: Validate macOS runner guards
guards / workflow-guard-tests / app-host-cache unknown no known signature; failed step: Validate iOS video recording failures
guards / workflow-guard-tests / app-host-execution code a Python test failed
guards / workflow-guard-tests / quality-determinism code a Python test failed
guards / workflow-guard-tests / release-tooling unknown no known signature; failed step: Validate retried Ghostty Zig package fetches
guards / workflow-guard-tests / release-ios unknown no known signature; failed step: Validate iOS simulator build-once contract
web / react-apps-check (1) unknown no known signature; failed step: Test webviews
web / react-apps-check unknown no known signature; failed step: Check webview test shards
Matched log lines
CI fast guards: FAIL    1.3s  workflow-guard-tests / ci: Check that push and pull_request path filters agree
Fast static checks: FAILED localization (0.77s)
guards / workflow-guard-tests / app-host-execution: ERROR: test_failures_and_crashes_keep_swift_test_exit_status (__main__.DirectBundleSuiteTests.test_failures_and_crashes_keep_swift_test_exit_status)
guards / workflow-guard-tests / quality-determinism: FAIL: test_scans_only_test_sources (__main__.CommandLine.test_scans_only_test_sources)

Not re-run automatically: CI fast guards, Fast static checks, guards / workflow-guard-history, guards / workflow-guard-tests / preflight, guards / workflow-guard-tests / app-host-cache are not machine failures.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

@github-actions

Copy link
Copy Markdown
Contributor

CI fast guards failed on 383d2f6905 (https://github.com/manaflow-ai/cmux/actions/runs/39178062159). It does not block the merge; a red guard merged into main breaks it for every open PR.

Check that push and pull_request path filters agree

Test: python3 tests/test_ci_workflow_path_filter_parity.py

Traceback (most recent call last):
  File "/home/runner/_work/cmux/cmux/tests/test_ci_workflow_path_filter_parity.py", line 245, in <module>
    test_push_and_pull_request_filter_the_same_files()
  File "/home/runner/_work/cmux/cmux/tests/test_ci_workflow_path_filter_parity.py", line 156, in test_push_and_pull_request_filter_the_same_files
    assert not drifted, (
           ^^^^^^^^^^^
AssertionError: Every workflow that filters both events must filter them identically, or declare the difference in EXEMPTIONS or PUSH_ONLY_PATTERNS with a reason.
backend.yml: push and pull_request filter different files
  paths: guarded on push, not on pull requests: scripts/cmux-next/release/prod-promote.ts, scripts/cmux-next/release/production-approvals.json
cmux-next.yml: push and pull_request filter different files
  paths: guarded on pull requests, not on push: .github/actions/**, .github/workflows/**, Assets.xcassets/**, Native/**, Resources/**, TunnelExtension/**, cmuxTests/**, cmuxUITests/**, daemon/**, docs/configuration.md, scripts/cmux-next/**, scripts/cmux-next/state-roots-baseline.tsv, scripts/whats-new/**, tests/**
  paths: guarded on push, not on pull requests: .github/workflows/nightly.yml, scripts/apple-developer-id-certs/**, scripts/ci/*nightly*, scripts/ci/download-run-artifact.py, scripts/ci/finalize-release.py, scripts/ci/publish-release-assets.py, scripts/ci/signing-keychain.sh, scripts/ci/update-release-tag.py, scripts/ci/upload-r2-object.py, scripts/import-apple-devel ...

Fix: the assertion above names what the guard expects; change the tree to match it.
Reproduce in seconds, no build: scripts/ci/guards-local.sh --step 'Check that push and pull_request path filters agree'

Validate local hook trust boundary

Test: python3 tests/test_preflight_trust.py

  • PreflightTrustTests.test_annotated_tag_push_does_not_execute_candidate_code
subprocess.CalledProcessError: Command '['bash', 'scripts/install-git-hooks.sh']' returned non-zero exit status 1.
  • PreflightTrustTests.test_hook_installation_has_no_candidate_code_runner
subprocess.CalledProcessError: Command '['bash', 'scripts/install-git-hooks.sh']' returned non-zero exit status 1.
  • PreflightTrustTests.test_push_does_not_execute_candidate_check_through_unchanged_wrapper
subprocess.CalledProcessError: Command '['bash', 'scripts/install-git-hooks.sh']' returned non-zero exit status 1.
  • PreflightTrustTests.test_push_does_not_execute_candidate_runner
subprocess.CalledProcessError: Command '['bash', 'scripts/install-git-hooks.sh']' returned non-zero exit status 1.

... and 1 more failing tests in the run log.
Fix: the assertion above names what the guard expects; change the tree to match it.
Reproduce in seconds, no build: scripts/ci/guards-local.sh --step 'Validate local hook trust boundary'

Run canonical CMUX CI guard profile

GitHub-hosted runner label: .github/workflows/cmux-next-split-guard.yml:13:    runs-on: ubuntu-24.04
GitHub-hosted runner label: .github/workflows/intent-familiar-review.yml:21:    runs-on: ubuntu-24.04
GitHub-hosted runner label: .github/workflows/nightly.yml:1461:    runs-on: ${{ inputs.nightly_next_unsigned_run != '' && 'ubuntu-24.04' || github.repository_owner != 'manaflow-ai' && 'macos-15' || (needs.decide.outputs.fast_build == 'true' && 'blacksmit
GitHub-hosted runner label: .github/workflows/nightly.yml:1598:    runs-on: ${{ inputs.nightly_next_unsigned_run != '' && 'ubuntu-24.04' || github.repository_owner != 'manaflow-ai' && 'macos-26' || needs.decide.outputs.fast_build != 'true' && github.run_

... and 1 more failing tests in the run log.
Fix: the assertion above names what the guard expects; change the tree to match it.
Reproduce in seconds, no build: scripts/ci/guards-local.sh --step 'Run canonical CMUX CI guard profile'

Validate package test selection

Test: python3 tests/test_ci_select_package_tests.py

Traceback (most recent call last):
  File "/home/runner/_work/cmux/cmux/tests/test_ci_select_package_tests.py", line 229, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/runner/_work/cmux/cmux/tests/test_ci_select_package_tests.py", line 131, in main
    check_package_output_behavior()
  File "/home/runner/_work/cmux/cmux/tests/test_ci_select_package_tests.py", line 112, in check_package_output_behavior
    assert result.returncode == 1 and count == 1, f"{package}: real error incorrectly tolerated: {result.returncode}"
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: GhosttyFixture: real error incorrectly tolerated: 1

Fix: the assertion above names what the guard expects; change the tree to match it.
Reproduce in seconds, no build: scripts/ci/guards-local.sh --step 'Validate package test selection'

Lint every workflow

.github/workflows/cmux-next-defaults-guard.yml:94:28: expected scalar node for string value but found alias node with "" tag [syntax-check]
   |
94 |           sparse-checkout: *defaults-paths
   |                            ^~~~~~~~~~~~~~~
.github/workflows/cmux-next-frame-pacing.yml:198:33: property "resolve-ref" is not defined in object type {build: {outputs: {}; result: string}; gate: {outputs: {run: string; tag: string}; result: string}} [expression]
    |
198 |       CMUX_PERF_SOURCE_SHA: ${{ needs.resolve-ref.outputs.sha }}
    |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.github/workflows/nightly.yml:34:3: maximum number of inputs for "workflow_dispatch" event is 10 but 17 inputs are provided. see https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#providing-inputs [events]
   |
34 |   workflow_dispatch:
   |   ^~~~~~~~~~~~~~~~~~

Fix: the assertion above names what the guard expects; change the tree to match it.
Reproduce in seconds, no build: scripts/ci/guards-local.sh --step 'Lint every workflow'

Validate the package test lane's single-suite phase

debug info {'CMUX_SWIFT_TEST_DEBUG_INFO': 'none'}: want one build and two suites: ['swift package resolve --package-path Packages/macOS/Pkg', 'swift --version', 'swift build --build-tests -c debug -debug-info-format none --package-path Packages/macOS/Pkg', 'swift test -c debug -debug-info-format none --package-path Packages/macOS/Pkg --skip-build --filter ATests', 'swift test -c debug -debug-info-format none --package-path Packages/macOS/Pkg --skip-build --filter BTests']
debug info {'CMUX_SWIFT_TEST_DEBUG_INFO': 'none'}: 'swift package resolve --package-path Packages/macOS/Pkg' lacks '-debug-info-format none'
debug info {'CMUX_SWIFT_TEST_DEBUG_INFO': 'none'}: 'swift --version' lacks '-debug-info-format none'
debug info {}: want one build and two suites: ['swift package resolve --package-path Packages/macOS/Pkg', 'swift --version', 'swift build --build-tests -c debug -debug-info-format none --package-path Packages/macOS/Pkg', 'swift test -c debug -debug-info-format none --package-path Packages/macOS/Pkg --skip-build --filter ATests', 'swift test -c debug -debug-info-format none --package-path Packages/macOS/Pkg --skip-build --filter BTests']

... and 7 more failing tests in the run log.
Fix: the assertion above names what the guard expects; change the tree to match it.
Reproduce in seconds, no build: scripts/ci/guards-local.sh --step 'Validate the package test lane'"'"'s single-suite phase'

Validate side-lane placement onto idle owned runners

  • CmuxNextWiring.test_every_mac_job_reads_the_placement
AssertionError: Items in the first set but not the second:
'fast-tier'
  • CmuxNextWiring.test_placement_starts_only_where_attempt_1_may_take_the_side_label
AssertionError: False is not true

Fix: the assertion above names what the guard expects; change the tree to match it.
Reproduce in seconds, no build: scripts/ci/guards-local.sh --step 'Validate side-lane placement onto idle owned runners'

Validate the persistent-pool rescue

Test: python3 tests/test_ci_owned_pool_rescue.py

  • SideLanes.test_a_completed_failed_blacksmith_retry_is_not_watched_again
AssertionError: True is not false
  • SideLanes.test_a_real_failure_on_cmux_next_attempt_two_is_not_rescued
AssertionError: 'rerun-failed' unexpectedly found in ['jobs:2', 'run', 'pull', 'run', 'rerun-failed']

Fix: the assertion above names what the guard expects; change the tree to match it.
Reproduce in seconds, no build: scripts/ci/guards-local.sh --step 'Validate the persistent-pool rescue'

Validate every workflow guard is wired

Test: python3 tests/test_ci_workflow_guards_are_wired.py

Traceback (most recent call last):
  File "/home/runner/_work/cmux/cmux/tests/test_ci_workflow_guards_are_wired.py", line 110, in <module>
    test_every_workflow_guard_is_run_by_a_workflow()
  File "/home/runner/_work/cmux/cmux/tests/test_ci_workflow_guards_are_wired.py", line 89, in test_every_workflow_guard_is_run_by_a_workflow
    assert not unwired, (
           ^^^^^^^^^^^
AssertionError: these tests read .github/workflows/ but no workflow runs them, so the invariants they assert are not enforced:
  tests/test_cmux_next_web_bundle_cache.py
  tests/test_cmux_tui_republish_same_commit.py
  tests/test_nightly_next_post_publish.py
Add a step to .github/workflows/ci-guards.yml, or add an entry to UNWIRED in this file explaining why not.

Fix: the assertion above names what the guard expects; change the tree to match it.
Reproduce in seconds, no build: scripts/ci/guards-local.sh --step 'Validate every workflow guard is wired'

Validate required checks are bounded

Test: python3 tests/test_ci_required_checks_are_bounded.py

unbounded CI:
  - .github/workflows/cmux-next-batch.yml runs on pull_request with no concurrency group, so every push leaves the superseded run running
  - .github/workflows/cmux-next-split-guard.yml runs on pull_request with no concurrency group, so every push leaves the superseded run running

Fix: the assertion above names what the guard expects; change the tree to match it.
Reproduce in seconds, no build: scripts/ci/guards-local.sh --step 'Validate required checks are bounded'

... and 6 more failed steps in the run log.

Agents: python3 scripts/ci/guard_attribution.py fix applies the mechanical fixes locally. This comment is updated in place on each push.

Base automatically changed from feat/chief-pet-setting to feat-cmux-next October 20, 2026 00:30
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-tlhax created for this PR by the cmux coordinator.

…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>
@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 21, 2026 02:07 — with GitHub Actions Inactive
…ws it without picking it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 21, 2026 02:08 — with GitHub Actions Inactive
… 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>
@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 21, 2026 02:22 — with GitHub Actions Inactive
@cursor

cursor Bot commented Oct 21, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot 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.

@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 21, 2026 02:33 — with GitHub Actions Inactive
…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
@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 21, 2026 03:14 — with GitHub Actions Inactive
…pet-settings-page

# Conflicts:
#	schemas/settings-export/settings-schema.sources.sha256
@cursor

cursor Bot commented Oct 21, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot 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.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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.

@teamleaderleo
teamleaderleo merged commit 5996ba2 into feat-cmux-next Oct 21, 2026
@teamleaderleo
teamleaderleo deleted the feat/chief-pet-settings-page branch October 21, 2026 03:58
teamleaderleo added a commit that referenced this pull request Oct 21, 2026
… 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>
@github-actions

Copy link
Copy Markdown
Contributor

Shipped in:

@github-actions

Copy link
Copy Markdown
Contributor

Shipped in:

This branch had an error being deployed

1 failed and 3 inactive (1 outdated) deployments
artifacts — a3417f6c Deployed Oct 21, 2026 by teamleaderleo
sentry-dsyms — a3417f6c Deployed Oct 21, 2026 by teamleaderleo
cmux-tui-merge-tree — a3417f6c Deployed Oct 21, 2026 by teamleaderleo
ci-routing-agent — 13697e93 Deployed Oct 21, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant