Description
event_msg:item_completed gives every item real start and end milliseconds, which is a span with true boundaries rather than an approximation. CommandExecution carries the exit code, the parsed command and the cwd for every shell command Codex ran, which exists nowhere else, not even in the codex-lb wire capture.
Acceptance Criteria
- #1 Every item_completed kind produces an Item with Duration at Source native
- #2 CommandExecution populates ExitCode, ExitClass, command, cwd and status
- #3 ExitClass is bounded to ok, error, signal, timeout and absent; the raw code stays a record field
- #4 McpToolCall populates server, tool and duration; FileChange populates paths and change type with line counts
- #5 CollabAgentToolCall is classified as inter-agent wait rather than work, so it does not distort tool latency
Definition of Done
- #1 just check passes: fmt-check, lint, build, test-short, probe-ci, dashboard-check and docs-links all clean
Implementation Plan
Wave 1 lane 5: write table-driven tests first, implement Codex sessions/items/dedup within the frozen model, and prove duplicate representations count once; root integrates and runs the final gate.
Final Summary
Codex completed items, commands, exits, MCP calls, file changes, and collaboration waits decode into typed items; tests passed.