fix(product-suite): allow completed source image removal
This commit is contained in:
+8
-2
@@ -3,7 +3,7 @@ id: T-689
|
||||
title: 商品套图已完成历史任务不阻断原图删除
|
||||
phase: 7
|
||||
deps: [T-631, T-658b]
|
||||
status: TODO
|
||||
status: DONE
|
||||
created: 2026-07-22
|
||||
---
|
||||
|
||||
@@ -65,4 +65,10 @@ created: 2026-07-22
|
||||
|
||||
## 执行记录
|
||||
|
||||
- 待实施。
|
||||
- 2026-07-22 完成。
|
||||
- `remove_original_assets_if_unused()` 改用商品原图专用引用判定,不再由通用 `asset_reference_counts()` 的“所有历史 job 一律阻断”语义决定;通用资产删除和拉取停止清理逻辑保持不变。
|
||||
- 删除前会校验终选直接引用,以及所有 job 的主图和 `reference_asset_ids` 快照。`pending/submitted/running`、或仍可 `resume/regenerate` 的失败/停止任务继续阻断;`succeeded + recovery_action=none` 和其它不可再执行的历史 job 不再阻断第二轮生成前的原图调整。
|
||||
- 已完成历史原图删除后,SQLite 外键将 job 的 `source_asset_id` 和生成图 `parent_asset_id` 置空;历史 job 的状态、提示词、扣点、轮次、生成结果和参考图 JSON 快照保持可查。本地源文件与蝦皮线上图片均不删除。
|
||||
- 参考图快照解析失败或 job 状态异常时采取保守阻断;批量删除继续保持全有或全无,并给出“可继续处理的生成任务”或“终选”中文原因。
|
||||
- 已同步 `docs/04-architecture.md`、`docs/routes.md` 与 `docs/api.md`。新增服务层测试覆盖成功历史的主图/参考图可删、六种运行或可恢复状态的主图/参考图阻断、参考图快照无效阻断,以及历史外键置空后生成结果保持。
|
||||
- 验证通过:`py -3.10 -m unittest tests.test_image_studio tests.test_product_suite tests.test_product_suite_gui`(105项)、`py -3.10 -m unittest discover -s tests`(672项)、`py -3.10 -m ruff check app tests main.py`、`py -3.10 -m compileall app main.py`、`git diff --check`。离屏 PySide6 输出字体目录/插件告警,但无测试失败。
|
||||
|
||||
Reference in New Issue
Block a user