AgentEvalTool/backend/agenteval/web/routers
sinohqb 2b6cab6cb2 feat(comparison): unify read model and validation for period comparison
周期对比读模型升位为单一出口(load_comparison_view),GET/POST/markdown
三处调用点统一走同一 view 投影,消除「取数三件套」重复。校验逻辑收敛到
validate_comparison_request,router 捕获映射 400,执行器捕获落 failed 行,
校验顺序权威不再漂移。

- 新增 load_comparison_view:无行返回 status=none + auto_baseline,有行
  返回完整 comparison dict(含 model_name 标签)+ metric_diff
- 新增 validate_comparison_request:活动终态 → 模型 → 基线 → 分析,违
  规抛 ComparisonError
- execute_campaign_comparison 内联校验替换为 validate_comparison_request
  调用,catch ComparisonError 落 failed 行
- router 三处迁移:GET /comparison、POST /comparison、markdown 导出
- 删除 build_comparison_payload(已吸收进 load_comparison_view)
- 8 个新测试覆盖读模型三态 + 校验五错
2026-08-04 10:49:14 +08:00
..
__init__.py v0.2.0-dev: 文件管理 + 页面布局统一 + 6 个 bug 修复 2026-07-16 15:25:22 +08:00
auth.py feat(backend): v0.4 triggered_by tracking, login gate, compare guard, dashboard stats 2026-07-28 17:40:54 +08:00
campaigns.py feat(comparison): unify read model and validation for period comparison 2026-08-04 10:49:14 +08:00
exploration.py refactor(exploration): move ledger and state machine into domain modules 2026-08-04 03:46:51 +08:00
files.py refactor(files): harden storage and split frontend 2026-07-17 17:41:19 +08:00
model_configs.py feat(models): add centralized model configuration 2026-07-17 20:02:43 +08:00
proxy.py v0.2.0-dev: 文件管理 + 页面布局统一 + 6 个 bug 修复 2026-07-16 15:25:22 +08:00
reports.py refactor(report): split report generation from pure rendering 2026-07-31 10:19:04 +08:00
runs.py refactor(report): unify campaign report loading behind one read model 2026-08-04 03:30:29 +08:00
scenarios.py feat(models): add centralized model configuration 2026-07-17 20:02:43 +08:00
stats.py refactor(report): unify campaign report loading behind one read model 2026-08-04 03:30:29 +08:00
targets.py v0.2.0-dev: 文件管理 + 页面布局统一 + 6 个 bug 修复 2026-07-16 15:25:22 +08:00