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.
Properties
Section titled “Properties”body:
string
Defined in: src/issue-log.ts:28
key:
string
Defined in: src/issue-log.ts:27