← back to dashboard

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
deployed
depends_on
[]
complexity
S
created
2026-05-27
queued_at
started_at
2026-05-27T19:32:36Z
merged_at
2026-05-27T19:46:27Z
deployed_at
2026-05-27T19:55:16Z
pr
https://github.com/Lexiz/dual-research/pull/275
handover
handoffs/2026-05-27-spec-0239-empty-turn-detected-retry-cap-and-identical-input-fail-fast.md
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
{}
2026-05-27T19:32:39Z
in_progress
{}
2026-05-27T19:33:57Z
branched
{"branch": "spec/0239-empty-turn-detected-retry-cap-and-identical-input-fail-fast", "from": "main@403bee7"}
2026-05-27T19:33:59Z
implementing_started
{}
2026-05-27T19:45:29Z
implement_complete
{"files_changed": 10, "commits": 1}
2026-05-27T19:45:31Z
tests_started
{}
2026-05-27T19:45:34Z
tests_green
{"passed": 2226}
2026-05-27T19:46:27Z
pr_opened
{"url": "https://github.com/Lexiz/dual-research/pull/275"}
2026-05-27T19:46:31Z
merged
{"pr": "https://github.com/Lexiz/dual-research/pull/275"}
2026-05-27T19:47:11Z
deploy_started
{}
2026-05-27T19:54:16Z
deployed
{"version": "1.54.0"}
2026-05-27T19:54:17Z
deploy_health_check_ok
{}
2026-05-27T19:55:16Z
deployed
{"version": "1.54.0"}
Links