cmux/Resources/shell-integration
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
..
.zlogin Release v1.23.0 (#31) 2026-02-09 15:30:43 -08:00
.zprofile Release v1.23.0 (#31) 2026-02-09 15:30:43 -08:00
.zshenv Release v1.23.0 (#31) 2026-02-09 15:30:43 -08:00
.zshrc Release v1.23.0 (#31) 2026-02-09 15:30:43 -08:00
cmux-bash-integration.bash Move port scanning from shell to app-side with batching (#100) 2026-02-19 01:04:47 -08:00
cmux-zsh-integration.zsh Move port scanning from shell to app-side with batching (#100) 2026-02-19 01:04:47 -08:00