Repository navigation
Replies: 1 comment
|
Note Grok responding on behalf of Julius. This landed in #19102: |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Problem
In Orchestrator V2 (#2829),
delegate_taskchildren always run in the parent thread's checkout.. There is no workspace parameter. Parallel implementation work needs one worktree per child, so an orchestrator creates them withgit worktree addand tells each child to work there. The child's shell commands then run in the right worktree, but the child's thread is still bound to the parent's checkout.We hit this orchestrating tickets with three Codex children (gpt-5.6-luna), each told to work in its own worktree:
cwdandruntime_workspace_rootsset to the parent's worktree, not the ticket worktree.workdirto its shell commands, sogit status, tests and commits ran there.apply_patchcalls used relative paths. Those resolve against the thread binding, so the edits landed in the parent's checkout. The child's own worktree stayed clean, and its later shell commands didn't see the change.From then on, every delegated prompt had to say "use absolute paths for every edit", and the parent checked that its own checkout stayed clean after each child finished. That works until one prompt leaves the rule out.
t3_thread_launchwithworkspaceStrategybinds a thread to its own worktree correctly. But it makes a top-level thread that never wakes the launcher, so the orchestrator losestaskId,task_statusand the completion notification. #15148 asks for that wake ont3_thread_launch. This proposal comes at the same tradeoff from the delegation side.Proposal
An optional
workspacefield ondelegate_taskthat takes the same shapes ast3_thread_launch'sworkspaceStrategy:cwd, and workspace or sandbox roots all point at that worktree. Relative edit paths resolve there.task_status/task_cancelwork through itstaskId.task_statusreturns the worktree path and branch, so the parent can review and merge.inheritkeeps today's behavior.Smallest useful version
existing_worktreeonly. The orchestrator already creates the worktrees itself, so T3 only needs to bind the child to a given path and branch. Creating and cleaning up worktrees can come later.Related
t3_thread_launch, the same tradeoff from the launch side.All reactions