fix: give final acceptance a shared retry budget and diagnostics

This commit is contained in:
chenmingxuan committed 2026-10-18 20:51:19 +08:00
1 parent 50638d4130
commit 32441e79c4
18 files changed
+779 -40

No files matched your search

+51 -6
View File
@@ -251,7 +251,10 @@ def test_error_redaction_and_image_headers():
assert error_text(RuntimeError()) == "RuntimeError"
def test_snapshots_survive_out_of_order_writes_and_export(tmp_path):
@pytest.mark.parametrize(
"kind, key", [("llm_diagnostic", "requests"), ("final_review_diagnostic", "final_reviews")]
)
def test_snapshots_survive_out_of_order_writes_and_export(tmp_path, kind, key):
from artemis.data_engine.models import TraceRecord
from artemis.data_engine.storage import StorageManager
from apps.admin_console.database.connection import db_session
@@ -270,13 +273,14 @@ def test_snapshots_survive_out_of_order_writes_and_export(tmp_path):
TraceRecord(
trace_id=trace_id,
session_id=session_id,
type="llm_diagnostic",
type=kind,
name="llm_request",
timestamp=10 + sequence,
status="success" if sequence == 3 else "running",
payload={
"sequence": sequence,
"phase": phase,
"status": "completed" if sequence == 3 else "running",
"request_id": "call-one",
"started_at": 10,
"ended_at": 13 if sequence == 3 else None,
@@ -284,10 +288,51 @@ def test_snapshots_survive_out_of_order_writes_and_export(tmp_path):
)
)
result = request_diagnostics(str(session_id), db_path=path)
assert len(result["requests"]) == 1
assert result["requests"][0]["phase"] == "completed"
assert result["requests"][0]["active"] is False
assert result["requests"][0]["timestamps_utc"]["started_at"].endswith("+00:00")
assert len(result[key]) == 1
assert result[key][0]["phase"] == "completed"
assert result[key][0]["active"] is False
assert result[key][0]["timestamps_utc"]["started_at"].endswith("+00:00")
assert result["total"] == (1 if kind == "llm_diagnostic" else 0)
def test_review_diagnostics_show_evidence_stage_without_a_live_model_request(tmp_path, monkeypatch):
from artemis.data_engine.storage import StorageManager
from apps.admin_console.database.connection import db_session
from apps.admin_console.services import request_diagnostics as service
path = tmp_path / "data.db"
StorageManager(db_path=path, base_trace_dir=tmp_path)
monkeypatch.setattr(service.time, "time", lambda: 130)
with db_session(path) as conn:
conn.execute("INSERT INTO sessions(session_id,status) VALUES ('task', 'running')")
value = {
"review_id": "final-review",
"status": "running",
"stage": "reading_evidence",
"started_at": 100,
"deadline_at": 200,
"total_seconds": 100,
"updated_at": 110,
}
conn.execute(
"INSERT INTO traces(trace_id,session_id,type,timestamp,payload) "
"VALUES ('review', 'task', 'final_review_diagnostic', 100, ?)",
(json.dumps(value),),
)
conn.commit()
result = service.request_diagnostics("task", db_path=path, limit=100)
assert result["requests"] == []
review = result["final_reviews"][0]
assert review["active"] is True
assert review["stage"] == "reading_evidence"
assert review["elapsed_seconds"] == 30
assert review["remaining_seconds"] == 70
assert review["updated_at"] == 110 # preserve the actual last persisted event time
assert review["timestamps_utc"]["deadline_at"].endswith("+00:00")
assert (
service.request_diagnostics("task", db_path=path, offset=1)["final_reviews"][0]["active"]
is False
)
@pytest.mark.asyncio