What variant of Codex are you using?
CLI
What feature would you like to see?
Ask
Introduce a small, versioned export surface for persisted session actions.
Goal:
- Given a persisted session → return an ordered list of actions
- Make it a documented, stable contract for external tools
- Restrict V1 to data already persisted and reconstructible
Why
Codex already persists and reconstructs session history, but no surface is clearly defined as a stable contract.
This blocks tooling for questions like:
- What commands ran?
- What file changes occurred?
- What tool calls happened, and in what order?
- What can be safely replayed or inspected?
Rationale
A stable, versioned projection over persisted actions provides:
- a minimal reproducibility surface
- a safer alternative to depending on internal rollout formats
- a foundation for future debugging / incident tooling
Routing question
Where should this live?
- app-server (
thread/read extension?)
- rollout layer (as backing projection)
- other surface if preferred
Additional information
Proposal
Expose a stable projection over persisted session history.
Possible entry points:
- CLI: export actions from a session
- API: return versioned action stream
- Extension of
thread/read with a documented projection
Prefer: a projection layer over existing persisted data (not raw rollout JSONL).
Example schema (V1)
session_id
turn_id
timestamp
action_type
tool_name
command
changed_paths
status
Non-goals
- No reasoning or chain-of-thought
- No raw prompts by default
- No dashboards or analytics
- No new logging system if existing persistence suffices
- No full forensic completeness
Suggested V1 scope
Keep deliberately narrow:
- opt-in
- completed actions only
- minimal schema
- explicitly versioned
- derived from persisted session data
Likely includes:
- completed command executions
- completed file changes
- completed tool calls
- durable turn/session markers
Excludes:
- begin/request/delta events
- approval flows
- realtime ephemeral notifications
Grounding in current implementation
This proposal builds on existing behavior:
- Rollouts are persisted and replayable
- Persisted history is loaded into
InitialHistory
thread/read + includeTurns returns stored history
persistExtendedHistory exists (without backfill guarantees)
- Rollout items are already projected into turns
At the same time:
- Persistence is selective (only certain “end” events)
- Many events are intentionally not persisted
- Realtime notifications are explicitly ephemeral
- Stored outputs are already sanitized/truncated
Preference:
- avoid making rollout JSONL the public contract
- avoid relying on OTEL as the primary user-facing interface
- expose a stable projection over persisted session history
What variant of Codex are you using?
CLI
What feature would you like to see?
Ask
Introduce a small, versioned export surface for persisted session actions.
Goal:
Why
Codex already persists and reconstructs session history, but no surface is clearly defined as a stable contract.
This blocks tooling for questions like:
Rationale
A stable, versioned projection over persisted actions provides:
Routing question
Where should this live?
thread/readextension?)Additional information
Proposal
Expose a stable projection over persisted session history.
Possible entry points:
thread/readwith a documented projectionPrefer: a projection layer over existing persisted data (not raw rollout JSONL).
Example schema (V1)
session_idturn_idtimestampaction_typetool_namecommandchanged_pathsstatusNon-goals
Suggested V1 scope
Keep deliberately narrow:
Likely includes:
Excludes:
Grounding in current implementation
This proposal builds on existing behavior:
InitialHistorythread/read+includeTurnsreturns stored historypersistExtendedHistoryexists (without backfill guarantees)At the same time:
Preference: