fix(acpmux): guard sidebar group labels and empty groups
Problem
acpmux new --group passes a caller string into cmux agent open, which can create persistent sidebar state. Blank/id-shaped labels can produce raw-id groups.
Leo asked us to audit these surfaces because “we ought to audit the skills/tools/commands/prompts/mcps we have all around cmux-next as well as acpmux and make sure stuff is clear and as we expect and we have good recovery and good error messages and that stuff is concise but informative”.
Change
- Reject blank, UUID, and cmux object-id-shaped
--groupvalues beforesession/new, with an exact omit/use-a-label recovery. - Reject the same values at the cmux app action boundary.
- Document that
--groupis opt-in persistent app state, does not move focus, and give exact list/remove/delete recovery commands. - Add focused Rust and Swift regression tests.
Validation
No capture: the app change only refuses id-shaped or blank group labels at the action boundary (an error string to the caller); nothing rendered changes.
git diff --checkcargo fmt --manifest-path cmux-tui/Cargo.toml --all- Rust and Swift tests are routed to the managed fleet per repository policy; no local native build was run.
Changelog
- Fixed: reject object-id and blank sidebar group labels and document how to recover an unwanted group.
State: scoped
Owner: Codex 01a16a55-c3f2-79d1-8872-cb25f230352a
Head: d7ecc35d705 (merged base; dropped the pre-observation workspace guard per the BLOCK at 2e1c589e)
Next: independent review and exact-head fleet checks
Evidence: focused unit tests added; formatting and diff checks passed
Stop: none
Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a16a55-c3f2-79d1-8872-cb25f230352a&host=huge-blue
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Rejects acpmux new --group values that are blank or look like cmux object ids (grp_*, ws_*, UUIDs), so automation retries can't create persistent sidebar groups titled with raw ids.
Also documents that --group is opt-in app state that doesn't move focus, with recovery commands for unwanted placements.