Files
cmshoppe/docs/tasks/T-679.md
T

4.3 KiB
Raw Blame History

id, title, phase, deps, status, created
id title phase deps status created
T-679 商品套图接入自定义网关(集成验收) 7
T-679a
T-679b
T-679c
DONE 2026-07-20

T-679 商品套图接入自定义网关(集成验收)

问题 / 背景

商品套图从只支持默认网关扩展为支持自定义网关,涉及持久化 job 来源、同步请求、停止与失败语义、生成确认、历史与已提交默认网关任务恢复。原任务同时修改这些层次,风险和验收面过大,现拆为 T-679a、T-679b、T-679c;本任务只负责三项完成后的跨层集成验收。

发布门禁:T-679a、T-679b、T-679c 与本任务 T-679 均为 DONE 前不得发布。 前三项保证实现完整,本任务保证两来源混合、切换⑤设置和恢复旧默认网关任务的跨层回归已经实际验证;任一项缺失都不是可发布的中间态。

集成要求

  • 默认网关任务继续使用 generation_source="cmhub"、provider="cmhub"、异步 task ID、轮询、幂等键和点数账本。
  • 自定义网关任务使用 generation_source="direct"、provider="openai_images_edits"、task_id=NULL、同步单图请求;不得进入 cmhub 轮询或恢复流程。
  • 同一项目可以同时显示历史 cmhub 与 direct 任务;界面仅显示“默认网关 / 自定义网关”,不显示密钥、完整 URL 或模型名。
  • T-678 的图片编辑契约、T-679a 的任务语义、T-679b 的交互预检和 T-679c 的恢复/历史语义必须一致。

验收要点

  • 两种来源均可完成各自允许的新建任务;切换⑤设置不会改变已启动 worker 的来源快照。
  • 已提交的默认网关任务在切换到自定义网关后仍可继续查询、下载并保存,绝不二次提交或扣点。
  • 自定义网关不会访问 cmhub 模型、余额、价格、提交或轮询接口;默认网关行为不回归。
  • 直连失败、停止、程序中断、手动重试和历史展示符合 T-679a/T-679c 的语义,用户不会误以为未完成任务可自动恢复。
  • ⑥生成确认、进度、结果卡片和历史页面的来源、比例、费用与主体一致性提示均为中文且一致。
  • ③更新蝦皮、②生成封面、⑥AI 帮写以及默认网关套图全量回归通过。

测试与文档

  • 跑 T-679a/T-679b/T-679c 的全部验证,再补两来源混合项目、运行中保存⑤设置、切换来源后继续查询旧 cmhub 任务的集成测试。
  • 更新 docs/04-architecture.md、docs/routes.md、docs/api.md 与⑥效果图说明。

验证

py -3.10 -m unittest discover -s tests
py -3.10 -m ruff check app tests main.py
py -3.10 -m compileall app main.py
git diff --check

边界(不改什么)

  • 本任务不新增功能;只整合并验证 T-679a/T-679b/T-679c 已定义的能力。
  • 不新增图片理解的自定义网关路径,不改 cmhub 协议、Chrome/CDP、Excel 或蝦皮更新流程。

关联

  • T-678:自定义网关图片编辑协议。
  • T-679a:多来源 job 状态机。
  • T-679b:商品套图 GUI 与生成确认。
  • T-679c:中断恢复、历史与重试。

执行记录

  • 2026-07-23:按 T-679a/T-679b/T-679c 的来源状态机、生成入口、恢复重试和历史展示逐层核对现有实现;未发现需要修改生产代码的跨层缺陷。
  • 新增 worker 集成回归:同一项目保留已提交的 cmhub/cmhub + task_id 后启动 direct worker,再模拟用户保存⑤设置切回默认网关;本轮新 job 仍按冻结快照写为 direct/openai_images_edits 且不带 task ID,旧默认网关任务仍留在继续查询集合中,两种来源可在同一项目并存。
  • 既有回归继续覆盖切到自定义网关后实际轮询、下载旧 cmhub 任务且不重新提交,direct 不调用 cmhub 提交/轮询/价格/余额,混合来源结果卡、项目历史和全局历史按 job 持久化来源显示,以及 direct 失败重复计费确认。
  • 更新架构、路由、API 和⑥效果图索引说明,将 T-679 组发布门禁标记为已通过;本任务未改变界面布局,因此复用 T-679b/T-679c 效果图。
  • 验证通过:T-679a/b/c 相关定向测试 415 项、py -3.10 -m unittest discover -s tests(685 项)、py -3.10 -m ruff check app tests main.py、py -3.10 -m compileall app main.py、git diff --check。