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

63 lines
3.2 KiB
Markdown

---
id: T-679
title: 商品套图接入自定义网关(集成验收)
phase: 7
deps: [T-679a, T-679b, T-679c]
status: TODO
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:中断恢复、历史与重试。
## 执行记录
(做完在这里写:集成测试覆盖、验证命令和结果、发现的跨层问题及处理决定。)