yangqianqian
de6466737b
docs: 交接文档三件套(接手总览+后端地图+差距路线图)+补全env模板
...
Clover CI / backend (push) Has been cancelled
Clover CI / frontend (push) Has been cancelled
Clover CI / python-audit (push) Has been cancelled
- HANDOVER.md: 守印接手第一入口,全景+上手路径+文档地图
- backend/BACKEND_MAP.md: 后端接手地图(路由/模型/AI引擎/评分维度)
- 路线图.md: 现状vs目标差距(三视角×双目标矩阵+7/15倒排冲刺)
- .env.example x3: 补全 MODEL_VISION/CLAUDE_API_URL 及本地SSE示例
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 18:49:51 +08:00
yangqianqian
e26f53608b
feat: show fission records in history
2026-07-01 14:48:18 +08:00
yangqianqian
8c863efb7d
feat: add fission package download
2026-07-01 14:22:54 +08:00
yangqianqian
a634fcbea2
fix: enable full preview in review flows
2026-07-01 13:49:28 +08:00
yangqianqian
033ef89536
fix: harden online validation flows
2026-07-01 10:56:08 +08:00
yangqianqian
da137f099f
fix: add password visibility controls to change password
2026-07-01 10:43:07 +08:00
yangqianqian
232fd35c90
fix: keep auth form errors visible
2026-07-01 10:26:42 +08:00
yangqianqian
df1856d793
上线版: 产品表单统一+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 >
2026-06-30 18:08:13 +08:00
yangqianqian
cb041e8d3a
前端文案挑选页按 A/B/C 三套分组展示
...
- 后端 _fmt_text 返回 strategy 字段,SSE 与 hydrate 两条路径贯通
- 新建 TextStrategyGroup 组件 + groupByStrategy(A/B/C/未分套排序,旧 NULL 数据归未分套)
- text 页平铺改分组渲染,选中态/改稿回调透传不变
- 复用 ImageStrategyGroup 的 STRATEGY_LABEL,单向依赖无环
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-22 10:29:35 +08:00
yangqianqian
2ca6ac2e48
C1: 新增轻量任务看板/board(按状态分列只读视图)
...
- board/components.tsx: BOARD_COLUMNS(4列:生成中/待审核/已通过/已打回)+TaskCard(只读点击进详情)+BoardColumn+BoardSkeleton
- board/page.tsx: 复用 GET /api/v1/tasks?status=...(跟随角色不写前端权限),failed/archived不进看板
- Sidebar: 加「任务看板」📋 入口;顺修两项同href的重复key warning(改key=label)
- 卡片跳转:进行中/待审核→confirm,已通过/打回→images(路由均已存在)
独立agent交叉复核6项全过(状态全覆盖/多status参数与history一致/无前端权限/无死链/字段判空/边界安全),无must-fix
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-22 10:10:33 +08:00
yangqianqian
4bed7425a8
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 >
2026-06-18 17:32:49 +08:00
yangqianqian
285791c12f
裂变补图:中转站波动导致单张失败时只重生失败分镜
...
实测发现 codeproxy 偶发不稳,单套中某张图重试3次仍失败会记 error。
本次加按需补图:只重生标 error 的分镜,成功的图与 token 不浪费。
- 019迁移+模型:fission_tasks 加 source_task_id(新架构不扇出GenerationTask,
补图需复刻首轮上下文:产品/operator key/张数,故落库回查)
- fission_image_retry:只补失败 role(引擎 target_role 单张重生,R2零改动),
merge 回 images_json,全恢复则 status=image_done
- tasks.py:retry_fission_images Celery task,key归属源任务operator(基石B),
幂等锁防重复补图
- api:POST /fission/{id}/notes/{seq}/retry-images,无失败分镜守卫 queued=false
- 前端:FissionNoteCard 失败提示改"重试补图"按钮+loading,父页轮询刷新
实测task5 seq1(hook图首轮codeproxy重试3次失败)补图跑通:只补hook(1024×1536
去AI化)、applied_proof原图不动、recovered=1 still_failed=0、status=image_done;
apiports503回落codeproxy gpt-5.5强档兜底;seq0无失败图守卫queued=false
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-18 11:30:41 +08:00
yangqianqian
25f86b2f4a
存量前端:生图分组/灯箱/重生控件/导入文案/驳回横幅+SSE+总核销表
...
- ImageStrategyGroup/ImageLightbox/RegenControls/ImportTextModal/
RejectReasonBanner 新建组件
- tasks images/text/new + history + 配置/布局/SSE hooks 存量改动
- 总核销表进度更新
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-18 11:17:53 +08:00
yangqianqian
d85dcd401b
第11环裂变重写:对齐上线版 split.js 一次LLM出N套完整笔记包
...
架构从"扇出N个GenerationTask各跑完整管道"改为"一次LLM调用直接出N套
完整笔记包(N=1~5)",落 FissionNote 表 + 独立展示页。
后端:
- 018迁移:fission_notes 表(文案JSON+score+passed+imagePlan+images+status)
- fission_prompt:FISSION_SYSTEM+三档参考度(low/mid/high)+normalize_tags+品类兜底
- fission_pipeline:一次LLM出N套→各评分(@80合格线)→排序→落库,不达标标
needs_optimization 非丢弃;apiports 503 回落 codeproxy gpt-5.5 强档兜底
- fission_images:每套串行调现有生图接口(零改动image_gen/storyboard)
- tasks.py:run_fission_pipeline Celery task,删旧扇出注入
- api/v1/fission:进度聚合FissionNote + GET /fission/{id}/notes(剥内部字段)
前端:FissionProgress对齐状态机 + N套独立展示页 + FissionNoteCard
测试:test_fission_engine(19)+test_fission_pipeline(5) 全过;104 全量回归绿
实测task5(fanout=2,mid)端到端跑通:一次出2套→seq0=85过/seq1=79标优化→
生图codeproxy/edits→1024×1536去AI化→task completed→notes端点返完整数据
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-18 11:17:37 +08:00
yangqianqian
1b488752e6
B6/B7: failed终态前端可见 + SSE事件链核实
...
B6 错误态:
- 后端已加 TaskStatus.FAILED + 异常区分重试中/耗尽(014迁移ALTER status ENUM)
- 前端 TaskStatus 类型加 failed
- RecentTasksBar/history STATUS_LABEL 补 failed 标签
- history 页 HISTORY_STATUSES 纳入 failed(否则失败任务前端找不到)
- FatalErrorBanner + useSse error 不再静默丢弃
B7: 核实 SSE(ticket换JWT) + 事件消费链无缺口,标绿
tsc EXIT=0
2026-06-16 12:45:13 +08:00
yangqianqian
ea423e8a32
fix(C2): 审核台显示文案质量分(总分+7维明细)
...
审核要能判断,原审核队列接口不返回分数=组长盲审。
- review.py _fmt_queue_item: 解析selected_text.score_json,复用现成
_score_array_to_obj(tasks.py)算总分+透传维度,绝不读eval_score(留NULL)
- dto.tasks.ts: ReviewQueueItem.selected_text 加 score?:TextScore|null
- ReviewCard.tsx: 复用现成ScoreDimBars组件,passLine=80(合格线红线,
不用组件默认85)
端到端验:task40审核队列返回total=83+5维明细,新旧维度兼容。tsc EXIT0。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 12:28:56 +08:00
yangqianqian
e3fb6f2655
feat(D1): 改稿进飞轮 - 最强真实信号 text_edit +5
...
倩倩姐2026-06-16拍板:改稿=用户真改了字=最在乎这条方向=最强真实信号。
先激进入飞轮跑一周,北哥用后按真实数据校准是否加"过审才入"闸门。
改动:
- enums.py: SignalType.TEXT_EDIT + SIGNAL_WEIGHTS权重5(≥选择类)
- task.py: TextCandidate.edited 布尔字段
- 013迁移: text_candidates加edited列 + preference_events.signal_type
ENUM补text_edit(端到端实测抓出:不补会Data truncated)
- task_actions.py: POST /{task_id}/text-candidates/{cid}/edit 端点
回写content+edited=True+record_signal写text_edit,走task_actions不碰review.py
端到端实测:edited False→True,飞轮信号真落库type=text_edit weight=5。
顺手: tsconfig.tsbuildinfo 移出版本控制(构建产物)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 12:20:54 +08:00
yangqianqian
77f52e7eb0
fix(A1): 清除Sidebar 4个死链路由,补回审核台导航
...
死链(全不存在的路由): /tasks /images /tasks/build /tasks/list
真实存在却漏进导航的 /review(组长审核台)补回,限supervisor+admin。
选文案/选图片是任务流程内步骤(经/tasks/[id]/text|images,需task id),
不做顶层导航。tsc全量通过。
同步: 总核销表新增P3前端打通+飞轮(九文档审核5桶结论)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 11:34:21 +08:00
yangqianqian
6a2632da70
baseline: Clover 独立仓库首次基线提交
...
将 Clover 从上层产品包旧仓库中独立出来,建立专属版本控制。
当前状态=纵切片端到端已打通(登录→选品→出文出图→审核→下载包),
M1文案质量去套路化已验收。此提交作为后续按核销清单逐条修复的基线。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 11:30:22 +08:00