AgentEvalTool/backend/agenteval/web
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
..
routers feat(comparison): unify read model and validation for period comparison 2026-08-04 10:49:14 +08:00
__init__.py v0.2.0-dev: 文件管理 + 页面布局统一 + 6 个 bug 修复 2026-07-16 15:25:22 +08:00
app.py refactor(tasks): route LLM background tasks through TaskRegistry 2026-08-04 09:58:20 +08:00
deps.py feat(backend): v0.4 triggered_by tracking, login gate, compare guard, dashboard stats 2026-07-28 17:40:54 +08:00
file_schemas.py feat(files): improve category and location layout 2026-07-17 18:13:43 +08:00
model_config_schemas.py feat(models): add analysis-default flag for campaign intelligence 2026-08-03 01:46:51 +08:00
websocket.py v0.2.0-dev: 文件管理 + 页面布局统一 + 6 个 bug 修复 2026-07-16 15:25:22 +08:00