fix(control): restore #13877 group set_color/set_icon changes reverted by #14669
Summary
#14669 (ci: restore the git object seed before checkout in E2E and iOS macOS jobs, 2509187c6d9) was squashed from a stale base. Besides its workflow changes, it put three files back to their pre-#13877 state:
CLI/cmux.swift(drops the--color/--iconaliases)Packages/macOS/CmuxControlSocket/.../ControlCommandCoordinator+WorkspaceGroup.swift(drops thecolor/iconparam aliases and hex validation)Packages/macOS/CmuxControlSocket/Tests/.../ControlCommandCoordinatorWorkspaceGroupColorIconTests.swift(deleted)
git diff 4f0ac55da15^ 2509187c6d9 -- <those paths> is empty, so #14669 was an exact revert of #13877 for these files. No commit since touches them.
This PR restores the three files from 4f0ac55da15 (#13877) with git checkout 4f0ac55da15 -- <paths>. No other changes. #14669's CI changes stay.
Testing
Relies on PR CI (CmuxControlSocket package tests include the restored ControlCommandCoordinatorWorkspaceGroupColorIconTests). Not built locally.
🤖 Generated with Claude Code
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.
Summary by cubic
Restores the workspace group set_color/set_icon changes from #13877 that #14669 accidentally reverted when it was squashed from a stale base. No other changes; #14669's CI workflow changes are kept.
Restored behavior
- Re-adds the
--color/--iconCLI aliases for thehex/symboloptions. - Re-adds
color/iconas RPC parameter aliases, hex color validation, and normalization to the canonical#RRGGBBspelling, withinvalid_paramserrors for malformed values. - Re-adds the regression test suite covering aliases, clearing, and rejection of invalid inputs.
Summary by CodeRabbit
- New Features
- Added
--colorand--iconas aliases for the existing color and icon options in the command-line interface. - Added
colorandiconas aliases for the corresponding workspace-group settings.
- Added
- Bug Fixes
- Color values are validated and normalized to uppercase
#RRGGBB. Invalid values and parameter types now return an error without changing settings. - Empty values or explicit
nullclear color and icon overrides.
- Color values are validated and normalized to uppercase