--- id: T-679 title: 商品套图接入自定义网关(集成验收) phase: 7 deps: [T-679a, T-679b, T-679c] status: DONE created: 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` 与⑥效果图说明。 ## 验证 ```bash 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`。