Spawn extra task agents through the backend-neutral pane seam - #1239
Merged
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.
The "+ Agent" action was the third launch path still splitting
dev3-<taskId>unconditionally:spawnAgentInTaskcalledtmux.splitWindowdirectly, so on a native-backed task there was no such session and the launch failed the same way Find bugs (#1228) and AI Review (#1229) did.It now goes through
splitTaskPane— the bare primitive, not an auxiliary purpose, because "+ Agent" deliberately allows several coexisting agent panes while a purpose owns at most one.sessionState.panesentry, which is the tmux pane registryhandlePaneExitedreconciles against live tmux panes — a native pane id there would be a permanent phantom. TheagentId/configIdwrite is unchanged on both backends.split-window -hwith the same-c/-t/-eand the same pane-registry append; the only delta is the seam'sDEV3_TASK_SEQenv var, which every other extra pane already carries.Verified live on a native task (extra pane opens beside the agent, both halves equal, second Claude process running, zero tmux sessions for the task, no phantom pane record) plus new regression cases through the real RPC entry point.