CI recovery
How Orchestrator observes failing GitHub checks and sends focused context to the owning session.
When a claimed GitHub pull request has a failing check, Orchestrator records it and sends a recovery message to the worker that owns the PR.
The flow
- Orchestrator checks the claimed PR on GitHub.
- Orchestrator records new failing checks and sends their names and links to the owning session.
- The session receives the message in Chat or Terminal UI.
- The desktop updates the PR summary with the same check information.
Orchestrator compares the check list with the previous one. It does not resend an unchanged failure on every poll. A changed list can trigger another message.
Make sure the PR is linked
PRs created by a session are discovered and associated through normal observation. To attach an existing PR explicitly:
ao session claim-pr <pr-number-or-url>
# From outside the worker, target it explicitly:
ao session claim-pr <session-id> <pr-number-or-url>Inside a worker, the one-argument form uses AO_SESSION_ID automatically.
Or claim it while creating a session:
ao spawn --project my-project --name fix-pr-42 \
--claim-pr 42 --mode chatUse --no-takeover if the operation should fail when another active session already owns the PR.
Claiming records ownership, but does not check out the PR branch. Prepare the matching workspace before asking the worker to make a fix.
ao report sends a worker update to an existing orchestrator. It does not claim PR ownership.
What the agent receives
The message includes the failing check names, available run URLs, and PR identity. Orchestrator does not copy raw CI logs into the desktop app. The agent can follow the links or use the repository host's CLI to read the logs.
Follow progress
Open the session inspector to see the PR, CI state, and failing-check links. The notification center is for human attention such as input requests and merge readiness; CI recovery itself is routed to the agent session.
Current limits
- This example covers GitHub checks. Orchestrator also observes GitLab, but check and review details depend on the provider.
- CI messages are built in. You cannot configure them through a
reactions:YAML block or set a retry budget. See Automation reference for current behavior. - Orchestrator uses the pull-request status reported by the repository host for draft and required-check status.
If automatic delivery is unavailable, open the owning Chat or Terminal UI session and send a follow-up directly with the desktop composer or ao send.