fix(core): 测试清单 行24/28-39/46 — 流水线脚本&资产/消息页 + 单镜重跑后端接口

前端流水线(pipeline.tsx):脚本助手三选项指引(AI全生/一句话/自带脚本)+来源风格推荐;
风格/人物设定卡并持久化到 project.metadata;Enter发送/Shift+Enter换行;长文折叠10行;
生成进度流提示;分镜人物/场景标签可编辑并持久化+点击添加分镜;单镜重跑/删除即时反馈;
脚本助手记录按项目 localStorage 持久化;Stage2 基础资产补替换/重跑/可编辑提示词;
三视图采用弹窗+缺三视图气泡。
消息页(messages):复用全站 .search-inline 搜索框、去掉小标题背景方块。
视频项目(projects):列表按创建时间倒序,新建置顶。
性能:action 改后台 hydrate,消除创建/确认后白等(行29/37)。

后端(projects/ai):新增单镜 AI 重跑接口 POST /projects/{id}/rerun-script-segment/
(regenerate_script_segment 服务,复用 AITask+计费 reserve/charge/release;+2 单测)。

前端 build 通过;后端 check 0/无新迁移/apps.projects 14 测试通过。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
zyc
2026-06-16 16:51:32 +08:00
co-authored by Claude Opus 4.8
parent f7a403ead3
commit 9be2042520
11 changed files with 703 additions and 60 deletions
+16 -22
View File
@@ -45,11 +45,13 @@
gap: 10px;
padding: 14px 16px;
border-bottom: 1px solid var(--border-faint);
background: transparent;
}
.msg-panel-h .ti {
font-size: 13px;
font-weight: 600;
color: var(--accent-black);
background: none;
}
.msg-panel-h .mono {
margin-left: auto;
@@ -95,36 +97,28 @@
font-size: 12px;
letter-spacing: .02em;
}
.msg-search {
position: relative;
.msg-search-wrap {
padding: 0 14px 12px;
border-bottom: 1px solid var(--border-faint);
}
.msg-search svg {
.msg-search-wrap .search-inline {
position: relative;
}
.msg-search-wrap .search-inline svg {
position: absolute;
left: 26px;
top: 10px;
width: 13px;
height: 13px;
color: var(--black-alpha-48);
left: 12px;
top: 50%;
transform: translateY(-50%);
width: 14px;
height: 14px;
color: var(--black-alpha-56);
pointer-events: none;
z-index: 2;
}
.msg-search input {
width: 100%;
.msg-search-wrap .search-inline input.input {
padding-left: 36px;
height: 34px;
padding: 0 12px 0 32px;
border: 1px solid var(--border-faint);
border-radius: var(--r-md);
background: var(--background-lighter);
color: var(--accent-black);
font-family: inherit;
font-size: 13px;
outline: none;
}
.msg-search input:focus {
background: var(--surface);
border-color: var(--heat-40);
box-shadow: inset 0 0 0 1px var(--heat-40);
}
.msg-list {
flex: 1;