Spec 0239 — Orchestrator: bound `empty_turn_detected` retries — fail-fast on byte-identical retry input; hard-cap at N=2 per (agent, phase, round)
Frontmatter
Field
Value
kind
dev
spec
0239
slug
empty-turn-detected-retry-cap-and-identical-input-fail-fast
title
Orchestrator: bound `empty_turn_detected` retries — fail-fast on byte-identical retry input; hard-cap at N=2 per (agent, phase, round)
type
new-feature
label
new-feature
version_bump
MINOR
target_version
TBD
status
queued
depends_on
[]
complexity
S
created
2026-05-27
queued_at
started_at
merged_at
deployed_at
pr
handover
failure_step
source_session
promoted_from_draft
disposition
ship
disposition_reason
Current orchestrator retries `empty_turn_detected` immediately with no observable cap (verified: empty_turn_events.append at deep_research.py:760 is bookkeeping only; no counter gates further retries). On any future parser-fragility regression the loop burns unbounded budget before a human notices. Identical-input retry can't succeed at fixed temperature, so the fail-fast path is also a correctness win, not just hardening. Live evidence: 20260527-142625 burned ~$0 on the retry only because the user killed the process; the design admits unbounded runaway.
Event timeline
When
Step
Data
2026-05-27T17:10:40Z
queued
{}
Links