[Bug]: Review-round rule contradicts `t3_thread_send` on continuing a child#19821

opened9d agobyIishaaq

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/server

Steps to reproduce

  1. In a Codex thread (GPT-6.1-Sol), ask the agent for a three-round review in which each round must remember the last. Ask it to start the reviewer with delegate_task, and to continue the same reviewer with t3_thread_send to its childThreadId.
  2. Do the same in a Claude thread (Opus 5.5) with the same prompt.
  3. Check which tool each parent uses for rounds 2 and 3, and whether the reviewer remembers earlier rounds.

Expected behavior

Both parents send rounds 2 and 3 to the same child thread, and the reviewer keeps its memory. That is what t3_thread_send's description says to do: "For a follow-up that needs the same child's conversation, send to its childThreadId" (tools.ts#L238)

Since #17696, each follow-up gets its own task, status and notification. Since #16002, task_cancel on the first task stops later follow-ups too, which removes the misleading cancellation that #15115 added this rule to avoid.

Actual behavior

  • The Claude parent used t3_thread_send, and the reviewer remembered earlier rounds.
  • The Codex parent started a fresh delegate_task for each round, and the reviewer had no memory. It said T3's instructions override the prompt. Those instructions say to start every review round with a fresh delegate_task and not to use t3_thread_send on childThreadId. The rule appears in orchestrationInstructions.ts#L11 and in delegate_task's description (tools.ts#L68).

That rule came from #15115, before follow-ups had their own tasks, and was never narrowed to independent review rounds. Narrowing it to match t3_thread_send would fix this.

Impact

Minor bug or occasional failure

Version or commit

0.0.46-nightly.20261013.3080

Environment

macOS

Logs or stack traces

shell
1

Screenshots, recordings, or supporting files

No response

Workaround

No response

Source inspection on current main 70e5e384 confirms the conflicting guidance remains: orchestration instructions require a fresh delegate_task for every review round, while t3_thread_send permits follow-ups requiring the same child conversation. This is source confirmation only; the Codex/Claude runtime comparison was not reproduced. Leaving open for maintainer review because resolving this changes agent-facing MCP tool guidance, outside the automated triage fix scope.

Reproduced with Codex and Claude: the unconditional review-round guidance made both start fresh children instead of continuing the reviewer. In the isolated web dev server at e7417481e5, both providers used one child for three rounds and recalled a marker omitted from the follow-up prompt after narrowing that guidance.

Fix: #23253. The regression fails before the change; all 18 focused tests pass after merging current main. Runtime transcripts and test logs.