存量前端:生图分组/灯箱/重生控件/导入文案/驳回横幅+SSE+总核销表

- ImageStrategyGroup/ImageLightbox/RegenControls/ImportTextModal/
  RejectReasonBanner 新建组件
- tasks images/text/new + history + 配置/布局/SSE hooks 存量改动
- 总核销表进度更新

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
yangqianqian
2026-06-18 11:17:53 +08:00
parent d85dcd401b
commit 25f86b2f4a
20 changed files with 741 additions and 60 deletions

View File

@@ -33,7 +33,7 @@ KR1链路连通 + KR2质量达标 + KR3自主可验 + KR4引擎补全(第2环+
| ID | 任务 | 模块核销表 | 细化 | 状态 |
|----|------|-----------|------|------|
| M6 | 第2环 标杆8特征分析 | plans/核销-第2环-标杆.md | 🟢S1-S12(S12拆a/b)/A1-A12 | ◐ **引擎双路径端到端真验完成**(2026-06-16 c1ac2a6):①文本路径(手填亮点)8维齐全conf0.9 ②截图vision路径(真喂4.7MB素颜霜图)source=vision真读图,识别三段式卖点/√图标/大字报模板/办公背景,看不到的诚实标"截图未体现"。features_json落库done。端点健壮(404/422/读图失败降级/key缺失提示)。**剩非引擎本体待办:①北哥过目8维草案标✅满分 ②第5/6环消费features_json对标(接线,归M6下游或随M1/M2)**。8维=banana不变量+俊达配方+3链接 |
| M7 | 第11环 裂变(工作台内) | plans/核销-第11环-裂变.md | 🟢S1-S13(含S10.5)/AC1-12 | □ 代码:只有model骨架(fission.py)+迁移010/011,**service/API/worker全无**,"1爆款→N套笔记包"流程不存在。**档位不等北哥**:banana有现成裂变流程可移植,参考链接已有link_url字段(benchmarks.py:81可手录),先移植打通再请北哥定档位微调 |
| M7 | 第11环 裂变(工作台内) | plans/核销-第11环-裂变.md | 🟢S1-S13(含S10.5)/AC1-12 | **引擎端到端真跑通**(2026-06-16 cefdbaa):①fission_service扇出1源→N子任务(回填source_fission_id,复用主管道run_generation_pipeline),MAX_FANOUT=5红线 ②fission_prompt三档(high/mid/low)规则 ③tasks.py worker识别裂变子任务→注入对应档位进文案上下文(自抓关键缺口,**worker曾跑旧内存代码未热重载,restart后实测注入日志level=high真出现**) ④POST/fission触发+GET/fission/{id}进度聚合,main.py注册路由 ⑤实测fission_id=2扇出task70/71,子任务带source_fission_id+档位注入生效,进度端点聚合正确(total=2/done=0/generating)。**剩待办:①三档真实措辞待北哥定义(现占位规则) ②前端裂变入口+进度呈现(归前端攒批) ③子任务真出3套差异化文案+配图的质量验收(需北哥过目)** |
## P3 前端打通+飞轮2026-06-16 九文档审核结论·按序逐条修)
@@ -80,6 +80,87 @@ KR1链路连通 + KR2质量达标 + KR3自主可验 + KR4引擎补全(第2环+
---
## P4 本轮执行清单倩倩姐2026-06-12实跑15问+截图欠账·去重合并·按序R1→R8做一块核销一块
> 来源倩倩姐亲自实跑前端提15问 + 上次实跑截图欠账(C3/C5/C7/B1/M3/M4/M5/E12/补1/D2)。
> 经4 agent并行审码定位 file:line + 2交叉核(is_active登录校验/api-keys路由前缀)。
> 顺序倩倩姐拍板P0(R1挑图体验/R2重生/R3生图质量) → P1(R4工作台/R5多图/R6账号) → P2(R7飞轮/R8归档)。
> 拍板3点①operator能看改**全部**产品档案 ②3套图是前端没分组非后端没出 ③截图欠账全接入不许丢。
### R1 挑图页体验P0
| 子项 | 去重映射 | 根因证据 | 状态 |
|------|---------|---------|------|
| 图按A/B/C分组展示 | =既有B1(九文档桶C) | ✅ImageStrategyGroup按strategy分3组,page.tsx:34-36+pipeline_io.py:263 | ✅ |
| 点图放大看全图lightbox | =C5,既有M5含 | ✅ImageLightbox object-contain完整不裁+ESC/遮罩关,page.tsx:78接线 | ✅ |
| 组内按seq固定6图序 | 问题12新 | ✅组内sort by seq升序,后端pipeline_io.py:272推seq+sse.ts声明 | ✅ |
| 修"交审"按钮点不动 | 问题7新bug | ✅useSse.ts:24进任务clearSelections清残留,选0张才灰 | ✅ |
| 修"批次重试"点不动 | 问题8新bug | ✅按钮可点+发请求+ROLE_LABEL中文名;单批重生归R2(一期整体重生已标注) | ✅ |
| 进度条补五维(不全0) | =B1实跑(≠九文档B1) | ✅占位0→异步GET补全,后端_score_array_to_obj返七维+dims,ScoreDimBars消费 | ✅ |
> R1 核销证据tsc EXIT=0(0错误) + 独立agent交叉重核5✅+1⚠一期妥协(单批重生归R2),无漏接线/无类型隐患。2026-06-12。
### R2 单张/单套重生+人工提示词P0
| 子项 | 去重映射 | 根因证据 | 状态 |
|------|---------|---------|------|
| 后端regenerate加strategy/role/custom_prompt | 问题6新 | ✅RegenerateRequest请求体+role必配strategy校验,透传enqueue→Celery→pipeline→image_gen全链路 | ✅ |
| 前端单张/单套重生+提示词输入框 | 问题6新 | ✅RegenControls弹窗(含custom_prompt框)+每张"重生此张"+每套"重生整套"+同strategy+role去重展示最新 | ✅ |
> R2 核销证据①后端真import+4签名校验通过 ②alembic 017(is_regen)升级到head ③Pydantic五模式校验全过(整体/单套/单张/非法strategy拦/超长拦) ④生图局部重生4逻辑测试过(单张只1张/custom_prompt注入/全量3张/匹配不到回退) ⑤前端tsc EXIT=0 ⑥独立agent交叉审8项:7✅+1硬伤(空文案降级生图)已修(无文案硬失败推error40002不静默降级) ⑦红线守住:重生新增不删旧/eval_score留NULL/合规约束不被custom_prompt覆盖(sanitize+追加末尾)。2026-06-12。
### R3 生图质量P0·C3硬伤提前
| 子项 | 去重映射 | 根因证据 | 状态 |
|------|---------|---------|------|
| C3中文乱码(canvas叠字) | =C3,记忆标硬伤 | 倩倩姐2026-06-12拍板"只留口子不实现":OVERLAY_TEXT_RENDER_ENABLED=False+image_gen.py TODO(C3-overlay)接入点;本轮验收图大标题"倍分子素颜霜"+瓶身字清晰未触发错别字 | ✅ |
| C7像小红书(prompt约束) | =C7截图🟡 | 新增IMAGE_XHS_STYLE_CONSTRAINTS(反电商/素人感)append到base_prompt;真实验收:参考图笔电背景→生成图换梳妆台镜子生活场景,带标题/卖点/#标签/emoji,明显去电商化 | ✅ |
| 补1上传主图必含瓶身校验 | =既有补1 | 后端2层硬拦截已就位(task_service.py:57建任务校验+pipeline_io.py:199worker兜底);前端ProductSubComponents.tsx加引导"必须含产品主体,质地图不能替代主图"(倩倩姐定调:质地图也算产品但主体必传) | ✅ |
| C1产品一致(走真图) | =既有C1 | 真实端到端:产品5真图(白罐金边盖)→生成图瓶身忠于参考图原样,印"倍分子焕颜沁透水润 素颜霜 SKIN CREAM"未改包装/未混入他品;apiports503自动回落codeproxy+gpt-5.5强档兜底 | ✅ |
> R3 核销证据(2026-06-17真实端到端)worker容器内 r3_verify.py 用产品5真图+真key+真模型生 product_closeup 特写图,83秒,1.9MB,AI分82。独立Explore agent交叉审4处改动无硬伤、R1/R2回归安全。
> 备忘(非R3,记R5收紧)ALLOW_TEXT_ONLY_IMAGE默认true第三层放水,与前端引导文案语义不一致;当前前两层防线已拦截"入镜却纯文生图",R5多图时一并收紧默认值。
> 待优化(非阻塞)①产品5未录brand_keyword(品牌词客户填,本次验证未带词) ②生成图出现"核心买点。"模板占位词漏到图上=文案字段没填实,记文案优化。
### R4 三功能工作台P1·形态级
| 子项 | 去重映射 | 根因证据 | 状态 |
|------|---------|---------|------|
| 文案/图片排版/裂变三独立入口+可连贯 | 问题3新形态 | Sidebar线性流水线,裂变前端零入口 | 🟢 倩倩姐2026-06-15拍板"三并列入口";Sidebar.tsx改三并列(文案创作/tasks/new·图片排版/history·裂变扩散/fission);裂变扩散=独立裂变页(倩倩姐拍板"新建独立裂变页",app/fission/page.tsx+FissionLauncher+FissionProgress);tsc零错 |
| 图片排版可脱离文案独立用 | 问题3新 | images页强依赖text页带入 | 🟢 图片排版入口落/history每行加"排图"链→/tasks/{id}/images(图片步骤需task id,从历史任一非failed任务直接进排图,不强依赖刚走完text);components.tsx已加 |
| supervisor含运营全部操作 | 问题9新 | AuthGuard:18把/tasks/new挡住supervisor | 🟢 AuthGuard:18已加supervisor;ProgressBar:25只排除admin;后端POST/tasks用require_write_permission不卡角色(前轮R4-a改) |
| 导入文案补粘贴/上传入口 | 问题11新 | tasks/new:48直跳过输入,/import-text没调 | 🟢 新建ImportTextModal(粘贴多条用"---"切分);new页"导入外部文案"→先校验→开弹窗→建import任务→逐条POST/api/v1/tasks/{id}/import-text→跳text页;半成品态保留task_id跳text可续;tsc零错;端点路径核对/api/v1/tasks/{id}/import-text真实存在 |
| 第8环审核回路(死链/打回) | =既有M3 | M3未开工 | 🟢 M3前后端已建成(前轮核实非未开工);_fmt_task补review_status/reject_reason/reviewed_at修死链;RejectReasonBanner组件text/images页呈现打回原因 |
### R5 产品多图P1
| 子项 | 去重映射 | 根因证据 | 状态 |
|------|---------|---------|------|
| 产品图多张(DB+上传端点+前端multiple) | 问题2/14新 | image_path单值字符串,无multiple,覆盖式 | □ |
| 生图按场景选用对应图 | 问题2新 | pipeline_io只读单条image_path | □ |
| operator选品/快速建品/产品入镜 | 问题1新 | POST/products限admin,operator不能建 | □ |
### R6 账号体系+Key+权限P1
| 子项 | 去重映射 | 根因证据 | 状态 |
|------|---------|---------|------|
| 后端users.py增/删/列用户(删=软删is_active) | 问题15新 | 无users CRUD,is_active登录已校验:37 | □ |
| 前端配置台账号管理Tab | 问题15新 | 无账号管理入口 | □ |
| Key绑定账号显式展示 | 问题15新 | UserApiKey已按user隔离,只缺前端展示 | □ |
| operator配置编辑权(放开全部产品) | 问题13a新 | /config硬限admin,products CRUD require_admin | □ |
| 保存按钮补错误提示(治点不动) | 问题13b新 | ProductForm校验静默return无提示 | □ |
### R7 飞轮闭环+可视化P2
| 子项 | 去重映射 | 根因证据 | 状态 |
|------|---------|---------|------|
| 飞轮片段注入生图链路(补断点1) | 新 | run_image_generation没传flywheel_fragment | □ |
| 选图信号带strategy进飞轮(补断点2) | 新 | image_select的angle_label=None空转 | □ |
| 统一前端查询与注入的计数口径 | 新 | service用次数/aggregator用权重不一致 | □ |
| AI评图分仅展示+生成筛选 | =既有E12 | 守eval_score NULL红线 | □ |
| 飞轮可视化轻量节点反馈 | =既有FV/D2 | 让客户感到越用越好 | □ |
### R8 归档P2
| 子项 | 去重映射 | 根因证据 | 状态 |
|------|---------|---------|------|
| 历史打回显示原因 | =问题10,既有M4沾边 | _fmt_task()没返reject_reason,前端没读 | □ |
| 日期/品类筛选+导出 | =既有M4 | M4未开工 | □ |
---
## 🔴 跨模块迁移版本号统一防三环撞008车
008=brand_keyword / 009=benchmark_analyze_fields(含features_json) / 010=fission_tasks表 / 011=task_benchmark_fission_fields / 012=product_target_audience / 013=text_candidate edited+signal_type ENUM补text_edit(D1已落) / **014=generation_tasks.status ENUM补failed(B6已落)**。下一个可用=015。