A8多套打包+M4归档+R5多图:存量功能备份
A8 多套交付包(packaging_task.py): - 修复交付包只打第1条混乱note的bug,按ImageCandidate.strategy分A/B/C组 - 每组生独立note_0N夹(6图+文案.txt),同seq留最新去重,老数据兼容 - task74端到端验:3套各6图,独立agent7项交叉验证全过 M4 归档(tasks.py/exports.py/前端): - list_tasks加date_from/date_to/product_id筛选+product_name批量填(防N+1) - 新增exports.py:产品JSON导出+标杆CSV导出(UTF-8 BOM) - 前端HistoryFilters日期/产品筛选+产品列+打回原因红banner - response.py加raise_param_error;独立agent验A1/A2/A9通过 R5 产品多图(product_images.py/020迁移/前端): - product_images表+5端点(上传/列/改场景/设主图/删图) - 生图按ROLE_SCENE_PREFERENCE选对应场景图,回落primary - 前端ProductImageManager多图画廊 R6 账号config拆页(settings/): - 配置页按角色拆/settings(运营+组长+admin)+/config(仅admin) - Key只显末4位不显余额(守红线) 核销表对齐真实代码状态:D1改稿框/M7裂变/E12评图分纠偏为已完成(曾漏回写) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -24,15 +24,15 @@ KR1链路连通 + KR2质量达标 + KR3自主可验 + KR4引擎补全(第2环+
|
||||
|
||||
| ID | 任务 | 模块核销表 | 细化 | 状态 |
|
||||
|----|------|-----------|------|------|
|
||||
| M3 | 第8环 审核(死链/打回回路) | plans/核销-第8环-审核.md | 🟢S1-S6/A1-A8 | □ |
|
||||
| M4 | 第12环 归档(日期品类筛选/导出) | plans/核销-第12环-归档.md | 🟢S1-S8/A1-A12 | □ |
|
||||
| M5 | 工程底座(5并发/magic/选标杆/置灰/lightbox) | plans/核销-工程底座.md | 🟢S1-S6/A1-A8 | □ |
|
||||
| M3 | 第8环 审核(死链/打回回路) | plans/核销-第8环-审核.md | 🟢S1-S6/A1-A8 | ✅ 对账核实(2026-06-18独立agent):review.py approve(:101)/reject(:127)端点真在,_fmt_task返review_status/reject_reason/reviewed_at(:64-66),RejectReasonBanner在text/images页均挂载,/review审核工作台页+ReviewCard+RejectModal全在,打回→status=pending_selection→运营见原因可重做闭环真通。曾误标□ |
|
||||
| M4 | 第12环 归档(日期品类筛选/导出) | plans/核销-第12环-归档.md | 🟢S1-S8/A1-A12 | ◐ 后端验过(2026-06-18独立agent):✅A1日期筛选(79→当日4/未来0/非法→40001)✅A2品类筛选(product_id=1命中78+product_name批量防N+1)✅A9产品导出(3条+selling_points真数组)✅A6/A7 zip结构+文案格式;前端代码就绪过typecheck(产品列/日期控件/打回原因banner/导出按钮)但A3/A4/A12目视项待Z阶段浏览器实跑;A10标杆导出逻辑已审ws3无数据未触发 |
|
||||
| M5 | 工程底座(5并发/magic/选标杆/置灰/lightbox) | plans/核销-工程底座.md | 🟢S1-S6/A1-A8 | ✅ 完成(2026-06-18):✅lightbox ✅置灰 ✅magic(文件头校验,products.py _check_image_magic,2端点接入,验证真图过.exe拒) ✅5并发(config值2→5红线,task_service._check_concurrency_limit算pending/generating,验证5拦4放) ✅选标杆(注入链4断点全打通:task_service存benchmark_ids→pipeline_steps.load_benchmark_features读done态→tasks塞product_dict→_text_prompt渲染8维配方+负向约束;前端NewTaskForm多选UI;DB回环验证benchmark_ids真存库+done过滤+ws隔离;独立agent重核5项真修好,不入图片prompt合规保持) |
|
||||
|
||||
## P2 引擎补全(第2环标杆 / 第11环裂变)
|
||||
|
||||
| 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链接 |
|
||||
| M6 | 第2环 标杆8特征分析 | plans/核销-第2环-标杆.md | 🟢S1-S12(S12拆a/b)/A1-A12 | ◐ **引擎双路径+第5环消费接线完成**(2026-06-16~18):①文本路径(手填亮点)8维齐全conf0.9 ②截图vision路径(真喂4.7MB素颜霜图)source=vision真读图,识别三段式卖点/√图标/大字报模板/办公背景,看不到的诚实标"截图未体现"。features_json落库done。端点健壮(404/422/读图失败降级/key缺失提示)。**✅第5环消费features_json已接通(2026-06-18)**:选标杆注入链4断点全打通(详见M5),用户选的标杆8维配方真进文案build_prompt(借方法层结构+禁抄竞品负向约束),独立agent重核真修好。**剩非引擎本体待办:北哥过目8维草案标✅满分**。8维=banana不变量+俊达配方+3链接 |
|
||||
| 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 九文档审核结论·按序逐条修)
|
||||
@@ -44,7 +44,7 @@ KR1链路连通 + KR2质量达标 + KR3自主可验 + KR4引擎补全(第2环+
|
||||
| ID | 任务 | 根据 | 状态 |
|
||||
|----|------|------|------|
|
||||
| A1 | Sidebar 4个死链路由(/tasks /images /tasks/build /tasks/list 全不存在) | Sidebar.tsx确证 | ✅ 2026-06-16 删4死链+补回/review审核台(限supervisor+admin),tsc全量EXIT0,commit 77f52e7 |
|
||||
| D1 | 改稿进飞轮(SignalType.text_edit + TextCandidate.edited + 改稿端点走task_actions) | 最强真实信号 | ◐ 后端✅2026-06-16端到端真跑(edited False→True+飞轮信号落库weight=5,实测抓出ENUM未同步bug已修,commit e3fb6f2)。**前端改稿框入口攒批做(倩倩姐2026-06-16:后端先串完前端攒批)** |
|
||||
| D1 | 改稿进飞轮(SignalType.text_edit + TextCandidate.edited + 改稿端点走task_actions) | 最强真实信号 | ✅ 全链完整(2026-06-18独立agent核实):后端✅端到端真跑(edited False→True+飞轮信号weight=5,commit e3fb6f2)。**前端✅已做完整**:TextCandidateCard.tsx:29-47可编辑textarea+保存改稿/取消按钮,text/page.tsx:29-35真调POST /text-candidates/{id}/edit+同步store,保存后展示"🌿已学习你的改动"+"已改稿"角标。曾误标◐ |
|
||||
| C2 | 审核界面显分(读score_json总分,不读eval_score NULL列) | 审核可判断 | ✅ 2026-06-16 review.py复用_score_array_to_obj算总分+7维,ReviewCard接ScoreDimBars(passLine=80红线),端到端验task40返回total=83,新旧维度兼容,commit ea423e8 |
|
||||
| B7 | 事件处理补齐(SSE/轮询状态流转) | 前端诊断 | ✅ 2026-06-16 核实已做无缺口:SSE签ticket换JWT(?ticket=合规红线)+useSse消费progress/done/error全链+轮询兜底,后端事件发布到位,标绿 |
|
||||
| B6 | 错误态呈现(status=failed前端可见) | 前端诊断 | ✅ 2026-06-16 后端加TaskStatus.FAILED终态+异常区分重试中vs耗尽(耗尽落failed不retry)+014迁移ALTER status ENUM;前端fatalError state+useSse error不再静默丢+FatalErrorBanner提示+failed标签(列表/历史页可见,history纳入HISTORY_STATUSES),tsc EXIT0 |
|
||||
@@ -52,16 +52,16 @@ KR1链路连通 + KR2质量达标 + KR3自主可验 + KR4引擎补全(第2环+
|
||||
### 桶B 飞轮专项(产品最大亮点·做扎实+前端呈现)
|
||||
| ID | 任务 | 守的底线 | 状态 |
|
||||
|----|------|---------|------|
|
||||
| E12 | AI评图分进飞轮:仅"生成时筛选+前端展示X分已入飞轮" | 权重只认真实信号(选/改/审),eval_score留NULL铁律 | □ |
|
||||
| FV | 飞轮可视化=轻量化关键节点反馈(让客户感到确实越用越好) | 不做独立飞轮主视图大页(砍E01) | □ |
|
||||
| E12 | AI评图分进飞轮:仅"生成时筛选+前端展示X分已入飞轮" | 权重只认真实信号(选/改/审),eval_score留NULL铁律 | ✅ 全链完整(2026-06-18独立agent核实):ImageStrategyGroup.tsx:89-96 ai_visual_score徽章(≥80绿/≥60橙/<60灰),后端image_gen.py:228→pipeline_io.py:303→tasks.py:146落库透传;eval_score全程NULL(models/task.py:93/124注释+image_gen/pipeline_io/review.py均不碰),红线守住。曾误标□ |
|
||||
| FV | 飞轮可视化=轻量化关键节点反馈(让客户感到确实越用越好) | 不做独立飞轮主视图大页(砍E01) | ✅ 符合决策(2026-06-18核实):FlywheelBanner(new页/text页/images页SSE flywheel_injected事件)+TextCandidateCard"🌿已学习"+AI分徽章,轻量节点反馈嵌现有流程;无独立大看板=砍E01已拍板。曾误标□ |
|
||||
|
||||
### 桶C 接线(数据流薄,主链通后接)
|
||||
| ID | 任务 | 状态 |
|
||||
|----|------|------|
|
||||
| B1 | 图片按strategy分组(generationStore现一维平铺) | □ |
|
||||
| C1 | 任务看板 | □ |
|
||||
| B2/B3/B4/B5 | 前端数据流补齐 | □ |
|
||||
| C3/C4 | 展示层补薄 | □ |
|
||||
| B1 | 图片按strategy分组(generationStore现一维平铺) | ✅ 同R1已做(对账核实):ImageStrategyGroup按strategy分A/B/C三组,images页:45-47分组+:96-108渲染,非空壳。曾重复挂账□ |
|
||||
| C1 | 任务看板 | □ 真欠账(2026-06-18核实:仅/history列表+状态tab,无kanban按状态分列视图,零代码)。⚠️攒批问倩倩姐:/history已有状态筛选,是否还需独立kanban看板?可能伪需求 |
|
||||
| B2/B3/B4/B5 | 前端数据流补齐 | ✅ 主链完整(2026-06-18核实:generationStore/taskStore/preferenceStore全实现无空壳无TODO,hydrateFromTask历史回填已做);B2-B5核销表本身需求定义模糊,代码层无欠账 |
|
||||
| C3/C4 | 展示层补薄 | C3✅留口子(OVERLAY_TEXT_RENDER_ENABLED=False拍板缓做);C4□代码无对应实现且需求不明,⚠️攒批问倩倩姐C4具体指什么 |
|
||||
|
||||
### 桶D 踩刹车(砍/缓,防堆伪需求偏离纵切片)
|
||||
| ID | 任务 | 裁决 |
|
||||
@@ -72,10 +72,10 @@ KR1链路连通 + KR2质量达标 + KR3自主可验 + KR4引擎补全(第2环+
|
||||
### 桶E 需补充(缺口补全)
|
||||
| ID | 任务 | 状态 |
|
||||
|----|------|------|
|
||||
| 补1 | 上传主图校验(必含产品瓶身,防质地图/手臂图当主图) | □ |
|
||||
| 补1 | 上传主图校验(必含产品瓶身,防质地图/手臂图当主图) | ✅ 同R3已做(对账核实):后端2层硬拦截(task_service.py:46-58建任务校验+pipeline_io.py:199-204 worker兜底防绕过)+前端NewTaskForm:66-77红色警告+按钮置灰。曾重复挂账□ |
|
||||
| 补2 | status=failed 完整处理(后端+前端) | ✅ 同B6(2026-06-16),后端FAILED终态+前端可见,commit 1b48875/ffc213f |
|
||||
| 补3 | git版本兜底 | ✅2026-06-16已建Clover独立仓库,基线6a2632d |
|
||||
| D2 | 数据复盘(飞轮喂料可见) | □ |
|
||||
| D2 | 数据复盘(飞轮喂料可见) | ◐ 实时注入反馈已做(FlywheelBanner+"已学习"提示,见FV),但历史注入摘要/复盘页未做。⚠️攒批问倩倩姐:轻量节点反馈是否已够,还需独立历史复盘页? |
|
||||
| D3 | 爆款解析(并入M6标杆) | ⏸️随M6 |
|
||||
|
||||
---
|
||||
@@ -131,33 +131,33 @@ KR1链路连通 + KR2质量达标 + KR3自主可验 + KR4引擎补全(第2环+
|
||||
### R5 产品多图(P1)
|
||||
| 子项 | 去重映射 | 根因证据 | 状态 |
|
||||
|------|---------|---------|------|
|
||||
| 产品图多张(DB+上传端点+前端multiple) | 问题2/14新 | image_path单值字符串,无multiple,覆盖式 | □ |
|
||||
| 生图按场景选用对应图 | 问题2新 | pipeline_io只读单条image_path | □ |
|
||||
| operator选品/快速建品/产品入镜 | 问题1新 | POST/products限admin,operator不能建 | □ |
|
||||
| 产品图多张(DB+上传端点+前端multiple) | 问题2/14新 | image_path单值字符串,无multiple,覆盖式 | ✅ product_images表(alembic020)+ProductImage模型(lazy=selectin)+5端点(upload带scene/列/改场景/设主图/删图,删主图自动提升下张防image_path悬空);前端ProductImageManager.tsx多图画廊(每张缩略图+场景下拉+设主图+删除);tsc EXIT0;API链路实测建品→传2图(primary+scene)→改场景→设主图→删图全code=0 |
|
||||
| 生图按场景选用对应图 | 问题2新 | pipeline_io只读单条image_path | ✅ ROLE_SCENE_PREFERENCE覆盖全10分镜role;_pick_reference_for_role按偏好链选图缺失回落primary再回落fallback;image_gen/pipeline_io/fission_images/fission_image_retry四路均构造并传images_by_scene;真实数据验证texture分镜命中texture图(不同字节确认)、其余回落primary、无多图回落原reference;独立agent交叉核验6链路点全真0实质bug |
|
||||
| operator选品/快速建品/产品入镜 | 问题1新 | POST/products限admin,operator不能建 | ✅ create/update放开require_admin→require_write_permission;delete_product保留require_admin(破坏性不放开);operator账号实测建品id=6+传图成功code=0 |
|
||||
|
||||
### 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无提示 | □ |
|
||||
| 后端users.py增/删/列用户(删=软删is_active) | 问题15新 | 无users CRUD,is_active登录已校验:37 | ⏸️暂停(倩倩姐2026-06-18拍板:现有4种子账号够北哥测,加人能力留后;先推R7飞轮) |
|
||||
| 前端配置台账号管理Tab | 问题15新 | 无账号管理入口 | ⏸️暂停(同上,随后端users CRUD一起做) |
|
||||
| Key绑定账号显式展示 | 问题15新 | UserApiKey已按user隔离,只缺前端展示 | ✅ B方案拆页:运营进/settings「工作配置」自录key;实测operator录key(id=4 last4=0001)归user_id=3、admin的key(id=2)归user_id=1,DB核对user_id严格隔离各算各的;只显末4位不显余额(守红线) |
|
||||
| operator配置编辑权(放开全部产品) | 问题13a新 | /config硬限admin,products CRUD require_admin | ✅ B方案:配置页按角色拆/settings(运营+组长+admin,含APIKey+产品档案)+/config(仅admin,标杆+违禁词);Sidebar+AuthGuard双层放开/settings给三角色;前缀匹配无串扰;角色矩阵静态核查无死链;独立agent交叉核验0穿透漏洞;后端require_write_permission已对齐 |
|
||||
| 保存按钮补错误提示(治点不动) | 问题13b新 | ProductForm校验静默return无提示 | ✅ ProductForm加error state:空名提示"请填写产品名称"+catch后端报错展示(role=alert);tsc EXIT0 |
|
||||
|
||||
### R7 飞轮闭环+可视化(P2)
|
||||
| 子项 | 去重映射 | 根因证据 | 状态 |
|
||||
|------|---------|---------|------|
|
||||
| 飞轮片段注入生图链路(补断点1) | 新 | run_image_generation没传flywheel_fragment | □ |
|
||||
| 选图信号带strategy进飞轮(补断点2) | 新 | image_select的angle_label=None空转 | □ |
|
||||
| 统一前端查询与注入的计数口径 | 新 | service用次数/aggregator用权重不一致 | □ |
|
||||
| AI评图分仅展示+生成筛选 | =既有E12 | 守eval_score NULL红线 | □ |
|
||||
| 飞轮可视化轻量节点反馈 | =既有FV/D2 | 让客户感到越用越好 | □ |
|
||||
| 飞轮片段注入生图链路(补断点1) | 新 | run_image_generation没传flywheel_fragment | ✅ generate_storyboard_images+run_image_generation加flywheel_fragment参数,tasks.py传load_flywheel_context真实聚合结果;拼per_prompt措辞"仅影响文字角度/排版不改瓶身"守红线;独立agent复核"真修好" |
|
||||
| 选图信号带strategy进飞轮(补断点2) | 新 | image_select的angle_label=None空转 | ✅ IMAGE_STRATEGY_ANGLE映射A痛点/B场景/C成分背书,image_select取ic.strategy映射angle_label+原值存signal_meta;record_signal加signal_meta参;strategy空安全降级;复核"真修好" |
|
||||
| 统一前端查询与注入的计数口径 | 新 | service用次数/aggregator用权重不一致 | ✅ get_preference_context改委托aggregate_preference_context(权重口径),image_select纳入角度聚合;展示端点与生产链同源,交叉验证输出字符串完全一致;复核"真修好" |
|
||||
| AI评图分仅展示+生成筛选 | =既有E12 | 守eval_score NULL红线 | ✅ 既有已达标:ai_visual_score只展示+筛选,eval_score全程NULL,本轮改动复核确认未碰;ImageStrategyGroup徽章展示AI分 |
|
||||
| 飞轮可视化轻量节点反馈 | =既有FV/D2 | 让客户感到越用越好 | ◐ 已有雏形:生成时FlywheelBanner"本次已注入偏好角度"+改稿TextCandidateCard"🌿已学习你的改动"+AI分徽章;无独立大看板(符合砍E01红线) |
|
||||
|
||||
### R8 归档(P2)
|
||||
| 子项 | 去重映射 | 根因证据 | 状态 |
|
||||
|------|---------|---------|------|
|
||||
| 历史打回显示原因 | =问题10,既有M4沾边 | _fmt_task()没返reject_reason,前端没读 | □ |
|
||||
| 日期/品类筛选+导出 | =既有M4 | M4未开工 | □ |
|
||||
| 历史打回显示原因 | =问题10,既有M4沾边 | ✅后端_fmt_task返review_status/reject_reason/reviewed_at(tasks.py:58),前端HistoryTable加rejected行红banner展示打回原因(代码就绪,Z阶段目视) | ◐ |
|
||||
| 日期/品类筛选+导出 | =既有M4 | ✅后端筛选链+导出端点独立agent验过(A1/A2/A9),前端HistoryFilters就绪待目视 | ◐ |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user