Agent web jobs now stop after Brain consolidation and enter needs_review with a persisted review queue (blocking: high-severity, low-confidence, sensitive-category findings; audit sample of clean clusters). Humans decide confirm/reject/unsure/needs_clarification via new review API and frontend queue; a finalizer applies decisions (rejections suppressed with reason codes), performs bounded targeted reruns for clarifications, drafts RFIs only for kept issues, and only then marks the job done and sends the final email. Two-phase email (review-required, then final report), per-decision feedback labels with redacted aggregate metrics, restart recovery from job artifacts, and CLI --no-review bypass. Classic pipeline unchanged. 65 non-LLM tests.
29 lines
1.3 KiB
Python
29 lines
1.3 KiB
Python
from backend.review.gate import build_review_queue
|
|
|
|
|
|
def test_gate_marks_blocking_and_audit_items():
|
|
memory = {"clusters": [{"key": "room:101", "location": "Room 101", "assertions": [{"id": "a1"}, {"id": "a2"}]}], "findings": []}
|
|
prioritized = [
|
|
{"issue_id": "AGENT-0001", "severity": "high", "confidence": "high", "category": "note_or_spec_contradiction", "source_stage": "conflict"},
|
|
{"issue_id": "AGENT-0002", "severity": "low", "confidence": "high", "category": "note_or_spec_contradiction", "source_stage": "conflict"},
|
|
]
|
|
queue = build_review_queue(memory, prioritized, [])
|
|
by_id = {item["review_item_id"]: item for item in queue}
|
|
assert by_id["finding:AGENT-0001"]["blocking"] is True
|
|
assert by_id["finding:AGENT-0002"]["blocking"] is False
|
|
assert any(item["kind"] == "clean_cluster" for item in queue)
|
|
|
|
|
|
def test_gate_limit_caps_clean_cluster_items():
|
|
memory = {
|
|
"clusters": [
|
|
{"key": f"room:{index}", "assertions": [{"id": "a"}, {"id": "b"}]}
|
|
for index in range(3)
|
|
],
|
|
"findings": [],
|
|
}
|
|
queue = build_review_queue(memory, [], [], limit=1)
|
|
clean_items = [item for item in queue if item["kind"] == "clean_cluster"]
|
|
assert len(clean_items) == 1
|
|
assert clean_items[0]["review_item_id"] == "clean_cluster:room:0"
|