open-swe/tests/reviewer
Adam Moussa 2ed7d9f25f
fix(reviewer): harden verdict path against security-review findings
Adversarial security review (detector fan-out + proof-or-kill verifier)
of the verdict feature surfaced several verdict-integrity gaps; resolve
the confirmed ones:

- head-drift (high): a mid-run push moves the resolved head, so an APPROVE
  could anchor to an unreviewed commit. Downgrade any verdict to a comment
  when the resolved head differs from the reviewed head (verdict_ignored
  reason head_moved); the push's own re-review submits a fresh verdict.
- self-review fail-open: downgrade to comment when the PR author cannot be
  confirmed (author_unknown), and compare bot logins case-insensitively.
- verdict_submitted now reflects GitHub's returned review state, not just
  the event we asked for, so a coerced APPROVE isn't reported as submitted.
- an authorized verdict whose findings all anchor outside the diff now
  posts as a bodied review with zero inline comments instead of failing.
- add finding_reply to the shared data-block escape tag superset.
2026-07-20 15:19:37 -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 fix(reviewer): harden verdict path against security-review findings 2026-07-20 15:19:37 -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