+ REPO=/home/claude/repos/gbharg-agents + cd /home/claude/repos/gbharg-agents + export 'GIT_AUTHOR_NAME=Gautam AI' + GIT_AUTHOR_NAME='Gautam AI' + export GIT_AUTHOR_EMAIL=gautamai@icloud.com + GIT_AUTHOR_EMAIL=gautamai@icloud.com + export 'GIT_COMMITTER_NAME=Gautam AI' + GIT_COMMITTER_NAME='Gautam AI' + export GIT_COMMITTER_EMAIL=gautamai@icloud.com + GIT_COMMITTER_EMAIL=gautamai@icloud.com + git add pr-review-shared/lib/ask-ai.js pr-review-shared/lib/__tests__/ask-ai.test.js gemini-pr-reviewer/index.js codex-pr-reviewer/index.js codex-pr-reviewer/codex-stdin-shim.sh claude-pr-reviewer/index.js + git status -s M claude-pr-reviewer/index.js A codex-pr-reviewer/codex-stdin-shim.sh M codex-pr-reviewer/index.js M gemini-pr-reviewer/index.js M pr-review-shared/lib/__tests__/ask-ai.test.js M pr-review-shared/lib/ask-ai.js + git commit -F /tmp/recon/commitmsg.txt [feat/ai-reconcile-probot-deploy-drift c43cefdb] fix(pr-review): reconcile live probot deploy drift into monorepo 6 files changed, 62 insertions(+), 17 deletions(-) create mode 100755 codex-pr-reviewer/codex-stdin-shim.sh + echo '=== committed; show ===' === committed; show === + git log --oneline -1 c43cefdb fix(pr-review): reconcile live probot deploy drift into monorepo + git show --stat HEAD commit c43cefdbe641f21dd1a01bded9b1d3e26812f792 Author: Gautam AI Date: Tue Jun 23 11:16:46 2026 -0500 fix(pr-review): reconcile live probot deploy drift into monorepo The live gemini/codex/claude reviewers run on the VM from non-git deploy copies that carried production drift never committed back to this repo. PR #804 (repo-context fix) was merged here AND grafted into the deploy, so the deploy now = #804 + drift. This commits the drift so the repo matches what is actually running live (modulo secrets/env). Reconciled (deploy -> repo): - pr-review-shared/lib/ask-ai.js: 600s timeout (was 180s; ~12% of claude reviews hit SIGTERM/143 on large diffs), killSignal SIGINT for partial flush, explicit killedByTimeout timer + clearer "timed out" rejection, richer non-zero-exit error (binary/code/signal + both streams), and a best-effort /tmp/last-prompt-.txt dump for post-mortems. Layered on top of the #804 sandbox/cwd isolation, which is preserved intact. - pr-review-shared/lib/__tests__/ask-ai.test.js: assert the deploy error + timeout message formats; all #804 sandbox tests kept. - gemini-pr-reviewer/index.js: model gemini-3.1-pro-preview. - codex-pr-reviewer/index.js: route via codex-stdin-shim.sh (codex takes the prompt as a positional arg, not stdin; askAI pipes via stdin). - codex-pr-reviewer/codex-stdin-shim.sh: new shim (reads stdin, execs codex). - claude-pr-reviewer/index.js: add --tools '' to disable tool calls that caused "Reached max turns (1)" exit 1 on large diffs. Not committed (deploy is BEHIND main here, not drift): check-resolution.js, post-review.js, review-handler.js — main already has the per-bot checkResolution filter, the postStartedReview dedup, and the mbp-tmux author notification; the deploy copies predate those. Skipped: .env*, private-key.pem, start.sh, gemini api/, .gitignore (secrets/runtime/local cruft). Tests: pr-review-shared vitest 86/86 green; node --check on all changed JS. Co-Authored-By: Claude Opus 4.8 claude-pr-reviewer/index.js | 4 +++ codex-pr-reviewer/codex-stdin-shim.sh | 9 ++++++ codex-pr-reviewer/index.js | 9 +++--- gemini-pr-reviewer/index.js | 4 +-- pr-review-shared/lib/__tests__/ask-ai.test.js | 13 ++++++++- pr-review-shared/lib/ask-ai.js | 40 +++++++++++++++++++++------ 6 files changed, 62 insertions(+), 17 deletions(-) + echo '=== DONE_12 ===' === DONE_12 ===