r4_approval_removed
R4: approval check removed from ticket creation
Guard failurefull suite failurechange categories: code, tool1 checks run, impact analysis 0.4 s
Guard, live
Live runs are turned off on this public site. The results below are recorded; live runs happen on the owner's runner.
Checks: targeted selection vs full suite
Recorded in RQ3 (2026-10-06). Its perf-gate figures predate the gate's warmup fix; see the corrections; the re-measured numbers are in the repair timeline below.
| check | selected by Guard | result | s | detail |
|---|---|---|---|---|
| unit:tests/test_retriever.py | no: exercises nothing this change touches | pass | 1.5 | 2 passed in 0.50s |
| unit:tests/test_prompts.py | no: exercises nothing this change touches | pass | 1.5 | 2 passed in 0.49s |
| check:citation_required | no: exercises nothing this change touches | pass | 10.3 | citation contract met in 0/34 answers on the PR vs 1/34 on base (-2.9 pts; budget -5 pts; p=0.50); via full answer path (incl. post-processing) |
| judge:ungrounded_answer | no: exercises nothing this change touches | skip | 0.0 | no judge model key configured (BYOK); judge not run |
| check:prompt_prefix_stable | no: exercises nothing this change touches | pass | 4.0 | requests share 3954 leading characters (base 3954, need 3558) |
| check:context_budget | no: exercises nothing this change touches | pass | 7.7 | largest prompt 980 tokens (base 980) against a budget of 3840; median 964 vs 964 |
| security:approval_gate | yes | fail | 1.6 | 1 approval test(s) (generated from the base revision): 1 failed in 0.45s | > assert not isinstance(exc.value, _NoOutbound), "side effect executed without approval" |
| bench:chat_perf_gate | no: exercises nothing this change touches | warn | 45.6 | median p95 TTFT 222.0 -> 245.8 ms (+10.7%, warn; 3 runs each, runs overlap); prefix-cache hit 98% -> 98% |
Check run as posted to GitHub (markdown)
# 1 regression found: approval_gate conclusion: failure **Ran 1 of 8 suite items** selected from the behavior-to-code graph. Change categories: code, tool. ### Security | check | result | detail | |---|---|---| | `security:approval_gate` | **FAIL** | 1 approval test(s) (generated from the base revision): 1 failed in 0.45s | > assert not isinstance(exc.value, _NoOutbound), "side effect executed without approval" | <details><summary>Not run for this change</summary> - `unit:tests/test_retriever.py`: exercises nothing this change touches - `unit:tests/test_prompts.py`: exercises nothing this change touches - `check:citation_required`: exercises nothing this change touches - `judge:ungrounded_answer`: exercises nothing this change touches - `check:prompt_prefix_stable`: exercises nothing this change touches - `check:context_budget`: exercises nothing this change touches - `bench:chat_perf_gate`: exercises nothing this change touches </details> ### What changed in the graph - `security_boundary:app/tickets.py::create_ticket#approval`: `exists` True -> False - `tool:app/tickets.py::create_ticket`: `approval_gate` True -> False