Skip to content

cmux-next: add sidebar workspace groups and tab rows - #17186

Merged
teamleaderleo merged 9 commits into
feat-cmux-nextfrom
feat-cmux-next-sidebar-groups
Oct 3, 2026
Merged

teamleaderleo merged 9 commits into
feat-cmux-nextfrom
feat-cmux-next-sidebar-groups

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 3, 2026 •

Copy link
Copy Markdown
Collaborator

What changed

cmux-next now renders workspace groups in the sidebar with a compact colored header dot and text, plus one thin colored vertical rail tying their member rows together. Group members keep their normal kind icon inset with no additional group indent. The same rail treatment applies to grouped Projects and their sessions. Group headers are small-radius rows rather than capsule pills.

The opt-in sidebar.showWorkspaceTabs setting renders each workspace's tabs beneath it with the existing row-kind inset and tab rail treatment. Workspace-group actions cover create, selection grouping, collapse, rename, color, reorder, membership, and next/previous navigation.

Validation

  • Exact pushed HEAD 235686e573a142eca2529d5319d0f93645412582 compiled successfully on the fleet in job f60463d8038af7ae466bca68 with tag pr-17186-sidebar-groups-v18; terminal receipt: artifacts/fleet/235686e573a142eca2529d5319d0f93645412582-terminal.json; artifact digest: sha256:e35363a7c7e38905de6cf53f50f4a9d7f04759fbe97f9b7ebfe1211cb4bb3d94.
  • The exact artifact was pulled directly from fleet CAS on the leased capture mini. No app or zip crossed through Big Red.
  • The capture bundle is artifacts/capture/dbe28cb6cbee7f9e4f8e25b83d2f0a7bb756d3b1/. groups.png visibly shows a blue Product group dot and thin vertical rails joining workspace-2 and workspace-3; groups-state.json provides picker-host evidence for the same sidebar UI; the final exact-head fleet compile is listed separately. The final host could not finalize recording.mp4 (reported to the coordinator), while the earlier bounded capture at artifacts/capture/9db0eeb1db760b7e29fe4c53df0aa9df858ea1d1/recording/recording.mp4 completed successfully. All UI actions were foreground CUA-driver actions in bounded runs.
  • swiftc -frontend -parse passed for every changed Swift file.
  • bun build web/data/cmux-shortcuts.ts --target node passed.
  • JSON parsing passed for the settings schema, action export, and web schema.
  • git diff --check passed.
  • python3 scripts/check-workspace-package-groups.py passed.
  • Localization entries for all required macOS locales were audited. The repository-wide localization checker still reports pre-existing catalog parity errors outside this change; the current base evidence is documented in the PR comments.
  • Swift package tests are covered by hosted CI and the exact-head fleet compile; Big Red is not a native Swift builder.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Oct 3, 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: 5b4f63c8-f0fb-495c-b508-ad7855b71cda

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
  • Autopilot · 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.

@github-actions

github-actions Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

CI failure attribution

CI passes on 235686e573 (run 37162822391 attempt 1).

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.

@cursor

cursor Bot commented Oct 3, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

1 similar comment
@cursor

cursor Bot commented Oct 3, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@teamleaderleo
teamleaderleo force-pushed the feat-cmux-next-sidebar-groups branch 6 times, most recently from 058f9c5 to 95a5cac Compare October 3, 2026 22:44
@cursor

cursor Bot commented Oct 3, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@teamleaderleo
teamleaderleo force-pushed the feat-cmux-next-sidebar-groups branch from ff26774 to 70b4c50 Compare October 3, 2026 23:02
@cursor

cursor Bot commented Oct 3, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@teamleaderleo
teamleaderleo force-pushed the feat-cmux-next-sidebar-groups branch from 70b4c50 to 9db0eeb Compare October 3, 2026 23:12
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Base audit after rebasing onto current feat-cmux-next 5ca2a60e2fb43c51624f70d3afa772396af2bf54:

  • The base cmux-next run 37160782148 reports the pre-existing SettingsSchema god-type red: 1049 lines against the 1000-line limit, and the pre-existing localization catalog red: 408 errors across 84 tables and 21 languages. These are unchanged by this PR.
  • The same base run's Swift test job reports unrelated baseline failures in VariantRegistryTests, SidebarRailViewTests, SettingsSchemaExportTests, ManagedPreferencesManifestTests, and SettingsGroupIdentityTests; the sidebar group changes do not touch those baseline failures.

