AgentEvalTool/backend/agenteval/evaluation
sinohqb 42be31dd1f feat(report): add load_campaign_view as unified campaign read model
活动级读模型单一出口:一次取齐报告 / 探索 / 分析 / 对比四大数据源。
markdown handler 从 30 行拼装逻辑缩到 3 行;分析执行器同步迁移。
comparison.py 内部的 8 次 load_campaign_report 调用暂不动(跨请求冗余,
缓存收益有限,改动风险高)。

- 新增 load_campaign_view(session, campaign) -> dict[str, Any]
- 返回 {report, exploration, analysis, comparison} 四键
- 迁移 markdown handler 和分析执行器两个调用点
- 4 个新测试覆盖 view 的组装逻辑
2026-08-04 11:33:45 +08:00
..
rules feat(models): add centralized model configuration 2026-07-17 20:02:43 +08:00
__init__.py v0.2.0-dev: 文件管理 + 页面布局统一 + 6 个 bug 修复 2026-07-16 15:25:22 +08:00
analysis.py feat(report): add load_campaign_view as unified campaign read model 2026-08-04 11:33:45 +08:00
campaign_runner.py refactor(repository): narrow atomic updates for patrol/cancel/scheduler writes 2026-08-04 03:39:42 +08:00
campaign_scheduler.py refactor(campaign): move tick decisions into the pure scheduler seam 2026-07-31 02:20:14 +08:00
case_verdict.py refactor(case-verdict): extract build_case_evidence as single evidence-construction seam 2026-08-04 11:23:56 +08:00
comparison.py feat(comparison): unify read model and validation for period comparison 2026-08-04 10:49:14 +08:00
engine.py refactor(engine): thin _run_case and _save_rule_results 2026-07-31 14:59:50 +08:00
implicit_rules.py refactor(engine): thin _run_case and _save_rule_results 2026-07-31 14:59:50 +08:00
judgement.py refactor(judgement): converge case-pass decision into one deep module 2026-07-29 19:45:02 +08:00
metrics.py refactor(metrics): type Run summary and converge cross-run aggregation 2026-07-31 01:57:56 +08:00
report_render.py feat(exploration): findings flow into report, analysis and export 2026-08-03 19:16:33 +08:00
report.py feat(report): add load_campaign_view as unified campaign read model 2026-08-04 11:33:45 +08:00
run_summary.py refactor(engine): extract build_run_summary pure seam 2026-07-31 14:20:51 +08:00