feat(model): retry what fails fast, and only that #662
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!662
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/retry-what-fails-fast-claude"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
closes #650
Four attempts, 250ms doubling — under two seconds of waiting against a 180 second turn.
The bound is arithmetic, not taste
defaultRequestTimeoutcaps the turn at 180s and Echo's p99 turn already sits at 180.32s (#577). A ladder built for slow failures does not fit: five attempts at thirty seconds each outlives the turn, so the retry would convert a failure the member could be told about into a timeout they wait out.A connection refused or a 503 returns in milliseconds. Four of those cost less than the notice they replace.
Availability only
Retried: transport errors (no server reached, no status to read), and 429, 502, 503, 504.
Not retried: everything else in 4xx. A 400 is the request being wrong, and that case is live — the upstream prompt-trimming defect returns 400, so a naive retry would make it four times slower to report the same failure. Also not retried: a cancelled or expired turn, because that budget is already gone.
The status is now a typed
modelHTTPErrorrather than a formatted string, so classification reads a number instead of parsing a sentence.What I did not do
The harness notice. The mechanism logs
model.retrywith attempt, total and backoff, so the telemetry half exists. The member-facing wording is Content Creator's and I am not writing it.Worth knowing before this merges
Agent Proxy already retries, twice, at 600 seconds each (#578). That is why a turn Echo abandoned at 180s leaves a request running for twenty minutes. This ladder does not change that and rides on top of it — the two multiply. Recorded in the doc rather than left for someone to rediscover.
A test asserts the whole ladder stays under a tenth of the turn ceiling, so this cannot quietly grow into the thing it was designed not to be.
ward exec gategreen.