feat(product-suite): persist current generation rounds
This commit is contained in:
+14
-11
@@ -3,7 +3,7 @@ id: T-643
|
||||
title: 商品套图持久化当前生成轮次
|
||||
phase: 7
|
||||
deps: [T-642]
|
||||
status: TODO
|
||||
status: DONE
|
||||
created: 2026-07-16
|
||||
---
|
||||
|
||||
@@ -92,15 +92,15 @@ T-640 的单张失败重试继续新建 job,但必须:
|
||||
|
||||
## 验收要点
|
||||
|
||||
- [ ] 商品完成一轮生成后,关闭软件并重新打开相同店铺和商品 ID,主结果区恢复同一轮、同一顺序的图片。
|
||||
- [ ] 再生成一整轮后,主界面只展示新当前轮,旧轮 job、图片、错误和计费记录仍保留。
|
||||
- [ ] 新轮全部失败或全部取消时,原当前轮继续显示;失败轮可以被历史查询读取。
|
||||
- [ ] 新轮部分成功时切换为当前轮,成功和失败槽位均可见,失败槽位可继续单张重试。
|
||||
- [ ] 单张失败重试沿用原轮次和槽位,其他当前图片不消失、不换序。
|
||||
- [ ] 程序重启后重试结果仍占据原槽位,原失败 job 仍存在。
|
||||
- [ ] 旧数据库可以自动迁移;旧 job 不被猜测性拆分、删除或覆盖。
|
||||
- [ ] 当前轮和历史轮查询不会跨店铺、跨商品或跨项目串数据。
|
||||
- [ ] 不影响生成停止、迟到信号隔离、恢复未完成 cmhub 任务和本地图片保存。
|
||||
- [x] 商品完成一轮生成后,关闭软件并重新打开相同店铺和商品 ID,主结果区恢复同一轮、同一顺序的图片。
|
||||
- [x] 再生成一整轮后,主界面只展示新当前轮,旧轮 job、图片、错误和计费记录仍保留。
|
||||
- [x] 新轮全部失败或全部取消时,原当前轮继续显示;失败轮可以被历史查询读取。
|
||||
- [x] 新轮部分成功时切换为当前轮,成功和失败槽位均可见,失败槽位可继续单张重试。
|
||||
- [x] 单张失败重试沿用原轮次和槽位,其他当前图片不消失、不换序。
|
||||
- [x] 程序重启后重试结果仍占据原槽位,原失败 job 仍存在。
|
||||
- [x] 旧数据库可以自动迁移;旧 job 不被猜测性拆分、删除或覆盖。
|
||||
- [x] 当前轮和历史轮查询不会跨店铺、跨商品或跨项目串数据。
|
||||
- [x] 不影响生成停止、迟到信号隔离、恢复未完成 cmhub 任务和本地图片保存。
|
||||
|
||||
## 测试
|
||||
|
||||
@@ -138,4 +138,7 @@ git diff --check
|
||||
|
||||
## 执行记录
|
||||
|
||||
- 待执行。
|
||||
- 2026-07-16:为 `image_studio_projects` 增加 `current_generation_round_key`,为 `image_studio_jobs` 增加 `generation_round_key`、`generation_slot_index` 及组合索引;旧数据库原位补列,既有 job 保持 NULL 作为旧版历史记录,不猜测轮次。
|
||||
- 2026-07-16:新增轮次当前值、原子成功提升、轮次摘要、当前槽位和完整尝试查询 API;常规生成写入 UUID 轮次和稳定槽位,单张重试继承原轮次和槽位。⑥重新绑定或重启后从持久化当前轮恢复结果;全失败/全取消恢复原当前轮,部分成功切换新轮。
|
||||
- 2026-07-16:生成轮次的 GUI 测试改为在 GUI 事件循环中等待 `QThread` 实际退出,避免在主线程直接阻塞 `thread.quit()` 的排队事件;连续运行 5 次均通过。
|
||||
- 验证:`py -3.10 -m unittest tests.test_image_studio tests.test_workers tests.test_product_suite_gui`(75 项通过);`py -3.10 -m unittest discover -s tests`(554 项通过);`py -3.10 -m ruff check app tests main.py`、`py -3.10 -m compileall app main.py`、`git diff --check` 均通过。
|
||||
|
||||
Reference in New Issue
Block a user