Bug: Review turns lack TurnStarted event, inconsistent with other task types
Resolved 💬 2 comments Opened Apr 20, 2026 by hobostay Closed Apr 20, 2026
Description
In codex-rs/core/src/session/review.rs lines 152-154, there is a known inconsistency:
// TODO(ccunningham): Review turns currently rely on `spawn_task` for TurnComplete but do not
// emit a parent TurnStarted. Consider giving review a full parent turn lifecycle
// (TurnStarted + TurnComplete) for consistency with other standalone tasks.
sess.spawn_task(tc.clone(), input, ReviewTask::new()).await;
Review turns emit TurnComplete but not TurnStarted, making them inconsistent with all other task types. This means:
- Clients/UIs that track turn state via
TurnStarted+TurnCompletepairs will have mismatched state for review turns. - Event consumers expecting a
TurnStartedbeforeTurnCompletewill see an orphanedTurnCompleteevent. - This could cause issues in the TUI or any external client listening to the event stream.
Suggested fix
Emit TurnStarted before spawn_task for review turns, matching the lifecycle of other task types.
Environment
- File:
codex-rs/core/src/session/review.rs, lines 145-164
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