'page=1' substring-matched 'per_page=100', so the fake served page 1
forever and the pagination loop hung — caught by the new 120s test
timeout on every CI leg.
Signed-off-by: phernandez <paul@basicmachines.co>
Remove the Codex LLM review and the per-PR image job — both spent API
tokens on every Bossbot run and the connector review already covers
code review. The gate is now fully deterministic: Tests passed for the
head SHA, non-draft, trusted author, zero unresolved review threads.
Prompt/schema files removed; guard tests updated to forbid
openai/codex-action and image generation from reappearing.
Signed-off-by: phernandez <paul@basicmachines.co>
The recheck path posts a status per review-thread event, so a busy PR
can exceed one page of statuses and the original approval record falls
off page one — resolving the last thread would then never restore it.
Page through all statuses for the BM Bossbot context.
Signed-off-by: phernandez <paul@basicmachines.co>
Mirror the ProjectUpdateContext shape the basic-memory.yml capture flow
collects: the image prompt now receives a compact change-shape digest —
labels, linked issues with titles, commit subjects (the PR's narrative
arc), and a churn-ranked changed-files summary with totals — from a
single 'gh pr view --json' call passed as --pr-context-file (replacing
--pr-title/--pr-body-file). The digest is explicitly context, not
captions: the prompt forbids rendering paths, stats, issue numbers, or
commit subjects verbatim in the image.
Signed-off-by: phernandez <paul@basicmachines.co>
Two BM Bossbot fixes:
1. Unresolved review threads now block approval. The review prompt only
sees metadata+diff, so an approve verdict said nothing about
outstanding feedback — #932 merged with two open Codex P2 threads.
finalize now counts unresolved reviewThreads via GraphQL and fails
the status when any remain. A new recheck command, triggered by
pull_request_review / review_comment / review_thread events, flips
the status to failure when feedback arrives after approval and
restores a previously earned approval for the same head SHA once
every thread is resolved. Review and recheck jobs use separate
job-level concurrency groups so neither cancels the other.
2. PR images depict the PR's content, not the review outcome. The image
prompt previously used the BM Bossbot review summary (verdict/status)
as its only source material, so every image rendered an APPROVED
stamp. The prompt now sources the PR title and the author's own
description (managed bot blocks stripped) and explicitly bans
approval stamps, verdict wording, badges, checkmarks, and Bossbot
branding. Theme selection seeds on PR number+title for stability
across re-reviews.
Signed-off-by: phernandez <paul@basicmachines.co>