Skip to content

feat: reuse a failed herdr coder dispatch's pane for one retry instead of a fresh one

Choose a tag to compare

@github-actions github-actions released this 07 Sep 03:56
· 23 commits to main since this release

Added

  • A herdr coder dispatch that fails verification now retries in the same pane instead of a
    fresh one, once per issue.
    Every dispatch's tab used to close the moment its result came
    back, win or lose, so a fixable-verdict retry always started a brand-new agent process —
    the previous attempt's context (files already read, decisions already made) was thrown
    away every round. dispatchViaHerdr now leaves a successful call's pane open via
    spec.herdrPersistPane (returned as herdrTabId/herdrPaneId) and, given
    spec.herdrReuse, skips workspace/tab-create/agent-start entirely and reissues agent prompt straight into that pane. handleVerificationFailure queues the pane for exactly
    one reuse via Sprint's new markHerdrReusePending/consumeHerdrReusePending/
    herdrReuseState, and finishPartial keeps that issue's worktree alongside it so the
    retry's dispatch has somewhere to land. If the reused pane is gone by the time the retry
    runs (herdr restarted, a human closed it), dispatchViaHerdr falls back to one fresh
    dispatch rather than failing the round. A queued reuse nobody ever consumed (max-rounds,
    an unhandled error) is swept at the end of the run by main.mjs's new
    sprint.pendingHerdrReuses() loop, closing the pane and removing the worktree.