Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Observer ¶
type Observer struct {
// contains filtered or unexported fields
}
Observer is the single persistent, deterministic process per ticket. It claims signals before dispatching a one-shot agent invocation for them, preventing two goroutines from ever answering the same signal twice (spec: Concurrency Model — signal claiming, commit coalescing).
`claimed` is in-memory only and does not survive an observer restart. Resume-safety instead comes from DispatchForCommit checking the log itself before claiming — a FINDING/BLOCKER already logged for a role+commitSHA is proof the work happened in a prior run. The in-memory map is only a fast-path guard against two goroutines racing within the same process.
func (*Observer) DispatchForCommit ¶
DispatchForCommit claims the (role, commitSHA) pair and, if it wasn't already claimed — in memory this run, or in the log from a prior run — runs a one-shot invocation and appends the result to the log. This is what prevents duplicate FINDING/BLOCKER entries for one signal, both across racing goroutines and across an observer restart.
func (*Observer) IsInFlight ¶
IsInFlight reports whether a dispatch for this role+commit is already claimed (running or completed within this Observer's lifetime).