open-swe/tests/reviewer
Adam Moussa c99bd78179
Some checks failed
CI / Lint (push) Has been cancelled
CI / Format check (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Unit tests (push) Has been cancelled
CI / Playwright E2E (push) Has been cancelled
CI / Docker build smoke (push) Has been cancelled
CI / Triage ledger up to date (push) Has been cancelled
CI / ui bun.lock in sync (push) Has been cancelled
feat: clean-review auto-approve for unsolicited verdicts [BLOCKED — security] (#217)
* feat(reviewer): clean-review auto-approve for unsolicited publish_review verdicts

An unsolicited publish_review(verdict="approve") — a run dispatched
without verdict_requested — is now honored when the review has zero open
findings, so clean auto-reviews land a real APPROVE. With open findings
it downgrades to a comment review (verdict_ignored_reason=
"approve_with_open_findings"). request_changes stays explicit-request-
only; the self-review, head-moved, and author-unknown downgrades and the
shell verdict guard are unchanged. The reviewer base prompt now instructs
the clean-approve call on auto-reviews.

* chore(security): record accepted-risk suppressions for clean-review auto-approve

Two confirmed-HIGH findings from /sh-security-review on the clean-review
auto-approve change are accepted and deferred (Adam, 2026-07-21), tracked
in #218. Machine-recorded per the mandatory-security-review policy; the
revisit trigger is promotion from dev to main/prod.
2026-07-21 20:18:25 -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(open-swe): explicit-request reviewer verdicts + shell verdict guard (#214) 2026-07-20 15:28:00 -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(open-swe): explicit-request reviewer verdicts + shell verdict guard (#214) 2026-07-20 15:28:00 -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: clean-review auto-approve for unsolicited verdicts [BLOCKED — security] (#217) 2026-07-21 20:18:25 -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