Development record
A routed role killed at its bound loses three things the bound alone cannot save: time it spent waiting at the load gate counts against the bound, so a run queued behind other preflights is killed sooner than its work warrants; a killed launch reports no result and so no total_cost_usd, so its spend is missing from every tally; and a role killed after it committed its work counts as a failed start, falls back and parks the lane, stranding committed, tested work behind a missing receipt. iss-2611012202511008 bounded each role by its own timeout and scoped the implementer's definition of done; these are the parts of its remedy left over.
A routed role killed at its bound loses three things the bound alone cannot save: time it spent waiting at the load gate counts against the bound, so a run queued behind other preflights is killed sooner than its work warrants; a killed launch reports no result and so no total_cost_usd, so its spend is missing from every tally; and a role killed after it committed its work counts as a failed start, falls back and parks the lane, stranding committed, tested work behind a missing receipt. iss-2611012202511008 bounded each role by its own timeout and scoped the implementer's definition of done; these are the parts of its remedy left over.
Grounds
- pursued: a role queued at the load gate outlives its bound by its wait, a killed launch's fallback receipt carries spent, and a killed implementer with committed work and a report leaves its lane unpaused with no fallback; a kill at the bound while a waiter sits queued under the harness, a fallback receipt with no spent after a kill, or a paused lane after such a kill would show it wrong
Frontmatter
| id | iss-2611021751406429 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2611021751406429-a-routed-role-killed-at-its-bound-loses.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2611012202511008The claude runner kills a routed role at its default one-hour bound (internal/core/runner/runner.go, DefaultTimeout), and an implementer's work in this repository can outlast it: on 2026-11-01 the routed implementer of run-2611012100266247 committed its fix, wrote its report and, running its definition of done over the whole internal tree after the loop package alone took 1,459 seconds, was killed at 1h0m0s before writing its receipt. The kill counted as a failed start, the role fell back to the host and the lane parked, with finished, tested work stranded behind a missing receipt. The same night two more routed implementers, on itd-39 and itd-2610142145236613, were killed at the hour (22:52 and 22:53 UTC) partway through make preflight, which their briefs named as the definition of done, each with its work committed and its report written, and each fell back to the host. A killed launch reports no result and so no total_cost_usd, so all three launches' spend is missing from every tally. A receipt the host writes after such a kill also loses whatever the implementer meant to resolve beyond the issue it was handed: one killed implementer's report asked its landing to resolve a second issue, the host's receipt left it out, and an accepted receipt cannot gain a resolve, so that issue waits for a separate records change.