App-server thread/resume omits tool-call step history present in .codex rollout logs[/-] [+]Store tool-call steps in rollout logs

Resolved 💬 8 comments Opened Jan 15, 2026 by aavetis Closed May 10, 2026
💡 Likely answer: A maintainer (etraut-openai, contributor) responded on this thread — see the highlighted reply below.

What feature would you like to see?

codex app-server exposes thread/resume for history rehydration, but the response omits per-tool step details (tool call inputs/outputs). Those details do exist in the rollout JSONL logs under ~/.codex/sessions/**/rollout-*.jsonl.

This makes it impossible for external apps to faithfully reconstruct historical “Run details”/tool steps using the app-server alone, forcing clients to parse rollout logs and perform heuristic prompt→task mapping.

Repro:
1) Run a Codex task that invokes tools (file edits / shell commands).
2) Inspect the rollout log: tool call input/output entries are present.
3) Call thread/resume for the same thread.
4) Observe that the returned history includes user/assistant/reasoning, but no tool step items.

Expected:

  • thread/resume (or a companion endpoint) should return the full per-turn item stream including tool call steps, or provide a stable API to fetch tool step events for a given thread/turn.

Actual:

  • Tool call steps are not available via app-server history; they only exist in local JSONL logs.

Why this matters:

  • External clients cannot provide consistent historical run details without parsing local files.
  • This creates ambiguity and fragility compared to a first-party API surface.

Additional information

_No response_

View original on GitHub ↗

8 Comments

etraut-openai contributor · 6 months ago

This isn't specific to the app server interface. The Codex harness currently doesn't save tool call outputs to the rollout logs. I'll change the title of the feature request to reflect this.

aavetis · 6 months ago

thanks @etraut-openai - but i thought the fact that it's in the session logs in .codex, means its there? are these different things?

etraut-openai contributor · 6 months ago

My bad, I think I misunderstood your request. I thought you were asking to receive the _outputs_ of past tool calls. I don't think that's stored in the jsonl logs.

We haven't historically needed separate tool call events to be exposed for our first-party clients that use the app services API, but I can see why you might want this information.

aavetis · 6 months ago

that _is_ what i was saying, but i guess i misunderstood what was actually there. basically would be good to have the ability to re-trace what the agent did and show back the tool calls _and_ tool outputs by reading the jsonl

etraut-openai contributor · 6 months ago

If we store all tool output in rollout logs, they will become extremely large, which creates a bunch of other problems. So far, we haven't had a need to store this, so there would need to be a really compelling reason for us to change that.

aavetis · 6 months ago

how about just timestamps? :)
https://github.com/openai/codex/issues/5148

noname-oni · 5 months ago

Is this related to the issue where I can't see the history of tool calls in sessions after restarting the Codex App?

etraut-openai contributor · 2 months ago

This feature request hasn't received enough upvotes, so I'm going to close it.