You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The PR observation subsystem is fully implemented and unit tested, but it is not wired into the running daemon:
daemon constructs the Lifecycle Manager with lifecycle.New(store, nil) and a noopMessenger, so PR nudges (and human /send) are silently dropped in production.
Nothing produces PR observations: service/pr.Manager and scm/github.Provider.Observe exist but no poller calls them. The polling loop was parked as a follow-up (referenced as Tracker observer loop: poll + ApplyTrackerFacts into LCM #35 in the provider docstring).
Net effect: a session can open a PR, CI can fail, and the agent is never nudged because the whole observation path is dark.
Goal
Make the PR engine live end to end in the daemon, with graceful degradation when no GitHub token is configured.
Approach (branch self-discovery)
domain.SessionMetadata already stores Branch, so a poller can self-discover each session's PR by its branch via the GitHub API. This avoids needing a hook-based PR-URL capture path.
Real runtime messenger backing both human /send and lifecycle nudges.
FindPRForBranch discovery primitive on the GitHub provider.
A PR poller (the parked loop) that discovers, observes, persists, and reacts.
Daemon wiring: provider + PR service + poller goroutine with lifecycle-managed shutdown.
Acceptance
Daemon wires a real messenger, provider, PR service, and poller goroutine.
No GitHub token: poller is disabled with a warning, daemon still starts.
gofmt, go vet, go build clean; race tests green for all touched packages.
Problem
The PR observation subsystem is fully implemented and unit tested, but it is not wired into the running daemon:
daemonconstructs the Lifecycle Manager withlifecycle.New(store, nil)and anoopMessenger, so PR nudges (and human/send) are silently dropped in production.service/pr.Managerandscm/github.Provider.Observeexist but no poller calls them. The polling loop was parked as a follow-up (referenced as Tracker observer loop: poll + ApplyTrackerFacts into LCM #35 in the provider docstring).Net effect: a session can open a PR, CI can fail, and the agent is never nudged because the whole observation path is dark.
Goal
Make the PR engine live end to end in the daemon, with graceful degradation when no GitHub token is configured.
Approach (branch self-discovery)
domain.SessionMetadataalready storesBranch, so a poller can self-discover each session's PR by its branch via the GitHub API. This avoids needing a hook-based PR-URL capture path./sendand lifecycle nudges.FindPRForBranchdiscovery primitive on the GitHub provider.Acceptance