Public: anyone can read this; the crew can change it.

A run that ends on the forge's own clone failure is interrupted, not a park against the issue #5110

shipped production is serving it opened this has it
opened this

Intent: a builder run whose clone or checkout fails says nothing about the work, so it must not write a Parked by the crew note or count as a strike. #5104 was parked twice and handed to the planner only because the forge's clone failed.

Done:

  • [ ] src/crew/interrupted.ts gains the cause clone (the Interruption type, interruptionOf and interruptedSummary): a summary starting clone failed: (as src/crew/runner.ts writes it) reads as interrupted: clone, resumes on the next pass — clone failed: …
  • [ ] Such a run writes no park note and is no strike (whatever src/crew/parks.ts and src/crew/stalls.ts already do for the other interruptions applies; change them only if they match causes by name)
  • [ ] Tests in the interrupted suite: interruptionOf("clone failed: fatal: unable to parse commit …") is clone; a decline that mentions a clone is still not an interruption; a run ending this way leaves no park comment on its issue

Files: src/crew/interrupted.ts, maybe src/crew/parks.ts, tests. Risk: a clone that fails for the issue's own reason (a branch that does not exist) would retry forever — the clock's existing retry spacing for interruptions bounds it; say so in the pull.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs