feat(review): execution oracle — compile and run the diff's touched tests to ground deterministic claims
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- java
- Domain
- ai, testing-qa
Research direction
Start by reading the review flow under src/main/java/.../review/** and trace how findings and verdicts are produced; the issue says there is no execution there today. Work out how touched tests could be compiled and run in an isolated sandbox with time and resource limits, then connect results to claims that depend on execution. Done means deterministic claims are grounded in test execution, with sandbox safety and scope defined.
Written by the indexing model from the issue text.
Description
Problem Statement
The bot reasons about the diff purely statically — there is no execution anywhere in the review path (no ProcessBuilder, no mvn, no sandbox). Its defenses are mature but all aimed at one failure mode — hallucination: the generator self-checks, the skeptical FindingVerifier, the deterministic FindingQuoteValidator (whose javadoc dogfoods "broken type inference" / "invalid syntax" phantom quotes), and dedup. They answer "did the model make something up?"
The PR #84 misses are the opposite failure — miscalculation, not fabrication:
- An off-by-one: the model counted
split("\n",-1)lines by hand and pinned "expects 5, should be 4" to the wrong test (ReviewDiffFormatterTest.java:194). The quote validator passed it (the text is present), and theFindingVerifier— being the same modality — re-did the same arithmetic and agreed. - A green verdict it could not actually verify (see #A).
LLMs are weakest exactly here: counting, arithmetic, and "will this compile / pass." No prompt tuning fully closes that — it needs a deterministic oracle in the loop.
Proposed Solution
For deterministically-checkable claims ("this assertion is wrong", "this won't compile", "this test fails"), run the touched test files in an ephemeral sandbox and use the real result as ground truth. Even a narrow version — compile the changed sources and run only the tests in the diff — would catch both #84-class misses. Gate any finding/verdict that rests on such a claim on the execution signal.
Alternatives Considered
- Static-only (current): smallest footprint, but no ground truth for mechanical claims.
- #34 (linters / static analysis / SARIF) and #59 (failing-CI context in the prompt): complementary deterministic signals, but neither actually executes the changed tests, which is the only thing that grounds "expects N, should be M" / "this test fails."
- A full build of the whole repo per review — heavier and slower than compiling + running just the diff's tests.
Priority
Important
Additional Context
- No execution today anywhere under
src/main/java/.../review/**. - Relates to #34 and #59; the principled long-term answer to the #84 dogfood misses. Bigger lift: sandbox isolation, time/resource caps, and untrusted-code security need design.
Code of Conduct
- I have searched for existing issues and this is not a duplicate.
- Dominant language
- Java
- Stars
- 35
- Forks
- 7
- Avg merge
- 9h 23m
- Merged PRs (30d)
- 154
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from devops-thiago/ThrillhouseBot
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
devops-thiago/ThrillhouseBot#1093 ·
Maintainers usually reply within 1 day
-
documentation enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
devops-thiago/ThrillhouseBot#321 ·
Maintainers usually reply within 1 day
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
devops-thiago/ThrillhouseBot#46 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 58/100
devops-thiago/ThrillhouseBot#1095 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 58/100
devops-thiago/ThrillhouseBot#1094 ·
Maintainers usually reply within 1 day
All issues in devops-thiago/ThrillhouseBot
Similar issues
-
RRateLimiter acquire methods accept negative permits and raise available permits above the rate.Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 4 days
-
Difficulty 1/5 Under an hour Newbie friendliness 75/100
krahets/hello-algo#1993 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
NationalSecurityAgency/ghidra#9884 ·
Maintainers usually reply within 2 days
-
Status: Pending Review Type: Feature Request
Difficulty 1/5 Under an hour Newbie friendliness 82/100
OpenRefine/OpenRefine#8019 ·
Maintainers usually reply within 1 day
-
`timer` rule rejects dates the engine acceptsPossibly taken @MFA-G claimed this today. Openbug ready
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
camunda/bpmnlint-plugin-camunda-compat#281 · 3 comments ·
Maintainers usually reply within 1 day