Skip to content

I2403 — Pull requests, checks and deploys reach the stream when GitHub is reachable

Add a GitHub source (pull requests opened, merged and closed, required check verdicts, deploy and release workflow outcomes) through the existing pull-request reader, cached and time-bounded.

DONE wave 1 · p2 · implementation profile · runs alone

Part of everything-is-followed-in-one-stream — Everything that happens in the repository is followed in one stream.

Objective

Add a GitHub source (pull requests opened, merged and closed, required check verdicts, deploy and release workflow outcomes) through the existing pull-request reader, cached and time-bounded.

Why

Merges, red checks and deploys are what a worker waits for most, and today it polls gh itself.

Current state

GitHub is read only by prs.

Desired state

The monitor carries GitHub signals within a budget and reports the source absent with its reason when gh is missing or unreachable.

Scope

  • apps/majordomus-cli/src/monitor
  • test/cases/1052_an_absent_source_is_reported.sh

Dependencies

Acceptance criteria

  • A merged pull request appears once as a signal
  • An absent gh is a source state with a reason, never an empty answer
  • No network in tests: a fixture drives the reader

Validation

  • MJ_TEST_JOBS=4 bash test/run.sh 1052

Evidence required

  • monitor_github_source

Evidence

coverstypecommandresultat commit
monitor_github_sourcecivalidate run 39438896504 at master 9a5a9b77520: suite shards 1-4 (jobs 118683336189 118683338077 118683336157 118683336457) run every case, incl. 1052_an_absent_source_is_reported; and validate run 39438896504 at master 9a5a9b77520: rust (1-3) jobs 118683336143 118683336062 118683336401 run cargo test, incl. monitor::github::tests::a_missing_gh_is_absent_and_a_failing_one_is_an_error (bf08180a4d1)success (the run's only red job is pages, which runs no test)a81b1e3

Timeline

started
2026-10-20T16:17:32Z
verified
—
completed
2026-10-20T16:32:22Z

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I2403.yaml. Read it back with majordomus plan show I2403.

Searches the titles and descriptions of every page this site publishes.