seaislee1209
a39d2b8603
feat(video): 视频页「导出全部」— 把项目所有视频片段打包成 zip 下载
...
- 后端 ProjectViewSet 加 export-clips action:逐段从 TOS 拉取已采用视频片段、内存 zip 打包返回下载
(单段失败跳过不毁整包;空项目 400);文件名走 RFC5987 UTF-8 编码兼容中文
- 前端视频阶段 queue-bar 在「上传视频」旁加「导出全部」按钮(下载图标 + 导出中/失败态),
api.exportProjectClips 取 blob → 触发浏览器下载;仅有已完成片段时可点
- 单测 ExportClipsTests:打包全部片段 + 空项目 400
验收:后端单测绿(基线 4 失败零新增);tsc+build 绿;真打包 补水面膜 项目得 950KB zip;无头 0 报错
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 20:38:31 +08:00
seaislee1209 and Claude Opus 4.8
9e791a4db9
fix(projects+assets): 项目封面引用真实商品图 + 资产库排除软删资产
...
- 项目卡封面:废弃「项目名关键词→静态 mock 假图」映射(与真实数据脱节,导致全是假面膜图),
改用后端 cover_preview_url(取商品 cover_asset 主图);无商品图 → 干净占位
- 资产库 queryset/summary/facets 补 is_deleted=False:软删资产不再出现在资产库与 tab 计数
(此前 is_deleted 字段在资产库未生效,软删无效)
- 单测 AssetSoftDeleteTests:列表 + 计数均排除软删
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 19:44:45 +08:00
seaislee1209 and Claude Opus 4.8
c6e9c7e77b
feat(video): 期3 视频趴 — 人物→角色 + 引用模特库/自动入库 + 分镜合规归类 + 资产库素材
...
后端:
- B 路:视频流程新生成角色立绘+三视图成套 → 自动入模特库(run_triview_task,幂等 additive)
- 合规闭合:三视图 person→tri_view、分镜图 scene→storyboard,两者均加 on_commit 送审(此前只有角色立绘送审,三视图/分镜图漏审 = 合规缺口)
- 资产库 _tab_q:成片 finals→素材 materials(所有视频排除最终成片;最终成片隐藏不列)
- 单测 TriviewAutoEnrollTests:自动入库 + 幂等 + 三视图落审核范围
前端:
- 视频项目资产趴「人物」→「角色」(KIND_LABEL,区块名/新增/空态/详情弹窗一处全改;向导人设 persona 不动)
- A 路:演员库收编模特库 —— 顶部「模特库」tab 取自模特库实体(含官方跨团队模特),选一个即用其形象图作角色参考
- 资产库 library:人物→角色、成片 tab→素材、分类标签补全(模特上身图/平台套图/自由创作/视频素材/最终成片)
- vite.config:端口与后端代理目标可用 VITE_PORT/VITE_API_TARGET 覆盖(默认不变),避免多实例撞车
验收:后端单测全绿(基线既有 7 失败零新增);tsc+build 全绿;无头 0 console error
(资产库角色/素材改名、最终成片隐藏;pipeline 资产趴显角色;演员库模特库 tab 含 5 模特)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 19:27:23 +08:00
seaislee1209 and Claude Opus 4.8
c8f3f91d38
feat(images): 期2 图片趴三类 — 模特上身图/平台套图/自由创作 归类+成组+接模特库
...
后端:
- 独立生图三类归类:model+product→model_tryon(模特上身图,引用模特库,不送审) / cover→platform_kit(平台套图) / image→free_create(自由创作);生成演员(model 无 product)仍→person(视频角色,留期3)
- 成组:每次提交一个 batch_id 串起整批,落 asset.metadata;另记 mode + model_entity_id(上身图溯源模特库)
- generate-image 端点透传 model_entity_id;资产库 _tab_q+summary 加 tryon/kits/creations 三类桶
- 单测 StandaloneCategoryTests 直跑 worker 验四态归类全绿(绕开异步 .delay)
前端:
- 资产库 library.tsx 加三类 tab(模特上身图/平台套图/自由创作)+ 计数 + 筛选维度
- ai-tools 模特选择器数据源 person→模特库(listModels 映射,选中传形象图当参考 = 引用模特库),ActorLibrary 同源
- api.ts submitGenerateImage 加 model_entity_id
验收:tsc+build 全绿;无头 0 console error(资产库三类 tab 各归类正确、模特选择器 5 张取自模特库)
基线既有 3 失败(StandaloneImageReferenceTests 异步漂移)零新增
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 16:36:29 +08:00
seaislee1209 and Claude Opus 4.8
44e90233ff
feat(models): 期1 模特库地基 — Model 顶级实体 + 模特库页 + 审核范围扩展
...
后端:
- 新增 Model(模特)团队级实体:形象图+三视图+声线(声线尾期),官方模板标签,软删
- Asset.Category 枚举一次加全(model_portrait/tri_view/voice/model_tryon/platform_kit/free_create/storyboard),逐期接线
- 送审范围 person → REVIEW_CATEGORIES{person,tri_view,storyboard}(review.py + adminpanel 队列),图片趴不送审;当前行为不变(forward-compat)
- /api/models/ ModelLibraryViewSet:本团队∪官方模板、官方/我的 tab、真人上传、软删(官方不可删)、跨团队资产引用防越权
- backfill_models 命令把历史成套模特(kind=model + 项目流命名配对)归集成 Model,dry-run 默认
前端:
- 左菜单新增「模特库」顶级入口(person 图标)+ 路由 /models
- 模特库页:全部/官方模板/我的模特 tab + 真人上传 + 模特卡(形象图+三视图缩略+官方标签),仅用 design token
测试:assets 10/10 绿;tsc+build 全绿;无头走查 0 console error(全部5/官方3/我的2,官方标签达标)
基线既有 7 失败(ai/projects provider mock 漂移)零新增
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-20 22:53:46 +08:00
seaislee1209 and Claude Opus 4.8
1c9143ce61
fix(base-assets): F8 商品卡与人物/场景卡统一尺寸(240px 方图)
...
- 原商品卡 360px高/3:5(高窄)、人物卡方图(矮宽)→ 视觉不一致
- 商品卡改 240px 宽 + 方图(aspect-ratio:1),与人物/场景卡一致
- 人物/场景网格列固定 240px(不拉伸)→ 与商品卡精确等大,左对齐
- 同步对齐稿:W4 审核范围收窄(仅视频趴人脸送审,模特上身图属图片趴不审)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-20 19:49:57 +08:00
seaislee1209 and Claude Opus 4.8
998b0bfb93
fix(product-detail): 素材卡「归档」按钮 → 只读审核状态
...
- 状态不再是用户可点循环(通过/不通过/归档),改为只读展示团队审核结果
- 状态值 archive→pending:active(绿盾)=通过 / failed(红标)=不通过 / 其它=待审核
- 移除 statusOverrides 本地覆盖 + cycleAssetStatus + 采用三视图的状态联动
- 筛选项「归档」→「待审核」;CSS .pill.archive→.pill.pending 去 cursor:pointer
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-20 19:21:31 +08:00
seaislee1209 and Claude Opus 4.8
3469799da5
feat(trash): 商品删除→垃圾桶(软删可恢复)+ 左侧垃圾桶入口
...
后端(无需迁移,复用 Product.status active/archived):
- destroy 改软删(status→archived);正常列表/详情只看 active
- 新增 /products/trash(列已删)、/products/{id}/restore(恢复)、/{id}/purge(彻底删)
- tests.py:软删/列表隐藏/回收站/恢复/彻底删/拒绝彻底删 active —— 5 测试全过
前端:
- api:productsTrash / restoreProduct / purgeProduct
- 左侧导航加「垃圾桶」(新增 trash 图标);route-config 接 /trash 路由
- 新页 routes/trash.tsx + trash-page.css(仅 token):已删商品列表 + 恢复 + 彻底删(二次确认)
- 删除确认文案「不可撤销」→「移至垃圾桶可恢复」;toast「商品已删除」→「已移至垃圾桶」
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-20 19:16:28 +08:00
seaislee1209 and Claude Opus 4.8
b8fc1a0749
fix(product-create): 新建商品上传健壮性 — loading/失败提示/等齐再关抽屉
...
- 原 close() 在图片上传之前执行 + 上传无 catch → 失败静默,商品建了却无图
- 改:create 后用 Promise.all 等全部图传完,saving 态贯穿整个上传(抽屉不提前关,
「创建中…」可见)
- 上传失败 → flash「图片上传失败 · 已保留可重试」,不关抽屉
- createdRef 暂存已建商品:重试只补传图,不重复建商品
- onCreate 失败也给提示(不再静默)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-20 19:03:30 +08:00
seaislee1209 and Claude Opus 4.8
2e880714b1
fix(base-assets): 资产详情还原 — 容器比例/提示词框固定/hover反白/缺三视图标签
...
- F1 缺三视图标签:橙底白字 r-sm → 白底琥珀描边胶囊(对齐设计稿)
- F3 立绘容器 3/4 → 9/16(资产详情左 + 库 adx-lead-img)
- F4 库三视图格 adx-tri-cell 3/4 → 16/9(流水线详情本就 16/9)
- F6 资产详情提示词栏 .ad-detail-prompt 固定高度 88px + resize:none
- F2 人物提示词框 .asset-prompt-edit 固定 74px(≈三行)+ resize:none,studio rows 4→3
- F7 三视图上方 icon 按钮 hover:橙底+白 icon(原仅字色变橙)
- F5 资产详情「重跑立绘/替换」按钮行右对齐
- F8(商品块 vs 人物块统一)结构性差异,待用户指认,本轮挂起
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-20 19:00:18 +08:00
seaislee1209 and Claude Opus 4.8
8550d532ac
fix(storyboard): 还原故事板 — 时间区间/缩略图/白底/字号对齐HTML
...
- E1 每场卡字号对齐 HTML:.nm 12→11.5、.sub 12→10.5、.asset-tag 12→11.5
- E2 故事板主图留白底色 --background-lighter(灰)→ --surface(白),
contain 完整显示竖长拼图时不再透出「灰底大框」
- E3 每场 sub 由「#1」改为时间区间「0~15s」(累加脚本镜时长,无脚本回退序号)
- E4 绑定资产前的占位圆点 → 已引用资产缩略图(groupMainUrl,无图回退圆点)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-20 18:51:42 +08:00
seaislee1209 and Claude Opus 4.8
d7f7ed2bae
feat(pipeline): V1 雪藏拼接导出(代码保留,V2 恢复)
...
- 阶段步进器 STAGE_STEPS 去掉「拼接导出」第 5 项 → 菜单只剩 1-4
- 视频阶段「确认视频,进入拼接」入口按钮 {false &&} 隐藏(代码留存)
- 已完成项目落到第 4 阶段(视频)而非被藏的第 5,避免空白
- Stage 5 拼接导出渲染块原样保留,V2 恢复改 false→true + 还原菜单项即可
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-20 18:39:49 +08:00
seaislee1209 and Claude Opus 4.8
b946a64409
fix(ui): 批量栏黑底还原 + 图片生成页排版对齐HTML + 视频卡去多余上传
...
- .bulk-bar 全局裸类被 admin-page.css 白底版盖掉 → 收窄到 .admin-app;
商品库/项目/资产库批量浮条恢复黑底
- 批量浮条显隐改绑「有无选中」(.show)而非编辑模式 → 退选即消失
- asset-factory 三卡:开始生成按钮挪回 factory-text 内(对齐HTML),
按钮紧跟描述、卡片高度回正;tag/desc/价格字号对齐HTML(10.5/13.5/10.5)
- 全站内容区上内边距 48px→24px(对齐设计稿 #page-content),标题不再整体偏低
- 视频卡移除多余「上传」按钮(AI生成不需单卡上传,全局上传入口保留);
video-card-head 顶端对齐改垂直居中
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-20 18:34:33 +08:00
seaislee1209 and Claude Opus 4.8
cdfcffcecd
feat(admin): Phase 9 收尾治理 — 全局项目监控 + 数据完整性体检
...
后端:adminpanel projects(全局项目流水线监控+状态筛)+ integrity(数据体检:无账户团队/无图商品/过期邀请码/
无文件资产/失败项目/卡 reserved 计数 + totals);AdminProjectSerializer;IsPlatformAdmin。
前端:adminApi adminProjects/integrity;Admin 治理页(体检卡片超0高亮 + 项目监控表状态筛)。
测试:adminpanel 53 单测过(项目列/筛/体检报告);无头 e2e _admin-p9.mjs 4 断言过 + 0 console error(全只读);tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 22:51:49 +08:00
seaislee1209 and Claude Opus 4.8
4ce7e957d2
feat(admin): Phase 8 模型供应商管理 — provider/model CRUD + 启停 + 定价 + 设默认
...
后端:ModelConfig.is_default + migration;get_default_model 优先 is_default 否则回落最早 active(零回归);
adminpanel providers CRUD(api_key write-only 不回传)+ models CRUD(?provider/capability 筛)+ set-default(同 capability 清旧);
IsPlatformAdmin + 审计。
前端:adminApi providers/models/setDefault;Admin 模型供应商页(供应商表+模型表+启停+定价+设默认+供应商/模型弹窗)。
测试:adminpanel 51 单测过(api_key 隐藏+入库/CRUD/set-default 改 get_default_model);
apps.ai 仍仅 3 个进场前既有失败(零回归);无头 e2e _admin-p8.mjs 5 断言过 + 0 console error
(用一次性禁用 provider+model capability=export,无副作用,跑完删);tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 22:45:14 +08:00
seaislee1209 and Claude Opus 4.8
39b4467258
feat(admin): Phase 7 计费审计+4层额度策略 — 流水浏览/手动调额/额度策略CRUD+拦截
...
后端:adminpanel ledgers(全局流水+筛)+ adjust(手动调额,落 ADJUSTMENT)+ quota-policies CRUD;
额度拦截 _enforce_quota_policy(单任务/月度/项目)接入 reserve_credit,仅团队有 active 策略才生效(无策略零回归);
adjust_credit helper。修真 bug:log_admin_action 加 savepoint + JSON 安全化(UUID/Decimal),
修复传 serializer.data 致审计报错污染外层事务 → TransactionManagementError。
前端:adminApi 计费/额度系列;计费审计页(流水表+手动调额弹窗)+ 额度策略页(CRUD 弹窗,团队下拉+三类上限+启用)。
测试:adminpanel 44 + billing + accounts = 70 单测过(调额±/超额拒/额度拦截 per_task+monthly/无策略零回归);
无头 e2e _admin-p7.mjs 6 断言过 + 0 console error(一次性团队,不动 demo 余额);tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 22:33:52 +08:00
seaislee1209 and Claude Opus 4.8
ca1e50d32c
feat(admin): Phase 6 AI任务监控+成本异常 — 全局任务列/筛/详情抽屉/失败重投
...
后端:adminpanel tasks(全局 AITask + status/type/team/anomaly 筛分页)+ detail(payload)+ retry(失败重投,
仅图像类 best-effort 否则 400);is_cost_anomaly(实际>预估×1.5)+ F() 异常筛;IsPlatformAdmin + 审计。
前端:adminApi tasks 系列;Admin 任务监控页(状态 tab + 仅成本异常 chip + 表格成本预估→实际+异常标 + 详情抽屉 payload + 失败重投)。
修真 bug:抽屉缺 .show 类停屏外,补上正常滑入。
测试:adminpanel 36 单测过(筛/异常/详情/重投 mock celery + 非失败/不支持/权限拒);
无头 e2e _admin-p6.mjs 6 断言过 + 0 console error(不点真重投);tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 22:19:24 +08:00
seaislee1209 and Claude Opus 4.8
5aab8a568f
feat(admin): Phase 5 火山人像审核队列 — 跨团队 person 资产审核(列/筛/批量送审/轮询)
...
后端:adminpanel asset-reviews(列跨团队 person + 状态筛分页)+ submit(批量送审/重试)+ poll(轮询 processing),
复用 assets/review.py,IsPlatformAdmin + 审计;AdminReviewAssetSerializer;修 N+1(prefetch 缓存取首图,列表 5s→1s)。
前端:adminApi 审核系列;Admin 资产审核页(状态筛 + 多选表格 + 绿/红/灰状态盾 + 重试 + 吸底 bulk-bar 批量送审 + 刷新状态)。
测试:adminpanel 28 单测过(mock 火山:队列只列 person/状态筛/批量送审计数/poll 只轮 processing);
无头 e2e _admin-p5.mjs 5 断言过 + 0 console error(只读 poll,不点真送审);tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 22:07:11 +08:00
seaislee1209 and Claude Opus 4.8
01d4f235ed
feat(admin): Phase 4 质量词 Admin(平台单层) — QualityWord + 生成侧读配置(无配置回落) + 质量词页
...
后端:apps/ai QualityWord(stage/slot/text/sort/enabled)+ migration;services.py quality_words/quality_suffix,
4 个 builder 接入(person/model_tryon/storyboard/video)无配置回落原写死值零回归;adminpanel CRUD + 审计。
前端:adminApi quality 系列;Admin 质量词页(按 stage 分组卡 + 编辑模式开关 + 行内增改删 chip)。
测试:adminpanel 23 + accounts 22 = 45 单测过(CRUD/权限/生成读配置+回落/停用词不取);
无头 e2e _admin-p4.mjs 4 断言过 + 0 console error + live 库零残留;tsc+build 绿。
注:apps.ai 3 个 image_edit 路由测试失败为进场前既有(已 stash 比对 HEAD 同样失败),非本 Phase 引入。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 21:52:41 +08:00
seaislee1209 and Claude Opus 4.8
6560633959
feat(admin): Phase 3 平台团队+用户管理 — 列/启停/详情/强制改密 + 团队停用拦登录
...
后端:adminpanel 增 teams(列/详情/启停)+ users(列/启停/强制改密),AdminTeam/User 序列化器;
login 校验团队 status,停用团队成员拒登;停用用户清 token、禁停平台超管;全程 IsPlatformAdmin + 审计。
前端:adminApi teams/users 系列;Admin 团队页(筛选+搜索+详情弹窗+启停)、用户页(启停+改密弹窗,超管行禁操作)。
测试:adminpanel 19 + accounts 22 = 41 单测过;无头 e2e _admin-p3.mjs 7 断言过 + 0 console error
(UI 停用团队→成员登录 400→启用→200;UI 改密→新密码登录 200);tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 21:39:15 +08:00
seaislee1209 and Claude Opus 4.8
45a4ceae51
feat(admin): Phase 2 邀请码发放管理 — apps/adminpanel 跨团队端点 + Admin 邀请码页
...
后端:新建 apps/adminpanel(跨团队后台容器,/api/admin/);GET/POST invitations(列跨团队码+筛选分页 /
平台发 create_team 开团队码,写审计)+ revoke(写审计),全程 IsPlatformAdmin。
前端:adminApi 分层;Admin 邀请码页(类型筛选段控 + 表格 + 发码弹窗 + 复制邀请链接 + 撤销)接入 AdminApp toast;
Invitation 类型补 kind/team_name;admin-page.css 补段控/表格/弹窗(仅 token)。
测试:adminpanel 9 + accounts 22 = 31 单测过;无头 e2e _admin-p2.mjs 6 断言过 + 0 console error
+ 端到端凭 UI 发的码注册开团队 201;tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 21:29:55 +08:00
seaislee1209 and Claude Opus 4.8
3f8547564c
feat(admin): Phase 1 注册邀请码逻辑 — 码必填 + kind 分流 + validate-invite + 注册页码优先重做
...
后端:Invitation.kind(join_team/create_team)+ team 可空 + migration;RegisterSerializer 邀请码必填,
create_team 开新团队当 owner+发试用额度、join_team 幂等入伙不重复发额度,删「空码开团队」;
validate-invite 免登录验码端点;团管发码恒 join_team;InvitationSerializer 增 kind/team_name。
前端:注册页码优先(验过才展开;create_team 填团队名 / join_team 只读团队名,不暴露团队列表)、
邀请链接 ?invite= 自动验码、api.validateInvite、验码行/状态提示样式(仅 token)。
测试:accounts 22/22 单测过(RegisterInviteCodeTests + ValidateInviteTests);
无头 e2e _admin-p1.mjs 全断言过 + 0 console error;tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 21:07:03 +08:00
seaislee1209 and Claude Opus 4.8
443023a1a9
feat(admin): Phase 0 平台超管基础 — is_platform_admin + IsPlatformAdmin + create_platform_admin(admin/admin123) + AdminAuditLog + Admin 后台外壳与路由 gating
...
后端:User.is_platform_admin + migration;权限类 IsPlatformAdmin;管理命令建 admin/admin123(幂等);
AdminAuditLog 模型 + log_admin_action() helper;me/login 对无团队超管优雅返回 team=null;UserSerializer 暴露标志。
前端:routes/admin 后台外壳(分组侧栏 + 概览 + 占位)、/admin 路由解析与 gating(超管直落、非超管纠回)、
侧栏平台入口、admin-page.css(仅 token)、IconKitSvg 补图标。
测试:accounts 11/11 单测过;无头 e2e _admin-p0.mjs 全断言过 + 0 console error;tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 20:49:34 +08:00
seaislee1209 and Claude Opus 4.8
ec573151d2
fix(auth): 登录页修按钮丢失 + 黑块等高 + 品牌文案重梳(去流程罗列)
...
用户反馈登录页:① 登录按钮不见了 ② 左黑块比右栏矮一截 ③ 左侧铺一堆生成流程/
失败不扣费,杂、不像品牌门面。
- 按钮丢失:.auth-submit-zone(按钮+SSO+切换)原是 .auth-form 的兄弟节点,登录态被当成
flex 第三列挤出、被 overflow 裁掉 → 移进 .auth-form 表单内,按钮恢复。
- 黑块矮:.auth-brand 基础规则带 height:100%,而登录/注册 wrap 是 height:auto,百分比高
解析不出 → 黑块退回内容高、退出 stretch。删掉 height:100%,靠 align-self:stretch 拉等高。
- 文案:删 VALUE_POINTS 四条功能罗列 + 流程箭头 p,登录/注册统一干净品牌短句
(「让每件商品都有自己的带货短剧」/「开通团队,拍出第一条带货短剧」),守 design.md 克制调性。
实测:黑块=表单=600px 等高;登录按钮+SSO 显示正常。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 19:14:26 +08:00
seaislee1209 and Claude Opus 4.8
69163a8f7f
fix(pipeline): 提取闸门按「是否走过正式提取步」显隐,而非 script_entities 存在性
...
脚本生成期有时也会吐 entities(就是那个不稳的旧来源),若按 script_entities 存在性判断,
闸门会被误隐藏、用户看不到三按钮。改为提取步落库时打 metadata.entities_extracted 标记,
前端据此显隐:没走过正式提取 → 盖蒙版露三按钮;走过 → 露卡片。「重新提取」按钮在有实体或
有资产时显示(老项目也能重提)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 18:04:45 +08:00
seaislee1209 and Claude Opus 4.8
de29449a76
feat(pipeline): 兜底弹窗拦截 — 生成故事板/视频前查参考图齐不齐,缺了拦住
...
原兜底是静默退化文生图/文生视频 → 出来的跟用户建的角色/商品无关,白花钱、易纠纷。
因参考图是自动关联(没给手选),改为生成前拦截:
- missingRefsFor:对待生成镜的 entity_refs,查每个角色/场景是否有「按名字采用」的基础资产
(商品永远有主图、不算缺);没提取过实体则不拦(交给提取闸门)。
- guardGen 包住 4 个生成触发点:故事板整张 / 全部视频 / 单段视频 ×2;单段只查对应镜。
- 缺了弹窗:列出缺的角色/场景 + 「去补齐参考图」(跳资产趴)/「仍要生成」(随他便,带警告)。
- 弹窗 CSS 守 design token(深色遮罩 + --r-md + --heat/--accent-black)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 17:57:52 +08:00
seaislee1209 and Claude Opus 4.8
c6d1d2f6fe
feat(pipeline): 资产页实体提取闸门 — 蒙版+3按钮替掉自动生成(不掏口袋)
...
进资产趴原会自动 genPersonWithTri/genBaseAsset 出图、直接扣用户费,"被掏口袋"感。
改为用户点了才提取/生成:
- 删掉进资产趴的自动生成 effect(及 autoGenRef)。
- STAGE 2 盖半透明蒙版 + 三按钮:① 只提取关键词(不出图) / ② 提取+生成角色和场景
(立绘+场景图) / ③ 提取+全套(立绘+三视图+场景图);running 态转 loading,完成自动揭开。
- runExtract 调 /extract-entities 提实体落库,②③ 再按返回实体循环 genBaseAsset/genPersonWithTri。
- 提取后露「重新提取角色/场景」按钮(改了脚本可重提)。
- 闸门据 metadata.script_entities 是否落库自动显隐;已有资产的老项目不打扰。
- api.extractEntities + 类型 script_entities;蒙版 CSS 守 design token(--heat/--r-md/--accent-crimson)。
角色卡仍只露可改的 visual_prompt(质量模板后端 build_person_frontal_prompt 包,用户看不到)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 17:50:31 +08:00
seaislee1209 and Claude Opus 4.8
1c5606abcb
feat(core): Wave 4 P2 — 账户页 mono 字号分级 + 商品卡缺三视图徽标
...
- account-page.css:25 处纯 mono 装饰字号对照 V1 account.html 收回 9-11.5px 分级
(原统一 12px);分页器等无 V1 锚点的保持现状不瞎改
- products.tsx:商品卡补「缺三视图」徽标(复用现成 .tri-missing-badge,真实字段判定
!cover_asset && 无图,判不准则不显示不造假);stat 生成选择 modal 超 P2 范围跳过
验证: tsc 0 · build 0 · 14 路由回归 boot 0 报错 · 登录 702ms 无邮箱
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 13:13:02 +08:00
seaislee1209 and Claude Opus 4.8
09e67a5893
feat(core): Wave 4 pipeline 视觉签名(纯视觉/rule 3 合规)
...
- 脚本助手头补 model mono 签名「· {模型名}」(品牌签名,用 S2 的 .mono-11 工具类)
- 阶段4 视频卡 meta 补三段「{N}s · {分辨率} · ~¥0.45」(分辨率取 timeline.resolution)
- 阶段4 queue-bar 补 Seedance 预估「约 15 秒」
- 阶段5 时间轴 zoom 范围 100-300 → 50-200(对齐 V1)
未碰脚本 agent/生成/轮询任何业务逻辑,只改文案/范围。tsc 0 · build 0。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 13:08:25 +08:00
seaislee1209 and Claude Opus 4.8
b82c4d3234
feat(core): Wave 3.5 团队邀请入口 — 生成邀请码弹窗 + 复制码/邀请链接
...
team.tsx 加「邀请成员」按钮 → gen-invite 弹窗:角色(成员/团管)+ 月限额 → api.createInvitation
生成邀请码,cred-card 展示码 + 邀请链接(/register?invite=)+ 一键复制;复用 batch1 的 cred-card 类,无新 CSS。
验证: tsc 0 · build 0 · 走查 邀请按钮/弹窗打开/角色select/生成按钮/ESC关 全过 · 0 console error
⚠️ 生成码 + 凭码注册的 e2e 需先把 Invitation 迁移 apply 到远程 MySQL(逻辑已被后端 5/5 测试证)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 12:45:16 +08:00
seaislee1209 and Claude Opus 4.8
c0a8582f3b
feat(core): Wave 3.5 前端 — 注册页/登录双态 + 邀请制 API 接线(认证定调:无邮箱)
...
scaffolding: types.ts 加 Invitation 类型;api.ts 加 listInvitations/createInvitation/revokeInvitation +
register() 加 invite_code;route-config AuthMode "login"|"register" + /register 返回 register 态;
App.tsx onModeChange 按 mode 切 /login↔/register URL
auth-screen.tsx(sub-agent):登录+注册双态(按 initialMode 渲染),去掉 /register→/login 强制改写;
注册表单 = 团队名/用户名/密码/确认密码/邀请码(去邮箱!)+ 左价值点 + 协议勾选 + 一致性校验,
有码提示「加入团队」无码「开新团队」;登录补第三方(微信/飞书+OR线)+ 切换行 + lead/mono;登录保持秒进
styles.css:仅加 .auth-* 注册态/第三方/切换行 CSS(restraint token)
验证: tsc 0 · build 0 · 走查 登录(无邮箱/第三方×2/切换/秒进698ms)+ 注册(5字段/0邮箱/0「邮箱」文案)
+ 切换态(URL→/register)全过 · 0 console error
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 12:41:36 +08:00
seaislee1209 and Claude Opus 4.8
9643f9ba5e
feat(core): Wave 3 messages — 详情多动作 actions[](按type推断)+ 静音同类 + 查看日志壳
...
消息中心(sub-agent):inferActions 按 notification_type+priority 推断动作集(task→进入项目/查看日志、
team→查看团队/调整权限、billing→前往充值、system→已了解);固定 归档+静音同类(前端本地 Set 过滤);
查看日志就地展开黑底 mono .msg-log(消费 metadata.log,后端无该字段时显占位「暂无日志」,不造假)
验证: tsc 0 · build 0
⚠️ 需后端补 metadata.log 字段(失败/异常任务原始日志)前端即生效。移交监督。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 12:26:05 +08:00
seaislee1209 and Claude Opus 4.8
378b0a350c
feat(core): Wave 3 batch4 — 外壳账户菜单 + 设置dirty引擎 + 商品创建抽屉多图
...
全局外壳(sub-agent):侧栏 .user 点击弹账户菜单(头像+店名+用户名[非邮箱,认证定调]+
个人设置/消息/团队/消费/退出),复用现成 .shell-account-menu CSS,点外部/ESC 收起
设置页(sub-agent):dirty-state 引擎(baseline+draft diff 13字段,顶栏「保存所有变更」
无改动 disabled、改动激活+N项计数、统一保存、beforeunload、nav dirty-dot);修一处类型错(|| {} → 可选链)
商品创建抽屉(sub-agent):主图多图≤5+.pf-grid缩略网格+单张删、submit主图/卖点必填校验+收编bulletDraft、
上传区拖拽变橙、卖点字重对齐;内联 style 抽进 css
验证: tsc 0 · build 0 · 走查 账户菜单5项+ESC、设置保存按钮无改动disabled、抽屉multiple+pf-grid 全过 · 0 console error
⚠️ 外壳:顶栏头像菜单接线需改 App.tsx/pipeline.tsx(超出单文件范围),侧栏入口已全可用。移交监督。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 05:29:23 +08:00
seaislee1209 and Claude Opus 4.8
da8c6a70a7
feat(core): Wave 3 batch3 — 商品库视图切换/多选/素材三态 + 项目进度条/批量 + 工作台真实KPI
...
商品库+详情(sub-agent):网格/列表视图切换、分类筛选改多选(Set+计数徽标)、素材卡三态pill
(接真实 review_status 循环切换)、采用版本联动素材卡状态+prepend、素材区视图/状态筛选/重置
项目列表(sub-agent):网格卡补 .prog 5段进度条+N/5、失败 pill 修返回 err(原 fail 无定义退化无色)、
批量栏+card-check多选+批量删、镜数/时长用真实字段(缺则降级不造假)、去重复删除入口
工作台(sub-agent):KPI delta 接真实本月新建数(全量未加载则不显)、删无真实源的假delta、
余额用真实冻结/总资金占比、日期改 mono、最近项目镜数用真实 video_segment_count
验证: tsc 0 · build 0 · 走查 视图切换/列表态/分类chip/进度条/批量勾选/KPI 全过 · 0 console error
⚠️ 真实数据缺(未造假,降级处理):非person素材无review_status初值;dashboard无月度预算/上月对比字段。移交监督。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 05:19:32 +08:00
seaislee1209 and Claude Opus 4.8
38f56cb037
feat(core): Wave 3 batch2 — 资产库详情/上传/批量 + AI工具模特库/gen-card/pl-modal
...
资产库(P0,sub-agent):多选+吸底 bulk-bar、资产详情弹窗(立绘+三视图+标签/属性+商品媒体画廊)、
上传 Drawer→居中 Modal(类型分段+按类型字段+拖拽预览)、缺三视图徽标(复用现成类)
AI图片工具(P0,sub-agent):接入现成 ActorLibrary 模特库弹窗、gen-card 三件套(再生成/就地反馈/
已采用绿角标,采用反馈去全局弹窗改就地)、平台套图恢复多选+分组、商品库 pl-modal 选择器(restraint重写)
验证: tsc 0 · build 0 · 走查 资产详情/上传弹窗开关ESC + 模特库/pl-modal 打开 全过 · 0 console error
⚠️ 真实数据缺(未造假):资产「移动到」改分类需 api.updateAsset 支持 category 字段;
详情三视图版本历史 V1 是 mock 无真实源;平台无 platform 字段→前端组织分批。均移交监督。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 05:08:21 +08:00
seaislee1209 and Claude Opus 4.8
0083918207
feat(core): Wave 3 batch1 — 团队页5弹窗 + 账户页充值/筛选/列重排还原
...
团队页(P0,sub-agent):创建账户(role-choice双卡+随机生成+每日/月/总额三档)、
分享凭据(cred-card+单项/一键复制)、编辑成员/重置密码(警示框)/月限额(5预设pill+实时剩余),
全用 TeamModal 外壳 + team-page.css restraint token 重写(不复用 styles.css 旧暖米类)
账户页(P0,sub-agent):充值扫码弹窗(QR占位+金额+赠送+双按钮)、三表 filter-bar、
项目/成员表列重排(role-pill/progress-mini/status-tag),CSS 在 account-page.css
验证: tsc 0 · build 0 · 走查 团队2弹窗(role-choice双卡/三额度/预设)+账户充值弹窗 开关ESC 全过
· 3 筛选条在 · 0 console error
⚠️ 真实数据缺(未造假,已降级):Project 无 owner 字段→账户项目表去「成员+角色」列;
TeamMember 无完成数/最近活跃→去这两列。需后端补字段才能完整还原(移交监督)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 04:51:29 +08:00
seaislee1209 and Claude Opus 4.8
42c3c046ea
feat(core): Wave 1 part2 — 双主题清污染/mono分级/富分页器/hero字重
...
S1 双主题: styles.css Dashboard 区(.recent-row/.shortcut/.tip)迁入 design-restraint.css,
暖米旧 token→restraint(--orange→--heat 等);修 .queue-chip svg --ink-3→--black-alpha-56。
实测 .shortcut .ic 橙 = rgb(250,93,25)=--heat(原泄漏成暖橙 #E55B26)
S2 mono: design-restraint.css 加 .mono-10/11/12(10.5/11/11.5px)工具类(逐页应用并入 Wave 4)
S7 分页器: pager.tsx 加可选 onPageSizeChange(条数循环)/跳页输入/sticky,旧调用方零破坏;
CSS 加 .size-cycle/.jump/.sticky(接线 products/library + 服务端分页放 Wave 3)
S8 hero 字重: 核 V1 实测 account/team hero 数字均 font-weight:700 → account 3 处 + team 2 处
改 700(据实还原 V1 标准答案;记录与 design.md §2.5 的内部不一致)
S6 批量栏共享挪 Wave 3(与 projects/library 重建一起做)
验证: tsc 0 · build 0 · computed-style 橙=heat/字重=700 · pixelmatch account 1.23%/team 2.13%
· 14 路由回归 boot 0 报错 · 登录 639ms
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 04:07:34 +08:00
seaislee1209 and Claude Opus 4.8
74e3c818c5
feat(core): Wave 1 part1 — 浮层进场动画/ESC + Toast 归正 + 账户表横线
...
S4 浮层: overlays.tsx 新增共享 useOverlayTransition(挂载→下一帧上 .show 触发
scale(.96→1)/translateX 进场过渡;关闭先撤 .show 播退场再卸载)+ 统一 ESC 关闭,
应用 TeamModal/ConfirmModal/SuccessModal/Drawer;EmptyPanel 补 .ic-empty 灰 icon
S3 Toast: ToastLike 改用设计系统 .toast(右下/单橙 ic-t/shadow-floating/滑入),
不再随 success/error 变绿红边;auth login-toast → .toast
S9 表格: account-page.css 删 tbody td border-bottom(对照 V1 account.html 确认应无行线)
验证: tsc 0 · 交互走查 toast出现+ESC关弹窗 · 14 路由回归 boot 0 报错 · 登录 643ms
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 03:51:30 +08:00
seaislee1209 and Claude Opus 4.8
8a0ae6a19d
perf(core): Wave 0 性能根因 — 连接复用/视频轮询脏检查/图懒加载/隐藏tab停轮询
...
- settings/base.py: MySQL 加 CONN_MAX_AGE=300 + 健康检查 + connect_timeout=5
(development/production 共用,production 经 from .base import * 继承);development 去重
- App.tsx pollVideosQuiet: 收尾 setProjectDetail 改 JSON 脏检查,在途段未变化时
跳过 setState,整棵管线不再每 5 秒空重渲染(纯前端,不碰生成业务)
- ai-tools.tsx: 任务历史网格+列表两处 img 补 loading=lazy/decoding=async
- pipeline.tsx: 审核(8s)+在途资产(4s)纯读轮询加 document.hidden 守卫
(视频5s轮询驱动生成,保守不加;详见进度文档)
验证: tsc 0 · django check 0 · 14 路由 headless boot 0 报错 · 登录 726ms 无假延迟无邮箱
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 03:36:07 +08:00
seaislee1209 and Claude Opus 4.8
856a93b8a9
docs(audit): UI 还原 + 性能审计报告;修登录假动画延迟
...
- 新增 UI 还原对比报告 / 性能审计报告(2026-06-19,14 块页面 + 6 块性能,逐项 file:line)
- auth-screen: 删除登录成功后 ~1.5s 人为进度动画延迟,凭证验过即进
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 02:07:44 +08:00
seaislee1209 and Claude Opus 4.8
5cfee715a2
feat(core): 脚本交互再打磨 — 点字展开思考 / 一句话主题对话流 / 删除秒删持久队列 / 生成可停止
...
- 思考过程:点整行(不只小箭头)即可展开/收起
- 一句话主题改对话式:确定=确认风格/类型 → 模型主动问主题 → 输入再生成;设定卡「返回」回三选项
- 删除分镜:本地秒删 + localStorage 持久重试队列(扛刷新、网络不好自动重试到删成、绝不回滚)
- 生成中发送键变停止键:AbortController 掐断流(后端检测断连自动释放预扣额度)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 23:32:15 +08:00
seaislee1209 and Claude Opus 4.8
a71be19500
feat(core): 脚本 agent 体感打磨 — skill松绑/对白去重/模型自写收尾/品牌遮罩/删除提速
...
- skill:旁白/对白每镜交给模型按内容判断(去掉「默认旁白·对白按门槛」);visual 加厚撑满15秒
- 脚本 agent:输出协议加收尾交付语 + _closing_summary → summary 事件(替写死的「已生成」)
- 前端:有对白的镜不再重复显旁白;summary 当 AI 气泡;进度时间轴 @keyframes 嵌套失效→移顶层(动画真跑起来)
- 生成遮罩改品牌生成卡(icon-box转圈+标题+动态点+橙扫光条);AI全生确定后不再闪三菜单
- 删除分镜:不再误显改写罩子(拆 rewriteShot);放开「至少保留一个分镜」可删空;删除提速(后端 bulk_update + 前端 liteRefresh)
- 去掉脚本助手标题旁冗余的模型名
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 14:54:33 +08:00
zyc and Claude Opus 4.8
9fce7e8fff
feat(core): 平台套图/模特上身图生成设置加可编辑提示词输入框
...
生成结合提示词出图,默认按商品名预填模板,可自由编辑
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-18 14:15:06 +08:00
zyc and Claude Opus 4.8
8e18d1c3c6
fix(core): 新建/删除项目后管线永久卡 loading — 旧详情请求晚到冲掉新项目
...
根因:action() 操作后 refreshProjectDetail() 闭包持旧 activeProjectId,
新建项目导航到 B 后,先发的旧项目详情 200 晚到把 projectDetail 冲回旧项目,
projectDetail.id≠activeProjectId → pipelineProject 变 null → 永久卡 loading(接口全 200 也卡)。
- refreshProjectDetail / 视频轮询 回写前用 activeProjectIdRef 校验 id 一致才 set,丢弃晚到旧响应
- 删除当前激活项目时清空 activeProjectId/projectDetail,杜绝拿已删 id 拉详情的 404 循环
- 详情拉取失败自动退避重试 3 次,404/403 即落错误态;仍失败给「重试/返回项目列表」,不再无限 loading
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-18 12:00:44 +08:00
seaislee1209 and Claude Opus 4.8
4c21d85ba1
feat(core): 脚本 agent 真流式思考动画 + 场景图16:9 + 资产卡/审核标修复 + 模型收敛
...
- 进度区改竖线时间轴:推理模型 reasoning_content 逐字转发(volcano),状态字=模型实时最新一句+秒数+折叠展开思考全文(替代旧 ProgressStream/ThinkingStream)
- 场景基础资产出图改 16:9(run_base_asset_task size + 提取提示词横屏)
- 已出图立绘主卡不再被在途轮询任务误盖转圈
- 审核态随项目详情持久下发(BaseAssetGroup.adopted_asset_review),刷新不丢徽章
- 设定卡加「← 返回」回三选项;模型选择器固定按 created_at 排序(默认豆包2.0Pro)
- 新增 reasoning 转发回归测试
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 11:25:13 +08:00
zyc and Claude Opus 4.8
326c34ecd1
fix(core): 资产详情大图随数据显示,缩略图已出大图不再卡转圈
...
- 三视图/立绘大图改为跟数据(url)走,出图完成即显示,不再被在途轮询的
busy 标志挡住——根治「小缩略图已出、大图一直转圈」
- 一并带上工作区其余改动(script_agent / services / tests / ai-tools / actor-library / App)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-18 10:57:02 +08:00
zyc and Claude Opus 4.8
bd719041a5
fix(core): 新建项目选商品卡封面锁 1.4:1 高度,竖图/截图不再拉伸卡片
...
object-fit:cover 裁切 + overflow 隐藏,对齐商品库网格做法
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-18 09:22:23 +08:00
seaislee1209 and Claude Opus 4.8
c3306bcac3
fix(core): 交叉验证修复 — 单镜改稿按 DB 真实镜数(防截镜误扣)+ 模型框点外关闭选择器
...
critical:regenerate_segment_via_agent 改用 _draft_from_version 从 DB ScriptSegment 行重建基准稿(原读 stale content,用户增删镜后 normalize 会按 stale total_duration 截掉真实镜还照扣费)。低危:模型框容器补 chat-model-pick class,点外关闭选择器生效。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 22:17:47 +08:00
seaislee1209 and Claude Opus 4.8
03e7949307
feat(core): 模型选择框换 restraint chip 下拉 + worker 并发出图(修 -P solo 串行)
...
UI:脚本助手模型框从『原生 select + inline style』换成复用设计系统的 chip 下拉(向上展开,新增共享 .align-up 变体),去 inline、合规范。并发:本地 worker 从 -P solo(单任务串行=一次只生成一张)改 -P threads -c 4;生产 k8s worker --concurrency 2→4。基础资产/故事板/视频出图可并行。loading 动画基础设施(卡内+全局 spinner)已验证存在。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 22:17:47 +08:00
seaislee1209 and Claude Opus 4.8
1ecb186ddf
refactor(core): 脚本收口——只留 agent 出稿,删旧散文路 + 单镜重跑改走 agent
...
删 /generate-script/ 端点 + generate_project_script + build_script_prompt + 旧单镜 build_segment_rerun_prompt;前端删静默兜底(agent 失败明确报错,不再掉回旧路)+ onGenerateScript prop/api。rerun-script-segment 改用 agent 单镜逻辑(regenerate_segment_via_agent:读全脚本上下文/保留其余镜/落新版本)。根因:旧路不产 script_entities/entity_refs,下游故事板/视频参考图断线→图飘。测试:删 3 个旧 generate 用例 + 重写 rerun 为 agent 版,ai+projects 23 测试除 4 个既有 base-asset 失败外全绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 22:16:01 +08:00