上线版: 产品表单统一+form嵌套修复+用户管理+部署+三套叙事

- 产品编辑入口统一走 ProductFormFull(卖点/风格/人群/品牌词全字段);
  修复开任务页 <form> 套 <form> 致"编辑产品"报错、改不了、跳回首个产品
- dashboard 入口卡片对齐实际路由: 系统管理(/config) 与 工作配置(/settings) 分开;
  settings ?tab=products 直达改用挂载后读 URL, 消除 hydration mismatch
- 新增用户管理(users API/admin service/改密页) + alembic 022/023/024
- 上线部署: Dockerfile / docker-compose.prod+https / nginx https / .env.example
- A8 三套正交叙事(痛点/场景/成分背书) + beige 调色去AI化 + 飞轮 text_import 高权重信号

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
yangqianqian
2026-06-30 18:08:13 +08:00
parent a77212781c
commit df1856d793
150 changed files with 8616 additions and 1765 deletions

View File

@@ -11,7 +11,7 @@
>
> 🔴 **2026-06-15 端到端验证发现task58 codeproxy主通道实测**
> - **根因修复**`.env` 图片主通道曾误配 `IMAGE_PROVIDER_PRIMARY=apiports`,但 apiports 无 gpt-image-2 的 edits 端点返回SPA首页HTML→`Expecting value`报错),违反红线「生图主=codeproxy」。已改回 codeproxyworker重建task58 六图全出provider=codeproxy/success=1。详见记忆 clover-apiports-no-image-edits-endpoint。
> - ⚠️ **产品名占位污染产出(待北哥真数据)**product_id=1 name="素颜霜(预置样本)""(预置样本)"被画进图02特写标题。同"龙石"类是测试数据污染非链路bug换真实产品名即正常。
> - ⚠️ **产品名占位污染产出(待北哥真数据)**product_id=1 name="素颜霜(预置样本)""(预置样本)"被画进图02特写标题。同"Clover"类是测试数据污染非链路bug换真实产品名即正常。
> - ⚠️ **status enum 无 'failed'**:任务失败只能无限重试或硬改 rejected设计缺口待补。
## 🟢 本轮施工图(单套配图打通·先列后做)
@@ -71,7 +71,7 @@
- [ ] **A3**human前置S1+S2 已完成。三套 base_prompt 叙事段不同:在 plan_image_set 加 `logger.info("strategy=%s base_prompt前100字=%s", strategy, base_prompt[:100])`确认套A含'痛点先行'/套B含'场景先行'/套C含'成分背书先行'。
- [ ] **A4**〔拆两层〕⚠️品牌词进特写图:
-auto代码层storyboard.py 中 strategy=A 的第2/6张 item 包含 brand_keyword 与 brand_keyword_rule 字段DEBUG日志或单测断言。**这是 pass/fail 判据**。
-human效果层下载第2/6张目视有'龙石'best-effort模型概率性**不作代码验收判据**——gpt-image-2瓶身小字会糊已记录在案
-human效果层下载第2/6张目视有'Clover'best-effort模型概率性**不作代码验收判据**——gpt-image-2瓶身小字会糊已记录在案
- [ ] **A5**auto尺寸严格 1080×1440先确认实际写盘路径worker 日志,默认 UPLOAD_BASE_PATH='uploads/packages' 不是 /app/uploads`python3 -c "from PIL import Image;print(Image.open('<实际路径>/01_hook.jpg').size)"` 必须 (1080,1440)。
- [ ] **A6**auto生图写日志`SELECT provider,success,latency_ms FROM ai_call_logs WHERE task_id=<id> AND call_type='image'` → ≥1行provider非空、latency_ms>0、success IN(0,1)。
- [ ] **A6b**auto日志内容正确性S5核心差错逻辑三套全成功时 success=1至少一套失败时 success=0 且 error_code 非空。