活动级读模型单一出口:一次取齐报告 / 探索 / 分析 / 对比四大数据源。
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 的组装逻辑
|
||
|---|---|---|
| .. | ||
| rules | ||
| __init__.py | ||
| analysis.py | ||
| campaign_runner.py | ||
| campaign_scheduler.py | ||
| case_verdict.py | ||
| comparison.py | ||
| engine.py | ||
| implicit_rules.py | ||
| judgement.py | ||
| metrics.py | ||
| report_render.py | ||
| report.py | ||
| run_summary.py | ||