Files
zeekayandHanzo Dev ae87864592 the scheduler's backoff is arithmetic, and the terminal failure is now pinned
scheduleRetry said "exponential backoff" and computes RetryDelay × attempts
already spent — 5s, 10s, 15s against the default base. Arithmetic. With
RetryCount defaulting to 3 the two schedules barely diverge, which is how the
wrong word survived; RetryDelay being documented as a "base delay" is equally
true of either, so nothing in the tree said which this was. The comment now says
what the code does and names the test that holds it there.

markFailed was at 0%: the state a function ends in when its retries run out was
reached by no test. That is the state that matters most — a job left pending is
one the poller keeps picking up forever, and a job marked failed without its
reason is one nobody can diagnose. Now asserted end to end, including that it is
stamped, so a failed function is distinguishable from one still running.

Also the case with no executor at all, which must fail immediately rather than
burn RetryCount attempts against a scheduler that cannot run it.

All three were verified by breaking the code: constant backoff fails the
schedule test at retry 2 ("9.999838s out, want ~20s"), and a no-op markFailed
fails both terminal tests with status "running". Restored, green.

plugins/scheduler 36.9% -> 40.1%.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-24 10:34:54 -07:00
..