Subagent resume

Open 💬 6 comments Opened Apr 23, 2026 by Yohe-Am
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What variant of Codex are you using?

CLI

What feature would you like to see?

Resuming sessions should retain their subagents with full rollout history.

Additional information

Currently, can't even resume the subagent thread directly. Sometimes, I align/chat directly with the subagent and all of that's lost in case of shutdown.

View original on GitHub ↗

6 Comments

github-actions[bot] contributor · 2 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #19042
  • #17487
  • #18684
  • #19037

Powered by Codex Action

etraut-openai contributor · 2 months ago

Which version of the CLI are you using? I think this is fixed in the latest version. Please confirm.

122qweswd · 2 months ago
Which version of the CLI are you using? I think this is fixed in the latest version. Please confirm.

I'm using the latest version and have met the same problem, it seems subagent list will not load after /resume, and /agent only shows itself.
More strangely, even if the previous codex process is still alive and /agent works, when I want to check the chat in another codex process by resuming the session, it can't read the subagent list by /agent.

(I guess this is a sync problem or something similar? and made an experiment: I gave different prompts to the two codex process in the same session, and asked them and a third codex (by resuming the same session) seperately to repeat the chat, only the third codex told me both branch by sequence, which means the same session have different history. Maybe subagent list is also managed only inside a single codex process?

Yohe-Am · 2 months ago

Can confirm, this is still an issue on 0.128.

rediceli · 1 month ago

+1

Necmttn · 29 days ago

This sounds like the subagent graph needs to be durable state, not process-local state.

The minimum registry I would expect /resume and /agent to rebuild from is:

  • root thread id
  • child thread id
  • spawn edge id
  • agent path/name
  • child status
  • transcript path
  • last durable offset
  • terminal result, if any

If the child transcript exists but the live process is gone, the UI can show unknown_after_resume instead of silently hiding the subagent. That state is much safer for orchestration than making the resumed root look like it never spawned anything.

---

_Generated with ax._