Repository navigation
acpmux group ls|move|tidy: sort sessions into sidebar groups without duplicates - #32107
Conversation
…ithout making duplicates Leo, 2026-11-02: "you didnt do these groups well don't we hav ebetter acpmux commands for you guys yet". `ls` lists groups with members and marks same-named ones in a space; `move` puts a session's workspace in a group, made only when its space has none; `tidy` moves each duplicate's members into the first group of that name (a pinned one first) and deletes the emptied duplicate, a dry run unless --apply. A group with a name of its own is never touched. Every step is the cmux CLI's, so the app's group rules apply. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-f5d88e75bcfb55e3ae79
|
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)
web and size checks: green Shipped in:
|
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 claude-opus-5-5 medium): SHIP at 4100f70 |
…chine's row of the key The panic ratchet counts indexing and unchecked arithmetic in library code: the tidy plan reads its groups with get/first and counts with saturating math. move finds the first row of the launch key that has this Mac's workspace id (review follow-up). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-f5d88e75bcfb55e3ae79
…chet) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-f5d88e75bcfb55e3ae79
|
Found 6 test failures on Blacksmith runners: Failures
|
|
Review (subagent claude-opus-5-5 medium): SHIP at ae52b83 |
|
Review (codex gpt-6-astra high, sweep, via the review router; full diff from merge base 19a2a23 to this head): BLOCK at ae52b83 [P2] [blocking] files/cmux-tui/crates/acpmux/src/cli/group.rs:70-81 - |
|
Review (next-review patch-id; carried): SHIP at 3922d25 The independent SHIP at 98a815b carries to this head: the PR's own change ( |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo: "there are still hundreds of random sessions that i have 0 clue what are for plus you didnt do these groups well don't we have better acpmux commands for you guys yet"
Agents sorted his sessions into sidebar groups with raw
workspace_group_create+workspace_placecalls and made one "Leads" group per lane, plus empty "UI think tank" duplicates. This adds commands for that job:acpmux group ls [--json]: every sidebar group, with its space, members and pin. Groups that share a name with another group in the same space are marked DUP.acpmux group move SESSION GROUP: the workspaceacpmux new --groupopened for SESSION (found by its stable workspace key) joins GROUP. GROUP is created only when the space has no group of that name:workspace group create --reusefrom cmux-tui: workspace_group.create {reuse: true} finds the group by name instead of making one per member #32097, or on an older daemon, a lookup by name first.acpmux group tidy [--apply]: for each space and name (outer spaces trimmed, case counted), keeps the pinned group if there is one, otherwise the first in group order. It moves each duplicate's members into the kept group in their order withworkspace group <kept> add, then deletes the emptied duplicate. A group with no same-named twin is never touched, even if it is empty. A duplicate that still holds another machine's row (which this Mac can't move) stays. Without--applyit only prints the plan.Every step runs the
cmuxCLI, which is the app's bundled one when the app started the daemon, so the app's group rules and undo apply. It needs no new daemon API, so it works on today's builds.Tests
cli/group.rsunit tests: the tidy plan (merges Leads and UI think tank duplicates, keeps member order, leaves another space's Leads, a lowercase "leads" and a lone group alone; prefers a pinned group; leaves another machine's row and its group),lsduplicate marks, andmove's workspace lookup by the launch key.help_examplesgets entries for the new commands.Observed / Not run
The unit tests and help tests run on the PR (
cmux-ci test). Running against a live app is not done yet; it waits for a DEV build capture.Agent session: agent session
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Adds
acpmux group ls|move|tidyso agents can sort sessions into sidebar groups without creating duplicates. Previously agents made groups with raw API calls, leaving many unnamed sessions and duplicate groups like multiple "Leads" and empty "UI think tank" copies per space.New Features
acpmux group ls [--json]lists every sidebar group with its space, members, and DUP marks for same-named groups in a space.acpmux group move SESSION GROUPputs the session's workspace into GROUP, creating it only when its space has none; it skips another machine's row of the launch key.acpmux group tidy [--apply]merges duplicate groups by moving members into the kept one, a pinned group first, then deletes the emptied duplicates; prints the plan unless--apply.tidynever touches a group whose name no other group in its space has, even if empty, and leaves a duplicate that still holds another machine's rows.cmuxCLI, so the app's group rules and undo apply; no new daemon API is needed.Written for commit 3922d25. Summary will update on new commits.