feat(jobs): ten minutes as well as ten messages #743
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!743
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/ten-minutes-or-ten-messages"
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?
The other half of the ceiling Kai decided on issue 236:
Issue 356 landed the message half and the seam under it. This adds the time half, which was not buildable before the counter existed.
What ships
maxJobContentWindow = 10 * time.Minute, andErrJobContentWindowClosedseparate fromErrJobContentExhausted. Two ceilings, two errors, so an executor and an operator can tell a job that said too much from one that took too long. The refusal reason also reaches telemetry asceiling.The decision inside it
The window opens on the first message, not at submission. A job that sat in the queue for an hour still gets its full ten minutes to answer. Queue time is not answer time, and a job punished for waiting would be a bound on the runner's backlog wearing a content ceiling's name.
That is the one judgement here and it is asserted directly by
TestTheWindowOpensOnTheFirstMessage.Verification
ward exec gatePASS on all six steps.Two mutations, both in runs where the package compiles:
TestTheAnswerWindowClosesOnTimeTestTheWindowOpensOnTheFirstMessage,TestTheBoundIsPerJob,TestContentAndProgressDoNotShareABoundMy first attempt at the first mutation was a build failure rather than a test failure - setting the condition to
falseleftopenedunused. That is issue 653's trap, where a non-compiling package reads as "caught". Redone as a comparison that still uses the variable.Not in this change
Threading. Kai said both conditions should trigger it. Neither ceiling threads yet; they refuse. That is the next slice and it needs the thread binding in
jobthread.go, which is its own piece of work.File upload, the third output mode.
closes #742