cmux/tests
Lawrence Chen f507fd8141
Fix claude-teams pane anchoring with main-vertical layout (#2119)
* Fix claude-teams pane anchoring: main-vertical layout + focus

Claude's agent teams sends `split-window -h` for each teammate then
`select-layout main-vertical` to stack them vertically. Three fixes:

1. Implement select-layout main-vertical: track layout state in the
   tmux compat store so subsequent horizontal splits of the leader
   pane get redirected to vertical splits of the right-side column.

2. Pass focus:false to surface.split from the split-window handler
   so internal bonsplit focus stays on the leader pane.

3. Fix tmuxCompatStoreURL to respect $HOME env var (was using
   NSString.expandingTildeInPath which ignores $HOME).

Closes https://github.com/manaflow-ai/cmux/issues/2118

* Fix claude-teams split routing: auto-seed main-vertical on first right split

The split-window routing was broken in two ways:

1. After the first teammate split (right), the main-vertical state wasn't
   being created, so all subsequent splits also went right instead of
   stacking down in the right column.

2. The old code only redirected splits when main-vertical was already active
   AND the target was the leader surface. Claude's teams protocol targets
   arbitrary panes from list-panes, not necessarily the leader.

Now the first teammate split goes right (creating the column), auto-seeds
the main-vertical state, and all subsequent splits stack downward. The
caller's surface (CMUX_SURFACE_ID) is used as the anchor regardless of
which pane Claude targets.

Also adds caller surface preference in pane target resolution so the
caller's exact surface is used when the target pane matches, preventing
stale selected-surface references after tab switches.

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-26 14:36:48 -07:00
..
fixtures/ssh-remote Fix ssh stack review regressions 2026-03-13 04:14:52 -07:00
claude_teams_test_utils.py Add cmux claude-teams launcher (#1179) 2026-03-11 02:42:33 -07:00
cmux.py Fallback stable socket listener to a user-scoped path (#1351) 2026-03-13 17:37:01 -07:00
regression_helpers.py Fix browser Cmd+F overlay clipping in portal mode (#916) 2026-03-05 15:36:47 -08:00
test_app_keystrokes.sh Release v1.23.0 (#31) 2026-02-09 15:30:43 -08:00
test_blank_screen.py Bump version to 1.25.0 (#33) 2026-02-11 16:24:31 -08:00
test_bonsplit_tab_drag_overlay_gate.py Restrict portal pass-through to active drag-motion events 2026-02-20 20:07:54 -08:00
test_browser_back_forward.py Cmd+[/] browser back/forward, cmd+click open in new tab, right-click open in new tab 2026-02-15 18:35:58 -08:00
test_browser_custom_keybinds.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_browser_goto_split.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_browser_new_tab_surface_focus_omnibar.py Cmd+P: show workspaces only (#844) 2026-03-04 00:19:01 -08:00
test_browser_panel_stability.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_bundled_ghostty_theme_picker_helper.sh Add bundled Ghostty helper regression test 2026-03-14 22:30:01 -07:00
test_ci_create_dmg_pinned.sh Pin create-dmg version in signed build workflows (#401) 2026-02-25 19:30:10 -08:00
test_ci_ghosttykit_checksum_present.sh Add CI guard for GhosttyKit checksum pins 2026-03-13 17:28:32 -07:00
test_ci_ghosttykit_checksum_verification.sh Verify GhosttyKit artifact integrity in CI/nightly/release workflows (#1032) 2026-03-07 02:23:23 -08:00
test_ci_scheme_testaction_debug.sh Fix Xcode Cloud UI tests by running TestAction in Debug (#672) 2026-02-28 01:48:49 -08:00
test_ci_self_hosted_guard.sh Remove fork PR guards from CI workflows (#2092) 2026-03-24 21:08:06 -07:00
test_ci_unit_test_spm_retry.sh Fix CI test timeout: stream output, bump to 30m (#1783) 2026-03-18 22:19:37 -07:00
test_ci_universal_release_settings.sh Build universal GhosttyKit for Release 2026-03-08 04:21:23 -07:00
test_claude_hook_missing_socket_error.py Broaden CLI socket telemetry and add restart listener command 2026-02-24 20:38:05 -08:00
test_claude_hook_session_mapping.py add Claude hook session mapping test 2026-02-15 21:50:06 -08:00
test_claude_hook_stop_ignores_teardown_unavailable.py Fix claude-hook stop teardown races (#1954) 2026-03-22 17:34:33 -07:00
test_claude_wrapper_hooks.py Fix stale Claude sidebar status: add missing hooks, OSC suppression, PID sweep (#1306) 2026-03-13 20:47:42 -07:00
test_cli_claude_teams_env.py Add cmux claude-teams launcher (#1179) 2026-03-11 02:42:33 -07:00
test_cli_claude_teams_existing_shim.py Add cmux claude-teams launcher (#1179) 2026-03-11 02:42:33 -07:00
test_cli_claude_teams_help_passthrough.py Add cmux claude-teams launcher (#1179) 2026-03-11 02:42:33 -07:00
test_cli_claude_teams_main_vertical.py Fix claude-teams pane anchoring with main-vertical layout (#2119) 2026-03-26 14:36:48 -07:00
test_cli_claude_teams_skips_wrapper_claude.py Add cmux claude-teams launcher (#1179) 2026-03-11 02:42:33 -07:00
test_cli_claude_teams_tmux_sequence.py Add cmux claude-teams launcher (#1179) 2026-03-11 02:42:33 -07:00
test_cli_sigpipe_ignore.py Fix CLI SIGPIPE exit on broken stdout pipes (#581) 2026-02-26 15:17:50 -08:00
test_cli_socket_autodiscovery.py Fix CLI socket autodiscovery for tagged cmux sockets (#832) 2026-03-04 18:03:25 -08:00
test_cli_version_flag.py Reapply "Merge pull request #239 from manaflow-ai/issue-151-ssh-remote-port-proxying" 2026-03-12 15:54:26 -07:00
test_cli_version_memory_guard.py Stabilize SSH remote flow after merging main 2026-03-16 23:57:48 -07:00
test_close_surface_selection.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_close_workspace_selection.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_cmd_option_t_close_other_tabs_in_pane.py Add Cmd+Option+W to close other pane tabs with confirmation (#475) 2026-02-25 03:54:51 -08:00
test_cpu_notifications.py Release v1.23.0 (#31) 2026-02-09 15:30:43 -08:00
test_cpu_usage.py Release v1.23.0 (#31) 2026-02-09 15:30:43 -08:00
test_ctrl_interactive.py Rename to cmux and add About panel 2026-01-26 03:05:03 -08:00
test_ctrl_signals.sh Rename to cmux and add About panel 2026-01-26 03:05:03 -08:00
test_ctrl_socket.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_file_drop_paths.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_file_drop_split_targeting.py Add file drop support from Finder into terminal splits 2026-02-17 21:55:31 -08:00
test_focus_notification_dismiss.py Revert "Fix notification unread persistence when workspaces regain focus (#971)" (#992) 2026-03-05 21:31:13 -08:00
test_ghostty_zsh_prompt_redraw_uses_prompt_start.py tests: resolve zsh paths in redraw regressions 2026-03-12 03:50:53 -07:00
test_ghostty_zsh_pure_hidden_cr_omits_continuation_marker.py Fix Pure prompt duplication in Ghostty zsh integration (#1316) 2026-03-13 02:39:12 -07:00
test_ghostty_zsh_pure_preprompt_redraw.py tests: resolve zsh paths in redraw regressions 2026-03-12 03:50:53 -07:00
test_homebrew_sha.sh Fix homebrew SHA mismatch race condition (#111) 2026-02-19 17:44:00 -08:00
test_initial_terminal_interactive_and_rendering.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_issue_464_cmdw_close_terminal_browser_split.py Fix Cmd+W terminal close in terminal+browser split 2026-02-24 21:54:25 -08:00
test_issue_734_shell_integration_none_respected.py Respect shell-integration=none in zsh wrapper (#816) 2026-03-03 16:22:38 -08:00
test_issue_1138_sidebar_pr_polling.py Fix sidebar PR badges for restored workspaces (#1570) 2026-03-16 21:09:02 -07:00
test_multi_workspace_focus.py Release v1.36.0 (#47) 2026-02-17 04:04:29 -08:00
test_nested_split_does_not_disappear.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_nested_split_no_arranged_subview_underflow.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_nested_split_no_detach_during_update.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_nested_split_panel_routing.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_nested_split_preserves_existing_split.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_new_tab_interactive_after_splits.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_new_tab_render_after_splits.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_nightly_universal_build.sh Keep Apple Silicon nightly arm64-only 2026-03-08 05:13:38 -07:00
test_notifications.py Revert "Fix notification unread persistence when workspaces regain focus (#971)" (#992) 2026-03-05 21:31:13 -08:00
test_omnibar_focus_cpu.py Fix omnibar Cmd+L infinite focus loop causing 100% CPU (#97) 2026-02-18 23:18:08 -08:00
test_open_wrapper.py Add external URL bypass rules for embedded browser opens (#768) 2026-03-02 17:50:34 -08:00
test_real_click_overlay_forwarding.py Fix issue #185 overlay recursion hardening and scroll regression (#193) 2026-02-20 14:51:44 -08:00
test_real_click_tabtransfer_pasteboard.py Animate terminal drop overlay and add stale tabtransfer click regression 2026-02-19 15:22:30 -08:00
test_remote_daemon_release_assets.sh Reapply "Merge pull request #239 from manaflow-ai/issue-151-ssh-remote-port-proxying" 2026-03-12 15:54:26 -07:00
test_session_restore_unfocused_workspace_multi_window_cycle.py Implement session persistence pass 1 with multi-window restore 2026-02-22 15:39:59 -08:00
test_session_restore_unfocused_workspace_relaunch_cycle.py Implement session persistence pass 1 with multi-window restore 2026-02-22 15:39:59 -08:00
test_shell_histfile_ghostty_zdotdir_regression.py Release v1.23.0 (#31) 2026-02-09 15:30:43 -08:00
test_shell_scrollback_restore_color_replay.py Implement session persistence pass 1 with multi-window restore 2026-02-22 15:39:59 -08:00
test_shell_scrollback_restore_replay_path_regression.py Implement session persistence pass 1 with multi-window restore 2026-02-22 15:39:59 -08:00
test_shell_zdotdir_user_override.py Release v1.23.0 (#31) 2026-02-09 15:30:43 -08:00
test_shell_zdotdir_wrapper.py Release v1.23.0 (#31) 2026-02-09 15:30:43 -08:00
test_shell_zsh_prefers_bundled_ghostty_integration.py Fix Pure prompt duplication in Ghostty zsh integration (#1316) 2026-03-13 02:39:12 -07:00
test_sidebar_copy_ssh_error_context_menu.py Reapply "Merge pull request #239 from manaflow-ai/issue-151-ssh-remote-port-proxying" 2026-03-12 15:54:26 -07:00
test_sidebar_cwd_git.py Fix sidebar branch refresh during agent-driven git checkout (#671) 2026-03-04 19:13:19 -08:00
test_sidebar_meta.py feat(sidebar): add generic metadata rows and commands 2026-02-24 20:19:38 -08:00
test_sidebar_meta_block.py feat(sidebar): add markdown blocks, provider labels, and fine-grained toggles 2026-02-24 20:38:07 -08:00
test_sidebar_ports.py Release v1.23.0 (#31) 2026-02-09 15:30:43 -08:00
test_sidebar_pr.py feat(sidebar): add markdown blocks, provider labels, and fine-grained toggles 2026-02-24 20:38:07 -08:00
test_signals_auto.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_socket_access.py Fix CLI exit code on v1 auth errors 2026-02-22 01:37:42 -08:00
test_split_cwd_inheritance.py fix(cmux): preserve split cwd while shell cwd is stale 2026-03-13 17:02:48 -07:00
test_split_flash_and_layout.py Fix split blackout race and stabilize focus handoff 2026-02-19 17:10:27 -08:00
test_tab_dragging.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_terminal_drop_overlay_animation_probe.py Harden drag overlay routing and add terminal overlay regression probes 2026-02-20 19:58:58 -08:00
test_terminal_focus_routing.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_terminal_input_render_report.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_terminal_portal_hosting.py Improve terminal hosting depth and workspace mount policy 2026-02-18 19:55:41 -08:00
test_terminfo_bright_colors.py Release v1.23.0 (#31) 2026-02-09 15:30:43 -08:00
test_visual_screenshots.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_visual_typing_char_by_char.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_workspace_churn_up_arrow_lag.py Add workspace-churn typing lag regression and fix (#767) 2026-03-02 19:06:50 -08:00