Repository navigation
cmux-next palette: missing return in familyRow (base compile red since #22764) - #22821
lawrencecchen wants to merge 1 commit into
Conversation
…#22764) RegistryPaletteProvider+Families.swift:58: a body with a let and then an expression is not a single-expression body, so Swift needs return. Every CmuxNext package build on feat-cmux-next fails with 'missing return in static method expected to return PaletteItem' (cmux-ci step fe26283335be).
|
Bead |
|
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)
Not verified: macOS jobs did not run: compile and app tests were skipped on CI passes on Written by |
|
From the palette-audit lane, which wrote the break in #22764: this one-line |
|
The base already has this fix (feat-cmux-next now has |
…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
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c01-a42d-7970-a4a7-2f0ac203c940&host=cosmic-gray
…& Pets (#21822) * feat(next): float the Chief pet over every app 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> * refactor(next): move the Chief pet into CmuxNextFloating 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> * chore(next): PR autofix at 1810bb6 - regenerated Packages/macOS/CmuxNext/ci-target-graph.json Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/39137151099 * fix(next): resolve the Chief pet's switch inside its module 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> * fix(next): float the full-body Chief, not Home's round avatar 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> * Revert "fix(next): float the full-body Chief, not Home's round avatar" This reverts commit 2eed332. * feat(next): the Chief pet is a pixel mascot over a glass rail 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> * feat(next): give the Chief pet's rail the dock's expand chevron 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> * feat(next): show agent notices over the Chief pet as a glass deck 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> * feat(next): reply to a session or the Chief from the Chief pet 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> * feat(next): turn the Chief pet on and off and pick its character in Settings 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> * fix(next): Chief pet review fixes - 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> * fix(next): Chief pet labels truncate without reaching into the cell Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(next): Chief pet safety: user-only switch, agent-still-running replies, 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> * chore(next): regenerate settings exports and Settings page strings for 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> * fix(next): import NotificationPolicy from CmuxNextSettings in the Chief pet test feat-cmux-next moved NotificationPolicy into CmuxNextSettings (#21735). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore(next): regenerate settings exports for the Chief pet after the 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> * feat(next): a Chief Pet settings page, after ChatGPT's Mini & Pets 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> * fix(next): Chief Pet settings page: kebab-case category id, row keys, 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> * chore(next): regenerate settings exports for the Chief Pet page 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> * Chief Pet: list its card in the settings gallery and export its category The settings gallery covers ChiefPetCard (gallery-coverage), and the settings schema export carries the Chief Pet category the layout adds (pawprint, the pet's group moved out of Agents). The export stamp is left for the base autofix: feat-cmux-next's stamp is already stale against its own sources. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Chief Pet card: respect managed and disconnected keys, keep the pet on a refused pick The card replaces the two plain rows, so it now does what SettingRow does: its buttons are disabled while disconnected or when a key is managed, and it shows the managed reason and any refused write under the header and the grid. Picking a character turns the pet on only when the character write succeeded. The "no plain rows" test checked a data-key attribute nothing emits; it now looks for a .row with the key, and fails if SectionView stops filtering them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore(next): PR autofix at c27187b - docs/mdm/com.manaflow.cmux.json - docs/mdm/com.manaflow.cmux.plist - docs/mdm/managed-preferences.md - schemas/defaults/cmux-next.json - schemas/settings-export/settings-schema.sources.sha256 - schemas/settings/settings-schema.json Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/39380724189 * chore(next): PR autofix at b896c85 - schemas/settings-export/settings-schema.sources.sha256 Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/39391206920 * Settings: the Chief Pet mascots ship inlined in the page The shipped Settings page is one self-contained index.html whose CSP allows img-src data: only, so new URL(..., import.meta.url) art never loaded. Import the PNGs and let the pages bundler inline them as data URLs. 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 * Settings Chief Pet: search lands on the card; a managed toggle leaves the characters pickable - The card takes the route's focus: a search result for the toggle or the character focuses Show/Hide or the selected choice. - With home.chiefPetEnabled managed on, the characters stay pickable when the mascot is editable; only a pick that must also show the pet needs the toggle. - Catalogs and the schema export go back to base plus this PR's keys: the stale export dropped base rows (screenshots.*). The PR autofix regenerates the export with the Chief Pet category. 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 * Settings Chief Pet: a search result focuses its control once, after the values arrive 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 * chore(next): PR autofix (settings exports with the Chief Pet category) Applied from run 39517779622's pr-autofix-patch with pr-autofix-apply.sh --changed. Autofix-Run: 39517779622 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 * cmux NEXT Settings > Chief Pet: hovering a character previews it; the 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> * cmux NEXT Settings > Chief Pet: test that hovering a character previews it without picking it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * cmux NEXT Settings > Chief Pet: a later click wins over a pick's late 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> * chore(next): settings exports for the Chief Pet page (fleet export step 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 --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: cmux-autofix[bot] <cmux-autofix[bot]@users.noreply.github.com>
Base red, priority zero.
RegistryPaletteProvider+Families.swift:58has aletand then an expression, which is not a single-expression body, so Swift needsreturn. Every CmuxNext package build of feat-cmux-next fails:error: missing return in static method expected to return 'PaletteItem'(cmux-ci step fe26283335be9a6c2bb2f864 on aws-m4pro-5, head of PR #22814).Changelog
none
Observed / Not run
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes the missing
returninfamilyRow(_:members:)that has been breaking thefeat-cmux-nextbase since #22764. The method body has aletdeclaration followed by an expression, which Swift doesn't treat as a single-expression body, so it needs an explicitreturn. This was causing everyCmuxNextpackage build to fail witherror: missing return in static method expected to return 'PaletteItem'.Written for commit 0a20be4. Summary will update on new commits.