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
{{ message }}
Repository navigation
TUI subagent history should render nickname/role instead of raw thread ids #24581
Subagent tool-call history can show raw thread IDs instead of the human-readable subagent nickname/role, even though the /agents picker already knows the labels.
Observed behavior
In the transcript history, newly spawned/waited subagents were rendered as UUIDs:
The raw UUIDs make multi-agent transcripts hard to read and audit. The user-visible history should use the same label contract as the agent picker when nickname/role metadata is available.
Root-cause hypothesis
The lower-level collab events already carry metadata such as new_agent_nickname, new_agent_role, receiver_agents, and agent_statuses, but the app-server ThreadItem::CollabAgentToolCall.agents_states shape does not preserve nickname/role metadata. The TUI then caches a receiver thread with empty metadata before rendering the tool-call history, so agent_label(...) falls back to the raw thread id.
Suggested fix outline
Preserve optional agent_nickname / agent_role on CollabAgentState.
Populate it from spawn-end, wait-begin, and wait-end collab events.
Let the TUI cache/upgrade receiver metadata from metadata-bearing collab notifications before rendering live and replayed history.
Keep UUID as fallback only when no metadata exists.
I have a candidate branch/PR ready for discussion with the implementation details and a focused diff.
The TUI then caches/upgrades receiver metadata from CollabAgentToolCall.agents_states before rendering live/replayed history, so Spawned / Waiting for rows can use the same nickname/role labels as /agents and keep UUIDs only as fallback.
Update: after an OMX read-only review, I fixed the one stale test expectation in the fork branch. Current reference commit is d4b5392c6 on strato-space:fix/subagent-event-labels.
Validation available in my environment:
cargo fmt --all
cd .. && git diff --check origin/main...HEAD
Full Rust test execution remains blocked locally by missing OpenSSL development files (openssl.pc / libssl-dev), but the diff has been review-checked for the metadata propagation paths described above.
Activity
iqdoctor commentedon May 26, 2026
I could not open a PR directly against
openai/codexbecause external fork PR creation is not permitted for this account:I prepared a fork PR with the candidate implementation here:
Core code shape:
and for wait events:
The TUI then caches/upgrades receiver metadata from
CollabAgentToolCall.agents_statesbefore rendering live/replayed history, soSpawned/Waiting forrows can use the same nickname/role labels as/agentsand keep UUIDs only as fallback.iqdoctor commentedon May 26, 2026
Update: after an OMX read-only review, I fixed the one stale test expectation in the fork branch. Current reference commit is
d4b5392c6onstrato-space:fix/subagent-event-labels.Validation available in my environment:
Full Rust test execution remains blocked locally by missing OpenSSL development files (
openssl.pc/libssl-dev), but the diff has been review-checked for the metadata propagation paths described above.