openai / openai/codex

Subagent activity exposes internal /root paths and repeats lifecycle states

Open
#44,827 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug CLI subagent TUI
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Subagent activity exposes internal /root/... paths and repeats lifecycle states

Summary

Codex's multi-agent activity UI shows internal routing paths such as
/root/task1_quality_review instead of human-readable task names. In the same
activity sequence, lifecycle rows can repeat and appear out of order, for
example showing a task as both in progress and completed.

This affects the CLI transcript and other surfaces that consume the same
subagent activity data, rather than one integration or project configuration.

Environment

  • Codex CLI: 0.154.0
  • Platform: Linux
  • Multi-agent workflow: enabled
  • No custom [agents] display-name configuration is present.

Steps to reproduce

  1. Start a Codex session with multi-agent collaboration enabled.
  2. Ask the parent agent to delegate named tasks, for example
    task1_quality_review and task2_implementation.
  3. Let one task complete while the next task starts.
  4. Inspect the parent activity feed or terminal transcript.

Actual behavior

The feed renders canonical internal paths:

Started `/root/task1_quality_review`
Completed `/root/task1_quality_review`
Started `/root/task2_implementation`
Completed `/root/task2_implementation`

The same run can also render duplicate waiting/completed rows or leave an
earlier prose status saying a task is still in progress after its completion
row has appeared.

Expected behavior

Display a human-readable task title, for example:

Started Task 1: Quality review
Completed Task 1: Quality review
Started Task 2: Implementation
Completed Task 2: Implementation

Each task should have one coherent lifecycle. Replayed or duplicated events
should not create duplicate rows, and terminal states must not be followed by
older non-terminal states.

Investigation

The current TUI renderer constructs activity text directly from agent_path:

  • codex-rs/tui/src/multi_agents.rs
    • sub_agent_activity_summary() formats Started \{agent_path}`andCompleted `{agent_path}``.
    • sub_agent_activity_title() does the same for rendered history rows.

The current upstream tests explicitly snapshot /root/reviewer as the
displayed label in codex-rs/tui/src/app/agent_status_feed_tests.rs.
This confirms the result is current product behavior rather than a stale local
installation or an Orca-specific formatting problem.

Suggested direction

Keep agent_path for routing, but carry or derive a separate display title:

  1. Prefer the original task_name supplied to spawn_agent.
  2. If no title is available, humanize the final path segment as a fallback.
  3. Centralize lifecycle reduction per agent path/thread so duplicate events are
    ignored and terminal states cannot regress to waiting or working.
  4. Use that display projection for the CLI, desktop activity feed, and other
    app-server consumers.

Related reports

  • #24225: duplicate finished-subagent notifications
  • #30813: canonical /root/... paths and inconsistent active-agent state
  • #43689: subagent lifecycle/state visibility is inconsistent

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in codex-rs/tui/src/multi_agents.rs, tracing sub_agent_activity_summary() and sub_agent_activity_title(), then inspect codex-rs/tui/src/app/agent_status_feed_tests.rs and its /root/reviewer snapshots. Confirm the activity projection preserves task names or humanized fallback labels, deduplicates lifecycle events, and prevents terminal states from regressing; done when the affected tests cover the expected coherent display.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.