fix(acpmux): open remote launches in local sidebar groups
Remote grouped launches were rejected before session creation. This lets acpmux new --host H --group G use the returned mirrored session ID with the existing local cmux agent open path. It also accepts an unnamed launch, so acpmux new --host H -m codex --group "Remote demo" -d "say hi" works without an extra naming flag.
Leo: "this + more i was talking to workspace-218 i wanted them to help work on ergonomics too" and "these issues and such all need to be addressed".
- The workspace/group is created on the invoking Mac; the agent remains on the peer. No Swift changes are needed: the existing workspace action accepts the mirrored ID without a peer-host lookup.
- Named
--reuseretains the stable workspace key. Unnamed launches deliberately create a new session each time and omit the optional workspace name, so equal generated names on different peers cannot trigger title-based predecessor-row reuse. - Sidebar failures retain the running session and print a shell-quoted retry command, including when cmux cannot be started.
- Both requested docs are updated, together with the launcher surface guide.
- Generic
agent.openSessionTab --hostsupport already landed in #25027. Added a regression for both CLI spellings; no duplicate Swift fix. - Read #24581 first. It adds independent label/empty-group guards in the same launcher and surface-doc files; this PR does not copy or remove those additions and does not touch its branch. Reconcile that overlap before landing.
- For lane-place, the simplest correct integration is to omit
--groupin the remote create and open the returned ID on the controller Mac afterward. That avoids a reverse callback and controller credentials on the execution host. The lane-place owner is fanout-infra; its implementation is not changed by this PR.
Risk: a CLI and app pointed at different local acpmux daemons cannot resolve the same mirrored ID. Documentation names that prerequisite. Opening the workspace may move focus: the area owner's cosmic-gray check returned focused:true; the focuses=false metadata drift is owned by ergo-help.
Live check (area owner, cosmic-gray, current NIGHTLY): cmux agent open <mirrored id of gcp-codex-lane-2/demo-remote-gcp-codex-lane-2> --name … --key … --group 'Remote demo' created the group 'Remote demo' and the workspace joined it; screenshot pending (screen locked).
Validation:
- Area-owner fleet Linux run at
b449447e52f54ff9c6352b752be3496eb6765015: the 168 CLI tests passed;remote_group_clifailed because its fake harness had no reviewed asking mode. Head8692e30d2d1336845dc8dbaf82fef3ff0e100f17configureswebAskingModesforfakeasnormalandstrict, matchingremote_new_hints. Fleet rerun is pending with the area owner. Static prepush gate andgit diff --checkpass. - Independent review found that unnamed sessions with the same generated name on different peers could share a row. Fixed by omitting the optional workspace name for unnamed launches; a regression with two peer hubs covers the collision.
- Replacement head:
git diff --checkandpython3 scripts/cmux-next/prepush-gate.pypassed../scripts/localize-changes --base origin/feat-cmux-nextfound zero changed translation keys; its global validator failed on existing catalog debt (43,243 parity errors). rustfmton changed Rust files;git diff --check: pass.python3 scripts/cmux-next/prepush-gate.pyon committed head: pass, no new violations.- Prior-session validation before the replacement changes:
python3 scripts/verify-local.pypassed all selected checks except existing localization debt; no localization files changed. - Added a CLI regression with a controller and two peers covering unnamed launches with matching generated names, remote ownership, local opening by ID, and stable arguments on named reuse. Added launcher and generic-action argument regressions.
- On replacement head
b449447e52f54ff9c6352b752be3496eb6765015,cmux-ci test -- cargo test --manifest-path cmux-tui/Cargo.toml -p acpmux --test remote_group_cliwas blocked before dispatch: the guarded HQ installer could not authenticate the private HQ remote. No tests ran. - HQ reads are denied by the lane broker; cached HQ lacks docs/remote-acpmux.md.
reachhas no registry origin for this lane.cmux-ci captureneeds the unavailable HQ checkout. No screenshots claimed. glaeda-ghservice is absent and its supported restart failed.pr-overlapwas attempted but could not read through the tokenless broker; bounded broker searches found #24581 and the already-merged #25027.- Independent Codex gpt-6.1-sol xhigh review of fixture repair head
8692e30d2d1336845dc8dbaf82fef3ff0e100f17: SHIP, no correctness findings (review session01a17641-7313-7b22-b3ac-c34906f8e78a). It verified the remote-start gate and fake-agent modes against the peer fixtures; fleet rerun remains pending. The parent had a full correctness review.
Review (gpt-6.1-sol xhigh): SHIP at 8692e30d2d1336845dc8dbaf82fef3ff0e100f17
Changelog
- Fixed: remote acpmux launches can open a workspace in a local sidebar group.
Agent session: gcp-codex-lane-10