Add live acceptance smoke validation

This commit is contained in:
2026-06-30 13:02:13 +08:00
parent 7a43303f15
commit bf9b5c33e0
7 changed files with 299 additions and 9 deletions

View File

@@ -9,6 +9,7 @@ from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import FileResponse, StreamingResponse
from . import db
from .acceptance import latest_acceptance_report, run_live_acceptance
from .catalog import get_catalog
from .config import settings
from .coverage import get_coverage_report
@@ -69,6 +70,16 @@ def api_coverage() -> dict:
return get_coverage_report()
@app.get("/api/acceptance/latest")
def api_acceptance_latest() -> dict:
return latest_acceptance_report()
@app.post("/api/acceptance/smoke")
def api_acceptance_smoke(base_url: str = "http://127.0.0.1:8010") -> dict:
return run_live_acceptance(base_url)
@app.get("/api/datasets")
def api_datasets() -> list[dict]:
return list_uploaded_datasets()
@@ -163,7 +174,11 @@ def api_results() -> list[dict]:
def api_artifact(artifact_path: str):
candidate = Path(artifact_path)
if not candidate.is_absolute():
candidate = settings.source_root / candidate
first_part = candidate.parts[0] if candidate.parts else ""
if first_part in {"var", "weights"}:
candidate = settings.project_root / candidate
else:
candidate = settings.source_root / candidate
try:
resolved = candidate.resolve()
allowed = False