agent-orchestrator/backend/internal
neversettle eeaddd221a
fix(review): reviewer posts to GitHub and records its verdict autonomously (#259)
* fix(review): make the reviewer post to GitHub and record its verdict autonomously

The claude-code reviewer never completed a review on its own. Three defects
in the reviewer launch + flow:

- It launched with no permission mode, so a headless pane stalled on the
  first tool-permission prompt and never ran gh/ao. Launch with
  bypassPermissions (read-only is enforced by the prompt, not a sandbox).
- The reviewer pane got no pinned PATH, so `ao review submit` resolved to a
  foreign `ao` on the inherited PATH and failed. Pin PATH to the daemon's
  own dir the same way worker sessions do — export HookPATH and reuse it in
  the launcher.
- The prompt did not enforce ordering. Make it post the review on the PR
  via gh first, then run `ao review submit`.

Fixes #258

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(review): fall back to a comment review when self-approval is rejected

GitHub does not let an author approve their own PR, so a reviewer running
under the same account can't post an `approve`. Tell the reviewer to post
the approval as a regular comment review (COMMENT event stating it is an
approval) when the provider rejects the self-approval, instead of failing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 16:34:15 +05:30
..
adapters fix(review): reviewer posts to GitHub and records its verdict autonomously (#259) 2026-06-17 16:34:15 +05:30
cdc feat: ao session claim-pr + spawn --claim-pr wiring (#101) 2026-06-06 00:01:03 +05:30
cli feat(review): configurable AO code review backend (V1) (#192) (#197) 2026-06-15 01:17:17 +05:30
config Use ~/.ao as canonical state home (#233) 2026-06-14 22:52:25 +05:30
daemon feat(review): configurable AO code review backend (V1) (#192) (#197) 2026-06-15 01:17:17 +05:30
daemonmeta fix(cli): verify daemon ownership before stop signal 2026-06-01 01:45:04 +05:30
domain fix(review): serialize concurrent triggers per worker to stop reviewer double-spawn (#246) 2026-06-17 00:43:10 +05:30
httpd fix(project): detect the repo's default branch on add (#209) 2026-06-15 14:51:07 +05:30
integration fix: 7 bugs from discussion #149 smoke walk (envelope, spawn, CDC, observer) (#153) 2026-06-07 07:35:46 +05:30
lifecycle fix(session): stamp session timestamps in UTC (#215) 2026-06-15 14:51:12 +05:30
notify feat: add notifications v1 (#181) 2026-06-14 20:02:32 +05:30
observe feat(tracker): ApplyTrackerFacts reducer + shared observer skeleton (#112) (#116) 2026-06-07 21:29:00 +05:30
ports fix(spawn): map invalid branch name to 400 instead of opaque 500 (#213) 2026-06-15 14:50:58 +05:30
processalive refactor: simplify session lifecycle and zellij runtime (#62) 2026-06-01 08:42:49 +05:30
review fix(review): reviewer posts to GitHub and records its verdict autonomously (#259) 2026-06-17 16:34:15 +05:30
runfile refactor: simplify session lifecycle and zellij runtime (#62) 2026-06-01 08:42:49 +05:30
service fix(project): detect the repo's default branch on add (#209) 2026-06-15 14:51:07 +05:30
session_manager fix(review): reviewer posts to GitHub and records its verdict autonomously (#259) 2026-06-17 16:34:15 +05:30
storage/sqlite fix(review): serialize concurrent triggers per worker to stop reviewer double-spawn (#246) 2026-06-17 00:43:10 +05:30
terminal refactor(terminal): per-client zellij attach replaces shared PTY + replay ring (#194) 2026-06-12 15:19:38 +05:30