Skip to content

IssueLogEntry

Defined in: src/issue-log.ts:26

Issue-log: the workflow protocol on a session’s backlog issue. For a session spawned from an issue, post one comment when its PR enters the waiting-on-handoff state (open + green CI + a foreign reviewer/merger from .shepherd/roles.json) and one when the PR merges — so the issue’s timeline records who the work was parked on and when it landed.

A handoff may now also be auto-inferred from the PR’s requested reviewers when a repo has no .shepherd/roles.json (GitState.handoffInferred = true). The outward issue comment is intentionally gated to explicitly-configured (non-inferred) handoffs — auto-inference drives the in-app herd grouping, but does not write to the public issue timeline unless the operator opted in via roles config.

Deliberately STATELESS over the current GitState (no prev-state comparison): dedup lives in the persisted issue_log stamps, so each transition comments exactly once per PR across restarts, CI flaps, and the one-time backfill burst when roles are first configured (the operator chose to backfill already-waiting PRs). A reviewer→merger handoff flip after approval does NOT re-comment — one “waiting” note per PR, keyed waiting:<pr> / merged:<pr>; a NEW PR (new number) logs again. Best-effort like closeIssue: a failed comment is not stamped, so the next session:git event retries it.

body: string

Defined in: src/issue-log.ts:28


key: string

Defined in: src/issue-log.ts:27