cmux/tests
Lawrence Chen 9642bb59fc
Move port scanning from shell to app-side with batching (#100)
* Move port scanning from shell to app-side with batching

Replace per-shell `ps -axo + lsof` scanning with a centralized
PortScanner singleton in the app. Each shell now sends lightweight
`report_tty` (once per session) and `ports_kick` (on preexec/precmd)
socket messages. The app coalesces kicks across all panels and runs a
single `ps -t <ttys> + lsof -p <pids>` covering every active panel.

Also fixes a macOS 26 Tahoe regression where `getsockopt(LOCAL_PEERPID)`
returns ENOTCONN on accepted sockets when the peer disconnects before
the handler thread starts. This was silently breaking ALL socket
commands sent via ncat --send-only. The fix captures the peer PID in
the accept loop immediately after accept(), and falls back to
LOCAL_PEERCRED (uid check) when the PID lookup fails.

* Fix PR review feedback: burst timing and auth comment clarity

- P2: burstDelays were accumulating (0.5+1.5+3+... = ~22.5s) instead of
  firing at absolute offsets from burst start. Now uses burstStart anchor
  so scans fire at 0.5s, 1.5s, 3s, 5s, 7.5s, 10s as intended.

- P1: Clarify LOCAL_PEERCRED fallback rationale — same security boundary
  as socket file permissions (0600), does not widen attack surface.
  Long-lived connections still get full descendant check via LOCAL_PEERPID.
2026-02-19 01:04:47 -08:00
..
cmux.py Move port scanning from shell to app-side with batching (#100) 2026-02-19 01:04: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_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_panel_stability.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_claude_hook_session_mapping.py add Claude hook session mapping test 2026-02-15 21:50:06 -08: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_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_enter_keybind.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 Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -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_lint_swiftui_patterns.py Fix high CPU usage from notifications and add regression tests 2026-01-29 17:02:16 -08: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_notifications.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -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_shell_histfile_ghostty_zdotdir_regression.py Release v1.23.0 (#31) 2026-02-09 15:30:43 -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_sidebar_cwd_git.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_sidebar_ports.py Release v1.23.0 (#31) 2026-02-09 15:30:43 -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 Socket access control: process ancestry check (#58) 2026-02-18 01:09:24 -08:00
test_split_flash_and_layout.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -08:00
test_tab_dragging.py Fix frozen terminals after split churn (#12) 2026-02-13 16:45:31 -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_update_timing.py Improve update UI error details 2026-01-28 01:49:02 -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