test(config): hold the timeout parser to refusing rather than defaulting #277
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!277
Loading…
Reference in a new issue
No description provided.
Delete branch "test/duration-config"
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?
Tests only. Third gap from the coverage sweep, after #275 and #276.
Why this one
durationOrDefaultdecides three deadlines from configuration — the request timeout, the queue timeout, and the rate-limit notify window — through one parser, at 33.3% coverage.The request timeout is the 180s that the inverted timeout ladder in #160 is about. It is worth knowing that the parser cannot quietly change it.
The property that matters
A malformed value is an error, not a silent fallback.
A deployment whose file says one thing while the process runs the default is the failure this repository keeps finding in other clothes — the capability doc drifting from the code, the notice naming the wrong cause, the docs claiming a
Retry-Afterthe shed path did not send. Here it would be one branch away, and it is currently on the right side of that branch.What lands
Four groups, separated because they fail differently:
0,0s,-1srefused — a zero deadline is not a long one1msthrough2m30soverride, including padded inputThe malformed group also asserts the message names the expected format, since an operator reading it is the point.
Verified by mutation
Falling back on a parse error:
That first line is the exact hazard, and it is a plausible typo — an operator writing seconds without a unit gets the default and no signal at all.
Relaxing the bound to allow zero:
Coverage
durationOrDefault33.3% → 100%. Package total 76.4% → 76.6%.go vet,gofmt, fullgo test ./...,pre-commit run --filesclean.Quail (QA)