Replace the zellij dump-layout approach with direct process inspection for matching Codex sessions to Zellij panes. The old method couldn't extract pane IDs from layout output, leaving them empty. The new approach uses a three-step pipeline: 1. pgrep -x codex to find running Codex PIDs 2. ps eww to extract ZELLIJ_PANE_ID and ZELLIJ_SESSION_NAME from each process's inherited environment variables 3. lsof -a -p <pids> -d cwd to batch-resolve working directories Session-to-pane matching then uses a two-tier strategy: - Primary: lsof -t <session_file> to find which PID has the JSONL open - Fallback: normalized CWD comparison Also adds: - _codex_pane_cache with 5-second TTL to avoid running pgrep/ps/lsof on every dashboard poll cycle - _dismissed_codex_ids set to track Codex sessions the user has dismissed, preventing re-discovery on subsequent polls - Clearer error message when session lacks pane info for input routing
34 KiB
Executable File
34 KiB
Executable File