Compare commits
2 Commits
41e71d3865
...
f1137cc006
| Author | SHA1 | Date | |
|---|---|---|---|
| f1137cc006 | |||
| d1e2b1785e |
1
RULES.md
1
RULES.md
@@ -16,6 +16,7 @@
|
||||
## 部署事实
|
||||
- 平台:VPS `76.13.31.179`(Ubuntu 24.04 / Docker Compose / Coolify Traefik)
|
||||
- 发布状态:已部署并验证(2026-05-20,主体元素按套图文件夹分组展示,主体生成接口提交后立即返回 queued 占位并后台逐视角生成、逐张回填;源视频工作区主体链路为上方竖向参考帧池 + 宽幅对话式转换层、下方主体元素结果栏;转换层通过参考帧 `+` 加入、参考图分析、生图对话、英文 prompt 弹窗确认后才触发主体套图生成;下方主体元素结果栏的套图输出、轮询、文件夹分组、单张重生、删除和 hover 预览逻辑保持不变;胶片双击/拖拽加入参考帧池 + 胶片缓存复用 + 音频解析失败可重试,参考帧缩略图保持小尺寸 9:16 比例 + hover 左侧紧凑预览,旧主体模板区移出主路径 + 逐句时间轴移到原版视频下方并支持双行文案 + 波形同框时间对齐画面胶片 + 胶片密度按钮上移波形顶部 + 去分隔线 + 胶片上下错落 + body 顶层原位大放大 + 隐藏源视频工作区音频解析摘要卡 + 隐藏工作区顶部状态提示条 + 三字段候选生成工作流 + 折叠紧凑候选区);`https://marketing.skg.com` 已启用应用内登录页,未登录 API 返回 401,认证后首页 200;容器内 `/health` 返回 `ok:true`
|
||||
- 最近部署验证(2026-05-20):`d1e2b17` 已通过 `./scripts/deploy-prod-safe.sh` 部署到 `/opt/skg-marketing-studio`;部署前备份为 `/opt/skg-marketing-studio-backups/skg-marketing-preserve-20260520134529.tgz`,生产 Docker 重建后脚本内验证通过(`web:/login/ 200`、`web:/api/health 401`、`api:health ok`)。线上登录后 Playwright 以 2048x1060 复测转换层:内嵌“待确认提示词”卡和黑色“确认并生成 N 张”按钮均不再渲染,页面无客户端异常;有待确认 prompt 时只在“生成要求”标题右侧显示小型“待确认 · N 张”入口,验证截图 `/tmp/skg-conversion-no-inline-confirm.png`。
|
||||
- 最近部署验证(2026-05-20):`caa7b73` 已通过 `./scripts/deploy-prod-safe.sh` 部署到 `/opt/skg-marketing-studio`;部署前备份为 `/opt/skg-marketing-studio-backups/skg-marketing-preserve-20260520132820.tgz`,生产 Docker 重建后脚本内验证通过(`web:/login/ 200`、`web:/api/health 401`、`api:health ok`)。线上登录后 Playwright 以 2048x1060 复测:页面无客户端异常,源视频工作区已撤销“布局调节”按钮和 `localStorage["skg-source-workspace-layout:v1"]` 布局读写,固定为左侧原视频列 380px、9:16 视频高 500px、逐句时间轴最大高 270px、参考帧池 140px、转换层 500px 内部滚动、主体空态 78px;验证截图 `/tmp/skg-layout-fixed-no-tuning.png`。
|
||||
- 最近部署验证(2026-05-20):`0db265f` 已通过 `./scripts/deploy-prod-safe.sh` 部署到 `/opt/skg-marketing-studio`;部署前备份为 `/opt/skg-marketing-studio-backups/skg-marketing-preserve-20260520131649.tgz`,生产 Docker 重建后脚本内验证通过(`web:/login/ 200`、`web:/api/health 401`、`api:health ok`)。线上登录后 Playwright 打开历史任务并展开“布局调节”:面板显示左列宽、视频高、时间轴高、参考池宽、转换层高、主体空态 6 个滑杆,调参值写入 `localStorage["skg-source-workspace-layout:v1"]`,供用户先在线试比例再固化默认值。
|
||||
- 最近部署验证(2026-05-20):`5bffd63` 已通过 `./scripts/deploy-prod-safe.sh` 部署到 `/opt/skg-marketing-studio`;部署前备份为 `/opt/skg-marketing-studio-backups/skg-marketing-preserve-20260520123949.tgz`,生产 Docker 重建后脚本内验证通过(`web:/login/ 200`、`web:/api/health 401`、`api:health ok`)。线上登录后 Playwright 复测 1440x900 与 2048x1060:历史任务加载后转换层占据主操作宽度,主体元素下移为转换层下方的紧凑结果栏,未再出现右侧三栏挤压;滚动到主体元素位置后仍能看到下方分镜工作台承接。
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -3936,9 +3936,12 @@ function SourceSubjectPipeline({
|
||||
const effectiveAgentViews = subjectViewsForQuantity(effectiveAgentQuantity)
|
||||
const effectivePrompt = (agentPrompt || subjectAgent?.generation_prompt_en || "").trim()
|
||||
const effectiveRequirement = (subjectAgent?.requirements_zh || agentRequirement).trim()
|
||||
const requirementSummary = effectivePrompt
|
||||
? "提示词已生成,请在确认弹窗里检查后出图;需要改动时直接继续发送消息。"
|
||||
: effectiveRequirement || "按当前参考图和保留元素生成。"
|
||||
const agentUserMessageCount = agentMessages.filter((message) => message.role === "user").length
|
||||
const agentHiddenAssistantCount = agentMessages.length - agentUserMessageCount
|
||||
const agentSummaryVisible = Boolean(effectiveRequirement || selectedAgentTraits.length || agentMessages.length)
|
||||
const agentSummaryVisible = Boolean(effectivePrompt || effectiveRequirement || selectedAgentTraits.length || agentMessages.length)
|
||||
const canGenerateAgentPack = effectiveAgentMode === "custom"
|
||||
? Boolean(effectiveRequirement || agentReferenceFrames.length)
|
||||
: agentReferenceFrames.length > 0
|
||||
@@ -4209,9 +4212,21 @@ function SourceSubjectPipeline({
|
||||
<MessageSquare className="h-3.5 w-3.5 text-cyan-100/55" />
|
||||
生成要求
|
||||
</span>
|
||||
<span className="text-[9px] text-white/34">
|
||||
{reconstructionModeConfig(effectiveAgentMode).label} · {effectiveAgentQuantity} 张
|
||||
</span>
|
||||
{effectivePrompt ? (
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setPromptConfirmOpen(true)}
|
||||
disabled={!canGenerateAgentPack || subjectBusy || agentModeRunning}
|
||||
className="inline-flex h-6 items-center gap-1 rounded-md border border-[#d6b36a]/28 bg-[#d6b36a]/[0.075] px-2 text-[9px] font-semibold text-[#f4dc88] transition hover:border-[#d6b36a]/48 hover:bg-[#d6b36a]/12 disabled:cursor-not-allowed disabled:opacity-40"
|
||||
>
|
||||
<Check className="h-3 w-3" />
|
||||
待确认 · {effectiveAgentViews.length} 张
|
||||
</button>
|
||||
) : (
|
||||
<span className="text-[9px] text-white/34">
|
||||
{reconstructionModeConfig(effectiveAgentMode).label} · {effectiveAgentQuantity} 张
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
<div className="min-h-[86px] flex-1 overflow-auto rounded border border-white/8 bg-black/20 p-1.5">
|
||||
{agentSummaryVisible ? (
|
||||
@@ -4219,7 +4234,7 @@ function SourceSubjectPipeline({
|
||||
<div className="rounded-md border border-cyan-200/12 bg-cyan-300/[0.06] px-2 py-1.5">
|
||||
<div className="text-[9px] font-semibold text-cyan-50/62">当前要求</div>
|
||||
<p className="mt-0.5 line-clamp-3 text-[10px] leading-snug text-white/64">
|
||||
{effectiveRequirement || "按当前参考图和保留元素生成。"}
|
||||
{requirementSummary}
|
||||
</p>
|
||||
</div>
|
||||
{selectedAgentTraits.length ? (
|
||||
@@ -4315,24 +4330,6 @@ function SourceSubjectPipeline({
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{effectivePrompt ? (
|
||||
<div className="mt-2 rounded-md border border-[#d6b36a]/24 bg-[#d6b36a]/[0.075] p-2">
|
||||
<div className="flex items-center justify-between gap-2">
|
||||
<span className="text-[10px] font-semibold text-[#f4dc88]">待确认提示词</span>
|
||||
<span className="text-[9px] text-white/42">{effectiveAgentViews.length} 视图</span>
|
||||
</div>
|
||||
<p className="mt-1 line-clamp-4 text-[9.5px] leading-snug text-white/58">{effectivePrompt}</p>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setPromptConfirmOpen(true)}
|
||||
disabled={!canGenerateAgentPack || subjectBusy || agentModeRunning}
|
||||
className="skg-primary-action mt-2 inline-flex h-8 w-full items-center justify-center gap-1.5 px-2 text-[10.5px] font-semibold transition disabled:cursor-not-allowed disabled:opacity-40"
|
||||
>
|
||||
<Check className="h-3.5 w-3.5" />
|
||||
确认并生成 {effectiveAgentViews.length} 张
|
||||
</button>
|
||||
</div>
|
||||
) : null}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user