AgentEvalTool/.scratch/v0.6/issues/01-campaign-persistence-and-api.md
sinohqb af7e7bf110
Some checks failed
CI / test (push) Failing after 46s
docs(v0.6): add Campaign spec and 5 tracer-bullet tickets
.scratch/v0.6/spec.md:评估活动 v1(静态地基)规格——单对象、可配服务
周期窗口、耐久调度、双主轴周期报告、time_scale 时间倍速。5 张 tracer-
bullet 票(持久化/API → 调度决策+派生 → 耐久回路+恢复 → 双轴报告 →
前端页),依赖边 ①→②→③、②→④、①③④→⑤。
2026-07-30 11:45:13 +08:00

1.6 KiB
Raw Permalink Blame History

01 — 活动持久化 + 创建/查询 API

What to build: 用户能通过 API 创建一个「评估活动」提交一个绑定单个评测对象的静态活动计划窗口长度、time_scale、若干"在窗口某偏移时刻对某场景跑几次"的计划条目),活动被持久化、状态为"计划中",并能按 id 查询取回完整活动。为后续调度与聚合打好数据地基。

Blocked by: 无 — 可立即开始。

Status: ready-for-agent

  • 新增评估活动持久化:窗口长度、状态(计划中/进行中/已完成/已取消/失败、time_scale默认 1.0、静态计划JSON 存取,仿现有 cases、目标对象、时间戳
  • 评测运行增加可空的活动归属字段campaign_id非活动派生的手动 Run 该字段为空;不破坏现有 Run 的创建/查询/更新
  • 新增活动仓储,沿用现有仓储的 to_db/from_db 映射与 Session 管理约定
  • Alembic batch mode 迁移SQLite沿用现有迁移链与 render_as_batch 约定;全新库经 init_db 的 create_all 亦能建出新表与新列
  • POST /api/campaigns 校验并创建活动(计划非空、对象存在、窗口/倍速合法),返回活动 id 与初始状态
  • GET /api/campaigns 列表、GET /api/campaigns/{id} 详情(含计划与状态)
  • 活动通过率等汇总口径为空占位,待后续票填充;本票不含调度与派生
  • API 集成测试httpx AsyncClient 同现有 runs 测法):创建→取回一致、非法计划/不存在对象报错、campaign_id 迁移后既有 Run 不受影响