diff --git a/backend/agenteval/evaluation/report.py b/backend/agenteval/evaluation/report.py index ebab83e..1351285 100644 --- a/backend/agenteval/evaluation/report.py +++ b/backend/agenteval/evaluation/report.py @@ -173,6 +173,7 @@ def generate_report(run_id: str, session=None) -> dict[str, Any]: "scenario_id": run.scenario_id, "scenario_name": scenario.name if scenario else "未知", "scenario_version": run.scenario_version, + "triggered_by": run.triggered_by.value, "status": run.status.value, "started_at": iso_utc(run.started_at), "completed_at": iso_utc(run.completed_at), @@ -249,6 +250,7 @@ def generate_compare_report(run_id_1: str, run_id_2: str, session=None) -> dict[ "target_name": report_a.get("target_name"), "scenario_name": report_a.get("scenario_name"), "scenario_version": report_a.get("scenario_version"), + "triggered_by": report_a.get("triggered_by"), "status": report_a.get("status"), "started_at": report_a.get("started_at"), "summary": report_a["summary"], @@ -258,6 +260,7 @@ def generate_compare_report(run_id_1: str, run_id_2: str, session=None) -> dict[ "target_name": report_b.get("target_name"), "scenario_name": report_b.get("scenario_name"), "scenario_version": report_b.get("scenario_version"), + "triggered_by": report_b.get("triggered_by"), "status": report_b.get("status"), "started_at": report_b.get("started_at"), "summary": report_b["summary"], diff --git a/frontend/web/src/components/RunList.tsx b/frontend/web/src/components/RunList.tsx index df09596..61787b6 100644 --- a/frontend/web/src/components/RunList.tsx +++ b/frontend/web/src/components/RunList.tsx @@ -299,7 +299,7 @@ function RunRow({ r, selected, targetName, scenarioName, onSelect, onOpenReport, )} - {r.triggered_by && r.triggered_by !== 'manual' && ( + {r.triggered_by && ( void }) { v{run.scenario_version} )} - {trigger !== 'manual' && ( - - {triggerLabels[trigger] ?? trigger} - - )} + + {triggerLabels[trigger] ?? trigger} + {statusLabels[run.status] ?? run.status} = 0.8 ? '#3f8600' : '#cf1322', fontSize: 12, fontWeight: 600, }}>{pct} - {trigger !== 'manual' && ( - - {triggerLabels[trigger] ?? trigger} - - )} + + {triggerLabels[trigger] ?? trigger} + ), } @@ -404,6 +403,11 @@ function SingleReportView({ report }: { report: Report | null }) { {report.scenario_version != null && v{report.scenario_version}} + + + {triggerLabels[report.triggered_by as keyof typeof triggerLabels] ?? report.triggered_by ?? '手动'} + + {formatDateTime(report.started_at)} {report.completed_at ? formatDateTime(report.completed_at) : '-'} @@ -502,6 +506,11 @@ function CompareView({ result }: { result: CompareResult | null }) { {run_a.scenario_name} {run_a.scenario_version != null && v{run_a.scenario_version}} + + + {triggerLabels[run_a.triggered_by as keyof typeof triggerLabels] ?? run_a.triggered_by ?? '手动'} + + {formatDateTime(run_a.started_at)} {(run_a.summary.pass_rate * 100).toFixed(1)}% {run_a.summary.passed_cases}/{run_a.summary.total_cases} @@ -523,6 +532,11 @@ function CompareView({ result }: { result: CompareResult | null }) { {run_b.scenario_name} {run_b.scenario_version != null && v{run_b.scenario_version}} + + + {triggerLabels[run_b.triggered_by as keyof typeof triggerLabels] ?? run_b.triggered_by ?? '手动'} + + {formatDateTime(run_b.started_at)} {(run_b.summary.pass_rate * 100).toFixed(1)}% {run_b.summary.passed_cases}/{run_b.summary.total_cases}