One context, two tasks A tree. The root is context 49c5a238. Its first child is the review task e5c95b09, completed, whose history holds four messages from two SendMessage calls: the planner request with the diff and the agent question, then the planner answer main carrying taskId and contextId and the agent reply, followed by the artifact review.json. Its second child, drawn dashed because the captures stop before it, is a follow-up task in the same context whose first message carries contextId 49c5a238 and referenceTaskIds naming e5c95b09 and no taskId. context 49c5a238 created by code-reviewer, opaque to you task e5c95b09 · review TASK_STATE_COMPLETED, status: 2 findings Violet: sent by the planner. Blue: sent by code-reviewer. Ids shortened to 8 characters. CALL 1 · REVIEW A DIFF ROLE_USER · 14a03569 text and raw refunds.diff, no ids sent ROLE_AGENT · 46494a30 asks which base branch to use CALL 2 · ANSWER THE QUESTION ROLE_USER · 096d3737 · main taskId e5c95b09, contextId 49c5a238 ROLE_AGENT · 8f9ee658 Comparing the diff against main RESULT artifact review.json a text part and a data part a follow-up task id created by the server ITS FIRST MESSAGE ROLE_USER · a new messageId contextId 49c5a238 referenceTaskIds [e5c95b09] no taskId A message with taskId e5c95b09 now fails: the task is terminal.