open-swe/tests/reviewer
Adam Moussa b9c348ebba
feat(reviewer): explicit-request verdicts + shell verdict guard
Mention-triggered reviews that explicitly ask for a verdict now submit a
real APPROVE/REQUEST_CHANGES through publish_review; auto-reviews stay
advisory (COMMENT). Authorization is enforced in code: publish_review
honors a verdict only when the dispatching webhook set verdict_requested,
which only the explicit-mention path does.

- request_pr_review gains instructions (forwarded verbatim into an escaped
  requester_instructions data block) and request_verdict
- self-review guard downgrades verdicts on Open SWE-authored PRs; stale
  APPROVEs are best-effort dismissed when later findings land
- new PullRequestVerdictGuardMiddleware blocks gh pr review
  --approve/-a/--request-changes/-r, gh api, and curl verdict fallbacks on
  both the coding-agent and reviewer graphs
- shared escape helper moved to agent/utils/prompt_data.py
2026-07-20 15:06:53 -04:00
..
test_factory_config_isolation.py fix: defensive copy in get_reviewer_agent and get_chat_agent [closes #1584] (#1742) 2026-07-17 16:22:38 -04:00
test_pr_ready_auto_review.py feat(reviewer): explicit-request verdicts + shell verdict guard 2026-07-20 15:06:53 -04:00
test_recent_comments.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_reconcile_sweep.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_review_api.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_review_chat.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_review_style_collector.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_review_style_sync.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_review_styles_store.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_reviewer.py feat(reviewer): explicit-request verdicts + shell verdict guard 2026-07-20 15:06:53 -04:00
test_reviewer_diff.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_reviewer_eval_judge.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_reviewer_eval_run.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_reviewer_eval_target.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_reviewer_findings.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_reviewer_groups.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_reviewer_outcomes.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_reviewer_publish.py feat(reviewer): explicit-request verdicts + shell verdict guard 2026-07-20 15:06:53 -04:00
test_reviewer_reconcile.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_reviewer_tools.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_reviewer_trace_context.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00
test_reviewer_watch.py refactor: move tests into tests/<domain>/ layout 2026-07-17 14:42:45 -04:00