Skip to content

fix(codex): drop inherited fork replay#34

Draft
drewstone wants to merge 1 commit into
mainfrom
fix/codex-fork-replay
Draft

fix(codex): drop inherited fork replay#34
drewstone wants to merge 1 commit into
mainfrom
fix/codex-fork-replay

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

What changed

  • Detect the current Codex task by matching task_started.started_at to the new session timestamp.
  • Exclude only the inherited replay prefix before that task.
  • Resolve the model and all downstream spans from the current task.
  • Add a realistic forked JSONL regression covering inherited tokens, tools, subagents, and internal goal messages while preserving current events.

Root cause

Forked Codex rollouts prepend inherited history with timestamps rewritten to the new session time.
The adapter treated every replayed row as fresh work, inflating token trajectories, tool counts, subagent adoption, and reaction analysis.
The original task_started.started_at value survives replay and uniquely identifies the current task boundary.

Measured impact

On completed session 019f59ed-ddf1-7e80-a93e-b5f81822cb7f:

  • spans: 1,131 → 123
  • tool calls: 63 → 55
  • subagent starts: 8 → 0
  • current tool calls preserved: 55/55

The existing internal-context classification from #33 remains active; the new adapter regression verifies a post-fork <codex_internal_context source="goal"> message is retained but labeled injected, while a real follow-up remains human.

Checks

  • pnpm test — 114/114 passed
  • pnpm typecheck
  • pnpm build
  • pnpm check:package
  • Real-session replay with traces analyze

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant