multi_agent_v1__spawn_agent can deliver work into an existing durable task and change its model
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
A multi_agent_v1__spawn_agent call intended to create a temporary subagent instead delivered the assignment into an existing user-owned durable task.
The durable task's model was changed from gpt-6-astra to gpt-5.6-sol as a result.
Environment
- Codex Desktop on macOS
- Local Codex CLI:
0.154.0 - Affected persisted task metadata was created under CLI
0.153.4 - Parent task:
gpt-5.6-luna, effective Multi-Agent V1 - Existing durable task: initially
gpt-6-astra, effective Multi-Agent V2 - No local
multi_agent_v2configuration change was made
Reproduction
From a user-owned task using Multi-Agent V1, invoke:
{
"model": "gpt-5.6-sol",
"reasoning_effort": "medium",
"fork_context": true,
"message": "Perform a bounded, read-only critique. Do not edit files."
}
Expected behavior:
- A new subordinate agent is created.
- The child has its own agent/task identity.
- Existing user-owned tasks are unaffected.
- The requested model applies only to the new child.
Actual behavior:
- The assignment appeared inside an existing durable user-owned task.
- The UI displayed “Sent by ChatGPT from another task.”
- The existing task's model changed from
gpt-6-astratogpt-5.6-sol. - No explicit
create_threadorsend_message_to_threadcall was made by the parent.
Expected safeguards
spawn_agent should never resolve to, reuse, or mutate an existing user-owned durable task.
The system should:
- Create a new child identity for every spawn.
- Reject any destination that is not a valid child-agent record owned by the current parent.
- Keep model overrides scoped to the newly created child.
- Surface a clear error if child creation cannot be completed.
- Preserve the existing task's model and lifecycle state.
Evidence
- Parent tool call requested
gpt-5.6-sol. - Existing task metadata shows
gpt-6-astrabefore the delegation andgpt-5.6-solafterward. - The target task was an existing durable user-owned task, not a newly created subagent.
- The UI showed the cross-task delegation marker.
- No project files were changed.
Related issues
- #38687 — subagents can access task-management controls and create or message user-owned durable tasks.
- #34821 — V2 subagents can resume with the parent's model.
- #32031 — V2 spawn model overrides and fork behavior are unreliable.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the multi_agent_v1__spawn_agent entry point and how it resolves child identities and destinations. Reproduce the request from the issue, then verify that each spawn creates a child-owned identity, rejects existing user-owned tasks, scopes model overrides to the child, and preserves the existing task.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- authorization, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100