fix(agent-manager): detect agent at tmux pane PID#140
Open
codeaholicguy wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Root cause
TmuxManager.findAgentPid started its BFS at pane_pid but deliberately skipped command matching for that root node. When Claude or Codex replaces the tmux pane shell, the stable live agent is pane_pid and may have no matching descendant, so every managed-start poll returned null until the 15-second timeout killed the session.
Risk
Controlled and narrow: pane_pid is not accepted blindly. It must pass the existing per-agent strict command matcher, and the existing five stable PID polls remain unchanged. Descendant traversal and deepest-match behavior are preserved.
Regression proof
The new focused test expects a matching pane root PID. It failed before the fix with expected 100 / received null, passed with the fix, failed again when the old pane-root exclusion was temporarily restored, and passed again after restoring the fix.
Validation