Repository navigation
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0cc7076134
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| currentPin, err := runtime.paneProcess(target) | ||
| if err != nil || currentPin != processPin { | ||
| return Session{}, errors.New("stop request no longer matches this pane process") | ||
| } |
There was a problem hiding this comment.
Pin the managed kill to the pane process
For a managed target, the process identity is checked here but is not included in the later atomic tmux condition: stopSession performs pane capture and database work before calling KillPane, which only verifies the session and window. If another actor runs respawn-pane after this check but before that kill, the replacement process is killed even though its PID/start identity differs from processPin. Pass the pinned PID into the managed kill and include #{pane_pid} in the same if-shell condition, as the adopted path already does for its PID.
Useful? React with 👍 / 👎.
Why
Ending a tracked agent through process termination skips Gate Inbox's intentional-stop record and kill observers. Tool shells that lost launch variables need caller verification before they can end a session safely.
Summary
stop --if-managedfor an explicit unmanaged result. Refuse unresolved shared Codex daemon callers, including those with no thread ID, rather than trusting a stored conversation match.Test plan