You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Native Codex agents appear in the Agents panel, but T3 drops some of their data. After a child finishes, the panel can show assistant message instead of its answer. Tool counts are absent, and model labels can disappear when T3 reads a child before its session is ready.
I propose keeping the existing panel design and supplying these five details:
The task name.
A separate role label, such as Reviewer or Tester.
The current operation, followed by the final answer.
The child's model, effort, and token count.
The number of tool calls.
#11777 covers answer text and tool counts. #10185 covers model and effort labels.
Proposed appearance
These previews use T3's existing row component, fonts, icons, and spacing. The data is synthetic. The proposed code does not yet supply every field shown here.
During work
After the turn
Metadata
Use thread/read with includeTurns:false. A child can register before its session file is ready. Retry temporary failures within a fixed limit. Preserve newer settings and reroute events. Leave unknown values blank instead of copying the parent's model.
Operations and answers
Use the child's message text and the existing helpers that describe tool operations. An empty message start must not erase the current operation.
Add an optional result field to task updates that leave the child available for more work. Store messages with phase:final_answer in that field. Keep commentary in progress text. Save the result, show it while the child is idle, and clear it when the next turn starts. Finishing one turn must leave the child resumable.
Tool counts
Count each tool call once. Started and completed notifications for the same call must not count twice. Save the total and enough call IDs to recognize replayed notifications after a server restart. A provider's own total could replace this bookkeeping if one becomes available.
A tool update must preserve the known token total. If the count is unknown, leave it blank. Test a child with 10 calls, restart the server, run two more calls, and reload the panel. The panel must show 12 calls without losing tokens. Replaying old notifications must not increase the count.
Task names and roles
Preserve the provider's explicit nickname and role. The native spawn tool I used with CLI 0.154.0 accepts task_name. It has no separate task label or role label argument.
We need either explicit label fields or a versioned naming format that callers choose to use. Existing names must keep their meaning. For example, reviewer__review_routing can already be a valid nickname. Automatically splitting it into a role and task would change that meaning. A naming format also would not prove that Codex supplied a native role.
The Codex runtime and adapter need to supply these values. The shared task event types need the result field. Web and desktop can then use the existing panel fields. The naming format needs maintainer agreement.
Code available now
The source changes cover metadata reads with startup retries, message text, and tool operation descriptions. They do not implement the proposed role format, saved final results, or tool counts across restarts.
The code leaves the model unknown when an older CLI omits it from thread/read. I verified the response format with CLI 0.154.0. I have not established support for every older version.
Commit 8639397d is based on ec5ede5e. The code changes are in bff6b031. The last commit adds a test that an absent model field does not trigger retries.
Tests and review
The 116 selected runtime, adapter, ingestion, and client state tests passed before the last test addition. The integration suite then passed all 13 tests with that addition. The empty message test, lint checks on the changed files, server type check, and whitespace check also passed. I ran these on Node 26.7.0. The repository requires Node ^24.13.1, which I have not tested.
Fable 5.1 with high effort reviewed the code in a separate Claude Code session. It approved publication of the report, this proposal, and the partial implementation. It did not approve a complete implementation of all five details.
The review led me to remove the automatic role parser and the tool counter that lost history after a restart. I also removed unused lifecycle code and duplicate tool classification. The metadata code now accepts a null effort or an absent model field without retrying. A follow-up review approved 8639397d and the publication text.
The reviewer ran the changed runtime and adapter tests and the separate launcher tests. The broader test results above are the author's checks. I have not tested a modified T3 build in the live interface. I left the installed application, settings, and databases unchanged.
GPT 6 Astra with high effort wrote the changes through Codex in T3 Code. Claude Fable 5.1 with high effort reviewed them through Claude Code.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Native Codex agents appear in the Agents panel, but T3 drops some of their data. After a child finishes, the panel can show
assistant messageinstead of its answer. Tool counts are absent, and model labels can disappear when T3 reads a child before its session is ready.I propose keeping the existing panel design and supplying these five details:
#11777 covers answer text and tool counts. #10185 covers model and effort labels.
Proposed appearance
These previews use T3's existing row component, fonts, icons, and spacing. The data is synthetic. The proposed code does not yet supply every field shown here.
During work
After the turn
Metadata
Use
thread/readwithincludeTurns:false. A child can register before its session file is ready. Retry temporary failures within a fixed limit. Preserve newer settings and reroute events. Leave unknown values blank instead of copying the parent's model.Operations and answers
Use the child's message text and the existing helpers that describe tool operations. An empty message start must not erase the current operation.
Add an optional result field to task updates that leave the child available for more work. Store messages with
phase:final_answerin that field. Keep commentary in progress text. Save the result, show it while the child is idle, and clear it when the next turn starts. Finishing one turn must leave the child resumable.Tool counts
Count each tool call once. Started and completed notifications for the same call must not count twice. Save the total and enough call IDs to recognize replayed notifications after a server restart. A provider's own total could replace this bookkeeping if one becomes available.
A tool update must preserve the known token total. If the count is unknown, leave it blank. Test a child with 10 calls, restart the server, run two more calls, and reload the panel. The panel must show 12 calls without losing tokens. Replaying old notifications must not increase the count.
Task names and roles
Preserve the provider's explicit nickname and role. The native spawn tool I used with CLI 0.154.0 accepts
task_name. It has no separate task label or role label argument.We need either explicit label fields or a versioned naming format that callers choose to use. Existing names must keep their meaning. For example,
reviewer__review_routingcan already be a valid nickname. Automatically splitting it into a role and task would change that meaning. A naming format also would not prove that Codex supplied a native role.The Codex runtime and adapter need to supply these values. The shared task event types need the result field. Web and desktop can then use the existing panel fields. The naming format needs maintainer agreement.
Code available now
The source changes cover metadata reads with startup retries, message text, and tool operation descriptions. They do not implement the proposed role format, saved final results, or tool counts across restarts.
The code leaves the model unknown when an older CLI omits it from
thread/read. I verified the response format with CLI 0.154.0. I have not established support for every older version.Commit
8639397dis based onec5ede5e. The code changes are inbff6b031. The last commit adds a test that an absent model field does not trigger retries.Tests and review
The 116 selected runtime, adapter, ingestion, and client state tests passed before the last test addition. The integration suite then passed all 13 tests with that addition. The empty message test, lint checks on the changed files, server type check, and whitespace check also passed. I ran these on Node 26.7.0. The repository requires Node ^24.13.1, which I have not tested.
Fable 5.1 with high effort reviewed the code in a separate Claude Code session. It approved publication of the report, this proposal, and the partial implementation. It did not approve a complete implementation of all five details.
The review led me to remove the automatic role parser and the tool counter that lost history after a restart. I also removed unused lifecycle code and duplicate tool classification. The metadata code now accepts a null effort or an absent model field without retrying. A follow-up review approved
8639397dand the publication text.The reviewer ran the changed runtime and adapter tests and the separate launcher tests. The broader test results above are the author's checks. I have not tested a modified T3 build in the live interface. I left the installed application, settings, and databases unchanged.
GPT 6 Astra with high effort wrote the changes through Codex in T3 Code. Claude Fable 5.1 with high effort reviewed them through Claude Code.
All reactions