The branch adds no lint:allow markers and carries no VmPrivateNetworkUnavailableError import or other base-fix changes.

@teamleaderleo
teamleaderleo force-pushed the feat-cmux-next-sidebar-groups branch from 9db0eeb to dbe28cb Compare October 3, 2026 23:34
@teamleaderleo
teamleaderleo force-pushed the feat-cmux-next-sidebar-groups branch from dbe28cb to 235686e Compare October 3, 2026 23:46
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Current-base recheck: feat-cmux-next is now b7ef80daa6942aabd445e29c1767b5ef58e02a35. Its cmux-next run still reports the same inherited reds: SettingsSchema at 1049 lines against the 1000-line limit and 408 localization errors across 84 tables and 21 languages. Its Swift test job also retains the unrelated baseline failures in SettingsSchemaExportTests, ManagedPreferencesManifestTests, SettingsGroupIdentityTests, SidebarRailViewTests, VariantRegistryTests, and BackdropArtTests.

The rebased branch remains limited to group lines, tab rows, and the sidebar split. It adds no lint allowances, VmPrivateNetworkUnavailableError import, or other base-fix changes.

@teamleaderleo
teamleaderleo merged commit 36a16ec into feat-cmux-next Oct 3, 2026
59 of 61 checks passed
@teamleaderleo
teamleaderleo deleted the feat-cmux-next-sidebar-groups branch October 3, 2026 23:57
lawrencecchen added a commit that referenced this pull request Oct 4, 2026
…bers

JSONSerialization prints doubles as 0.1 on Xcode 26 and 0.10000000000000001
on Xcode 27, so schemas/settings/settings-schema.json and
docs/mdm/com.manaflow.cmux.json were stale on one toolchain or the other.
DeterministicJSON formats every number with Swift's shortest round-trip
description and keeps the JSONSerialization layout and key order, so the
files change only where a number was long.

Regenerated both files plus docs/mdm plist and md, which were also stale on
the base (sidebar.showWorkspaceTabs from #17186 was never exported).
lawrencecchen added a commit that referenced this pull request Oct 4, 2026
… row title (was a fixed inset #17186 moved)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Oct 4, 2026
…17186 moved them 2 pt right)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Oct 4, 2026
… row title (was a fixed inset #17186 moved)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Oct 4, 2026
…17186 moved them 2 pt right)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 6, 2026
sidebar.showWorkspaceTabs (#17186) already lists tabs inline, so the
disclosure collapses them per workspace instead of a second
sidebar.nestedTabs key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 6, 2026
#17186 already ships sidebar.showWorkspaceTabs, so drop the second
sidebar.nestedTabs key. With tabs listed, each workspace row's chevron
hides or lists its own tabs; sidebar.showCounts stays.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 6, 2026
sidebar.showWorkspaceTabs (#17186) already lists tabs inline, so the
disclosure collapses them per workspace instead of a second
sidebar.nestedTabs key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 6, 2026
sidebar.showWorkspaceTabs (#17186) already lists tabs inline, so the
disclosure collapses them per workspace instead of a second
sidebar.nestedTabs key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 6, 2026
sidebar.showWorkspaceTabs (#17186) already lists tabs inline, so the
disclosure collapses them per workspace instead of a second
sidebar.nestedTabs key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 6, 2026
…#17520)

* test(cmux-next): put the workspace tab disclosure on showWorkspaceTabs

sidebar.showWorkspaceTabs (#17186) already lists tabs inline, so the
disclosure collapses them per workspace instead of a second
sidebar.nestedTabs key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(cmux-next sidebar): opt-in tab counts and a per-workspace tabs chevron

With sidebar.showWorkspaceTabs on, each workspace row gets a chevron that
collapses or expands its tabs. sidebar.showCounts (default off) shows a
workspace's tab count in a fixed trailing slot. Settings artifacts are
carried over from the previous base and regenerated next.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore(cmux-next): regenerate settings artifacts for sidebar.showCounts

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore(cmux-next sidebar): keep SidebarListView under the god-type limit

The list's model-derived layout options come from SidebarModel.listOptions().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore(cmux-next): regenerate settings schema, MDM docs and Settings bundle on the new base

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* next-batch: regenerate webviews formatting

* cmux-next sidebar: regenerate settings artifacts on the new base

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* cmux-next sidebar: rebuild settings page on the new base

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: cmux-next batch queue <41898282+github-actions[bot]@users.noreply.github.com>
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