Feature hasn't been suggested before.
Describe the enhancement you want to request
The Task tool description tells the model "The output includes a task_id you can reuse later", but the actual output never contains anything named task_id — the value is the id attribute of the <task id="ses_..." state="..."> wrapper (see renderOutput in packages/opencode/src/tool/task.ts). The model has to guess that mapping, and a wrong guess means it passes a made-up or wrong id (#37506 shows how badly a wrong id can go).
The description also explains how to resume but not when. Resuming is the cheap path for follow-ups (the agent keeps its context, so the prompt can be short), while review-type agents should start fresh so they aren't anchored by their own earlier conclusions.
Two sentences in task.txt would cover both. I have a small PR ready.
Feature hasn't been suggested before.
Describe the enhancement you want to request
The Task tool description tells the model "The output includes a task_id you can reuse later", but the actual output never contains anything named
task_id— the value is theidattribute of the<task id="ses_..." state="...">wrapper (seerenderOutputinpackages/opencode/src/tool/task.ts). The model has to guess that mapping, and a wrong guess means it passes a made-up or wrong id (#37506 shows how badly a wrong id can go).The description also explains how to resume but not when. Resuming is the cheap path for follow-ups (the agent keeps its context, so the prompt can be short), while review-type agents should start fresh so they aren't anchored by their own earlier conclusions.
Two sentences in task.txt would cover both. I have a small PR ready.