Skip to content

fix(acpmux): open remote launches in local sidebar groups - #25251

Merged
teamleaderleo merged 7 commits into
feat-cmux-nextfrom
lane/ergo-remote-sidebar-group
Oct 26, 2026
Merged

teamleaderleo merged 7 commits into
feat-cmux-nextfrom
lane/ergo-remote-sidebar-group

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

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 --reuse retains 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 --host support already landed in cmux NEXT: agent.openSessionTab --host <peer> opens that machine's chat (as this Mac's acpmux mirrors it) #25027. Added a regression for both CLI spellings; no duplicate Swift fix.
  • Read fix(acpmux): guard sidebar group labels and empty groups #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 --group in 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_cli failed because its fake harness had no reviewed asking mode. Head 8692e30d2d1336845dc8dbaf82fef3ff0e100f17 configures webAskingModes for fake as normal and strict, matching remote_new_hints. Fleet rerun is pending with the area owner. Static prepush gate and git diff --check pass.
  • 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 --check and python3 scripts/cmux-next/prepush-gate.py passed. ./scripts/localize-changes --base origin/feat-cmux-next found zero changed translation keys; its global validator failed on existing catalog debt (43,243 parity errors).
  • rustfmt on changed Rust files; git diff --check: pass.
  • python3 scripts/cmux-next/prepush-gate.py on committed head: pass, no new violations.
  • Prior-session validation before the replacement changes: python3 scripts/verify-local.py passed 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_cli was 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. reach has no registry origin for this lane. cmux-ci capture needs the unavailable HQ checkout. No screenshots claimed.
  • glaeda-gh service is absent and its supported restart failed. pr-overlap was attempted but could not read through the tokenless broker; bounded broker searches found fix(acpmux): guard sidebar group labels and empty groups #24581 and the already-merged cmux NEXT: agent.openSessionTab --host <peer> opens that machine's chat (as this Mac's acpmux mirrors it) #25027.
  • Independent Codex gpt-6.1-sol xhigh review of fixture repair head 8692e30d2d1336845dc8dbaf82fef3ff0e100f17: SHIP, no correctness findings (review session 01a17641-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 8692e30

Changelog

  • Fixed: remote acpmux launches can open a workspace in a local sidebar group.

Agent session: gcp-codex-lane-10

Use the mirrored session ID in the existing local agent-open path. Accept unnamed group launches and retain the stable workspace key on named reuse. Add remote CLI and host argument regressions. Fleet tests blocked before dispatch: cmux-ci test requires an unavailable HQ checkout.

Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175f4-bc59-7291-9892-c2cc8b5a3103&host=gcp-codex-lane-10
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-1ywbt created for this PR by the cmux coordinator.

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 26, 2026
@blacksmith-sh

blacksmith-sh Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Found 11 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp7d9extt4/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpkckt7pt3/summary-missing.json (live):/summary-missing.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
bench OTHER_SWIFT_FLAGS is 'OTHER_SWIFT_FLAGS=$(inherited) -DCMUX_BENCH_HOOKS -DCMUX_BL
OCKING_CHECKS'/
bench OTHER_SWIFT_FLAGS is 'OTHER_SWIFT_FLAGS=$(inherited) -DCMUX_BENCH_HOOKS -DCMUX_BL
OCKING_CHECKS'
View Logs
bench OTHER_SWIFT_FLAGS is 'OTHER_SWIFT_FLAGS=$(inherited) -DCMUX_BENCH_HOOKS -DCMUX_BL
OCKING_CHECKS'/
bench OTHER_SWIFT_FLAGS is 'OTHER_SWIFT_FLAGS=$(inherited) -DCMUX_BENCH_HOOKS -DCMUX_BL
OCKING_CHECKS'
View Logs
nightly cmux-tui resolve/nightly cmux-tui resolve View Logs
test_the_nightly_is_covered (main.NightlyStepCoverageTests.test_the_nightly_is_cove
red)/
test_the_nightly_is_covered (main.NightlyStepCoverageTests.test_the_nightly_is_cove
red)
View Logs

...and 1 more test failures. View all on Blacksmith

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review b449447: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr25251 -f ref=lane/ergo-remote-sidebar-group -f platform=macos -f backend_mode=local

web and size checks: green

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

cmux-next / cmux-next checks (god files, concurrency, crash safety, l10n) › Script tests (pin-cmux-tui, embed-cef, ensure-cef store) is red on 6 of 10 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

Use a distinct capture file for every remote-group launch so a failed cmux invocation cannot reuse stale arguments.

Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175f4-bc59-7291-9892-c2cc8b5a3103&host=gcp-codex-lane-10
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

high-signal review link / link is red on 18 of 22 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

cmux-next fast gates / post cmux-next/fast-gates is red on 19 of 20 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

Regression for review of PR #25251: unnamed peer sessions with the same generated name must not opt into title-based workspace reuse. Test execution is blocked before cmux-ci dispatch because the guarded HQ installer cannot authenticate its private remote.

Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a17629-be6f-7510-a1bb-ee99d21a1764&host=gcp-codex-lane-11
Omit the optional workspace title for unnamed launches, bypassing title-based predecessor reuse when independent peers generate the same session name. Explicit names keep their existing reuse behavior. Added a regression with matching names on two peer hubs; cmux-ci execution is blocked before dispatch by private HQ authentication.

Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a17629-be6f-7510-a1bb-ee99d21a1764&host=gcp-codex-lane-11
@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 26, 2026 03:24 — with GitHub Actions Inactive
@teamleaderleo
teamleaderleo marked this pull request as ready for review October 26, 2026 03:25
Match remote_new_hints: the fake harness exposes normal and strict asking modes, which the remote-create guard must know before starting it. Fleet Linux reproduced the prior head failing with remote.mode_not_asking; the area owner will rerun the focused fleet test on this commit. No local tests run.

Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a17629-be6f-7510-a1bb-ee99d21a1764&host=gcp-codex-lane-11
@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 26, 2026 03:29 — with GitHub Actions Inactive
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

cmux-next guards / nightly-guards / workflow-guard-tests / release-notary is red on 12 of 14 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

@teamleaderleo
teamleaderleo merged commit 98a01cb into feat-cmux-next Oct 26, 2026
148 of 158 checks passed
@teamleaderleo
teamleaderleo deleted the lane/ergo-remote-sidebar-group branch October 26, 2026 03:54
@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

This branch had an error being deployed

1 failed and 3 inactive (1 outdated) deployments
artifacts — 8692e30d Deployed Oct 26, 2026 by teamleaderleo via publish to R2 #54347
sentry-dsyms — 8692e30d Deployed Oct 26, 2026 by teamleaderleo via upload cmux-tui dSYMs to Sentry #54347
cmux-tui-merge-tree — 8692e30d Deployed Oct 26, 2026 by teamleaderleo via publish the merge tree #6042
ci-routing-agent — 0e1566c6 Deployed Oct 26, 2026 by github-actions[bot] via cmux-next macOS placement #35480
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant