Files
cmshoppe/docs/tasks/T-679b.md
T
chengmaandClaude Fable 5 34c7a2e148 docs(tasks): close review gaps in custom gateway suite split
对 T-678 细化与 T-679a/b/c 拆分的全栈复核结果:

T-678:修正背景中不准确的收敛理由。api_type 在 app/ai.py 只有 :348、
:350 两处使用且都在图片路径内,文字路径从不读取该字段;不能全局收敛
的真实原因是 appconfig.py:881 对所有模型统一校验,收窄取值集合会让
存量文字模型在载入与保存时抛 ConfigError。方案首条同步改为按校验口径
表述,避免实现时去找不存在的文字侧分支。

T-679a/b/c:三处补加发布门禁,说明三者未全部完成前不得发布。拆分只为
控制改动面,不构成可独立发布的中间态——重复计费的二次确认定义在
T-679c,若 a/b 先上线,用户已能创建并失败 direct 任务却在无提示情况下
重试,属资金口径缺口而非体验缺陷。

T-679a:补记本任务组有意放宽 T-677「不给商品套图新增自定义网关路径」
的边界及理由(套图是来源切换后唯一完全断链的模块,图片理解不在放宽
范围内),避免后续回看误判两者矛盾。

T-679a:比例近似映射改为同时记录用户选择的比例与实际输出尺寸。原方案
只存原始比例会让 DB 记 9:16 而文件实际为 1024x1536;当前 add_asset 的
aspect_ratio 只写入无消费者(app/image_studio.py:707-731)故暂不可见,
但历史展示或导出一旦信任该字段即出错。新增字段迁移须附加式且幂等。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 17:30:08 +08:00

64 lines
3.5 KiB
Markdown

---
id: T-679b
title: 商品套图自定义网关生成入口与确认交互
phase: 7
deps: [T-679a]
status: TODO
created: 2026-07-20
---
# T-679b 商品套图自定义网关生成入口与确认交互
## 问题 / 背景
**发布门禁:T-679a、T-679b、T-679c 未全部完成前不得发布**(理由见 T-679a 背景:重复计费提示定义在 T-679c,缺它会形成资金口径缺口)。
T-677 按安全边界禁用了自定义网关下⑥的新建套图、重试和价格流程。T-679a 提供来源正确的同步执行能力后,GUI 必须只在配置可用时开放入口,并用清晰中文说明主体一致性、比例近似、费用和停止边界。
## 方案
- `ProductSuiteGenerateWorker` 在启动时冻结包含当前来源所需配置的快照;自定义网关允许创建 job,默认网关保留现有路径。新 job 的来源必须由冻结快照决定。
- 自定义网关预检复用 T-678 的图片模型能力检查;未配置、接口类型不符、密钥为空、模型禁用或超时无效时,阻止生成并引导到⑤补齐。
- 自定义网关不请求 cmhub 模型目录、余额、价格或点数预估;确认框显示“自定义网关不计点数,实际费用以服务商为准”。默认网关确认和计费展示不变。
- 生成确认框以实际 job specs 展示:生成数量、主图/参考图规则、逐图模式、所选比例;若 T-679a 返回近似比例,明确显示实际输出尺寸和“接近比例生成”。
- 自定义网关确认框说明“首图作为主要商品参考,参考图效果取决于模型,主体一致性可能弱于默认网关”;该文案不承诺模型必然保留主体。
- 点击停止后,显示“正在停止,等待当前图片返回后结束”;禁用新的提交入口但不冻结整个 GUI,完成后恢复正常状态。
- 结果日志、失败提示只显示中文业务信息和来源名“自定义网关”,不显示完整 URL、模型名、密钥或原始上游正文。
- 「AI 帮写」继续只支持默认网关;自定义网关下置灰并提示中文原因。
## 验收要点
- [ ] 自定义网关配置合格时可创建、确认并启动套图生成;不合格时在提交前阻止。
- [ ] 自定义网关流程不访问 cmhub 价格/余额/模型接口,且不显示“0 点”或过期余额。
- [ ] 确认框完整提示数量、主参考图、参考图、逐图模式、比例映射、费用与主体一致性差异。
- [ ] 停止中的视觉与按钮状态准确,GUI 其余非破坏性操作不被整窗冻结。
- [ ] 默认网关确认、价格、余额、AI 帮写和原有套图生成不回归。
## 测试与文档
- `tests/test_product_suite_gui.py`、`tests/test_gui.py`:两来源入口、预检、确认文案、近似比例、停止状态、无 cmhub 价格请求、AI 帮写边界。
- 更新 `docs/ui/` ⑥效果图及 `docs/ui/README.md`,同步 `docs/routes.md`。
## 验证
```bash
py -3.10 -m unittest tests.test_product_suite_gui tests.test_gui tests.test_workers
py -3.10 -m ruff check app tests main.py
py -3.10 -m compileall app main.py
git diff --check
```
## 边界(不改什么)
- 不改 T-679a 的 HTTP、job 状态机或恢复数据。
- 不开放自定义网关 AI 帮写,不改 cmhub 协议、Chrome/CDP、Excel 或蝦皮更新。
## 关联
- T-679a:多来源任务状态机。
- T-679c:失败卡片、历史和手动重新生成的后续交互。
## 执行记录
(做完在这里写:变更文件、界面决策、验证命令及结果。)