Files
ttstd-infinite-canvas/docs/content/docs/progress/pending-test.mdx
ddCat ae0fddaac5 feat(admin): 存储管理 - 支持批量引用校验与事务化删除
Adapted from ddcat-ai/open-ai-canvas#339

Original commit: fcdbe2aa833f31f683f709b7f409a0534ed78e20

Refs #339

Co-authored-by: 宇熙 <101980758+yuxiwl@users.noreply.github.com>
2026-08-29 15:40:40 +08:00

475 lines
48 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 待测试
description: 影策已实现功能的手工验证清单与未确认边界
---
# 待测试
## 短剧分镜工作流 v2
- [x] 后端新增镜头版本、镜头产物和生产任务上下文;分镜修改与资产版本变更会局部将旧产物标记为 `stale`,专项测试通过。
- [x] 短剧工作流调整为“剧情与章节 → 资产拆分 → 分镜脚本 → 黑白动作预演 → 视频生成 → 交付与打包”,旧 v1 实例保留,新章节使用 v2。
- [x] 项目工作台新增独立分镜工作流路由,支持初始化章节流程、新增镜头、保存分镜版本、绑定资产版本、查看预演/视频版本和交付缺失状态;前端生产构建通过。
- [ ] 在真实项目中初始化一个已有章节,确认不会误用旧 v1 工作流,刷新和切换章节后阶段、镜头和当前版本保持一致。
- [ ] 连续保存同一镜头多个版本并绑定不同资产版本,确认只有该镜头的动作预演和视频转为过期,其他镜头不受影响。
- [ ] 使用画布任务和项目任务分别登记镜头产物,确认 `production_task_links` 正确记录 Project、Canvas、Unit、Shot 和 WorkflowStep,且账号归属校验有效。
- [ ] 在浅色、深色、窄屏和常规桌面验证阶段导航、镜头列表、表单、检查器、媒体预览和长章节内容滚动。
- [ ] 当前“资产拆分 AI、多宫格生成提交、批量视频任务、后端交付包”仍是后续阶段,界面不得显示为已完成或可用。
## 画布生成结果命名
- [x] 快捷键复制节点生成图片后保留 `_copyN`,参数变体生成图片后保留 `A/B/C/D` 版本标识;批量输出追加结果序号。
- [x] 下载文件名继续使用节点标题,因此复制、参数变体和同批多图结果不会再生成相同文件名。
- [ ] 分别使用快捷键复制和“创建参数变体”生成图片,确认生成中、生成完成和刷新画布后标题标识不丢失。
- [ ] 下载原图、复制结果、多个参数变体和同批多图结果,确认浏览器不会再提示同名文件覆盖。
## 视频画面与片段提取
- [x] 视频节点“尾帧截取”已合并为“提取画面”,支持首帧、当前帧、尾帧和最多 30 个自选时间点;批量结果保留来源节点与时间点元数据。
- [x] “截取重生成”已调整为“截取片段”,默认只创建片段素材;可选同时创建待生成节点,但不会自动提交生成任务。
- [x] 多张提取图片会保持全部选中,可继续使用画布现有批量连接能力自行创建并连接生成节点。
- [ ] 在真实视频节点提取首帧、多个中间帧和尾帧,确认画面、时间标记、网格布局、来源连线和多选状态正确。
- [ ] 选择接近重复的时间点、超过 30 个时间点及部分帧解码失败场景,确认去重、上限提示和部分成功反馈正确。
- [ ] 分别验证“只创建视频片段”和“同时创建待生成节点”,确认前者不要求模型,后者创建后不会自动扣费或启动任务。
- [ ] 选中多张提取图片后新建视频生成节点,确认批量连线和手动生成流程可用。
## 画布节点搜索
- [x] 搜索结果改为紧凑媒体行,图片、视频、绘图优先显示真实缩略图,文本节点显示内容片段;素材类型、尺寸、时长、文件大小和模型按可用信息摘要展示。
- [x] 节点新增可持久化创建时间与最后编辑时间;旧画布按项目时间建立迁移基线,素材 URL/尺寸后台恢复不会误记为用户编辑。
- [x] 默认按最近编辑排序,支持节点、章节、镜头、模型和标签搜索,以及方向键选择、Enter 定位、Esc 关闭。
- [ ] 在含图片、视频、音频、绘图、文本、分镜和插件节点的真实画布验证缩略图、摘要、时间和排序;确认失效媒体能降级为类型图标。
- [ ] 在窄屏、常规桌面、浅色和深色主题验证行密度、长标题截断、时间列布局、滚动与键盘焦点。
## 画布素材批量插入与右键菜单动效
- [x] 画布素材库复用既有多选能力,一次确认后按三列网格批量创建节点并选中全部新增节点;本地素材与插件来源共用同一 payload 转换路径。
- [x] 时间线素材入口继续保持单选,图片和文本不会被误当作可直接入轨媒体。
- [x] 右键主菜单、添加节点子菜单、菜单项、图标与箭头已移除位移和缩放动画,只保留淡入、颜色变化与 Spotlight 光影跟随;专项测试、TypeScript 检查与生产构建通过。
- [ ] 在画布空白处右键后缓慢移动光标经过各菜单项,确认菜单、文字、图标和箭头位置稳定,光影仍跟随光标,主菜单与子菜单打开时不跳动。
- [ ] 从画布工具栏和右键菜单分别打开素材库,混选图片、视频、音频、文本及插件来源素材,确认一次插入全部节点、顺序稳定、节点不重叠且全部保持选中。
- [ ] 从时间线打开素材库,确认仍只能单选;音视频可直接入轨,图片或文本会保留弹窗并显示明确错误。
## 画布本机 Agent 连接教程
- [x] 未连接、连接中和连接失败时,Agent 对话正文由连接教程替代;连接成功后自动恢复原聊天或历史区域,不清空消息和线程状态。
- [x] 教程按 macOS/Linux 与 Windows 生成安装、构建和启动命令,并将当前网页 Origin 写入 `FRAMEFIELD_TRUSTED_WEB_ORIGINS`;命令生成专项测试、前端类型检查与生产构建通过。
- [x] 页面明确区分网页侧边栏 Codex、外部 Codex/Claude Code MCP 与尚未验证的 Hermes/WorkBuddy,不再把 Codex 插件误写成本机侧边栏前置条件。
- [x] 画布全局 `Cmd/Ctrl+C` 在存在真实文字选区时交还浏览器处理,不再把 Agent 消息、日志或 Markdown 文本复制误判成节点复制;快捷键边界专项测试通过。
- [ ] 在 Windows、macOS 和 Linux 分别复制并执行教程命令,确认 Runtime 能连接当前线上 Origin,平台自动识别和手动切换均正确。
- [ ] 在未连接、自动重试、Origin 未授权、连接成功和运行中断后重连状态下验证教程与对话区域切换;确认原消息、历史会话和待确认工具调用不丢失。
- [ ] 在 360px 窄面板、常规宽度、浅色和深色主题下确认命令块可横向滚动、复制按钮可见、教程不遮挡画布。
- [ ] 在 Agent 回复、运行日志、代码块和普通 Markdown 中分别框选文字后使用右键复制及 `Cmd/Ctrl+C`,确认系统剪贴板内容正确;无文字选区时 `Cmd/Ctrl+C` 仍复制所选画布节点。
## 画布复制粘贴命名
- [x] 节点首次复制粘贴使用“原名称_copy1”,后续按当前画布已有最大序号递增。
- [x] 复制已有 `_copyN` 副本时回到原始名称计算,避免生成 `_copy1_copy1`;旧版空格 `Copy` 后缀已有兼容测试。
- [ ] 在画布中连续粘贴单个节点、多个同名节点和包含子节点的背板,确认名称依次递增且节点关系不变。
## 画布媒体下载文件名
- [x] 图片、视频和音频下载统一使用“画布名_节点名_yyyyMMdd.扩展名”,中文名称和跨平台非法字符已有专项测试覆盖。
- [x] 扩展名优先按媒体 MIME 类型判断,并兼容远程 URL 后缀;JPEG、WebM 和 MOV 已有专项测试覆盖。
- [x] 前端 TypeScript 检查与生产构建通过。
- [ ] 在浏览器中分别下载本地上传、生成结果、LibTV 导入和 TapNow 导入的图片与视频,确认文件名、日期和实际媒体格式一致。
- [ ] 在同一天重复下载同名节点,确认浏览器的重名处理不会覆盖用户已有文件。
## 创作输入区参考内容管理
- [x] 自动化覆盖首个、中间和末尾参考内容按稳定 ID 独立删除,且删除后其余顺序保持不变。
- [x] 折叠态提供明确的“查看全部”入口,展开态提供图片、视频、音频、文件筛选、清空全部和收起入口。
- [x] 在桌面浏览器验证上方“参考内容”打开素材选择、折叠堆叠态中间卡片删除、展开态任意卡片删除、筛选、拖动排序和收起。
- [ ] 在真实登录数据下验证“清空全部素材”同步移除全部附件引用,不影响技能引用和素材库原始文件。
- [ ] 在触屏及窄窗口验证删除按钮无需悬停也可见,素材轨道可横向浏览且不会遮挡提示词和底部控制区。
## Agnes Video 2.5 JSON 协议
- [x] 前端专项测试确认 Agnes 创建请求使用 `application/json`,不再发送 `input_reference[]`、`resolution_name`、`preset` 或像素型 `size`。
- [x] 后端专项测试确认内置 `host:agnes-video` 插件直接进入 Agnes JSON 协议执行器,不再回退到 OpenAI 风格 multipart;旧渠道能力读取时会收紧为官方 4–12 秒和 720P/960P/2K 档位。
- [x] Agnes 插件升级到 `1.2.0`:公共层像素画幅(如 `1280x720`)只转换为 `aspect_ratio: "16:9"`,公共层分辨率(如 `720`/`720p`)只转换为 `size: "720P"`,不再把两类字段混用。
- [x] 后端专项测试确认自定义渠道和系统渠道均允许官方 `/agnesapi?video_id=...&model_name=...` 轮询,并将该路径转发到 Agnes 主机根路径。
- [x] Agnes 完成态兼容 2.5 的 `metadata.url` 与 V2.0 的顶层 `url`;前端 provider 和后端协议专项测试均已覆盖。
- [ ] 使用真实 Agnes API Key 分别验证文生视频、单张首帧、三张图片 reference、视频/音频 reference;确认 `metadata.url` 可播放并且失败信息可见。
- [ ] 使用 Agnes Video V2.0 完成一次真实任务,确认顶层 `url` 能进入视频资源保存流程,不再报“没有 metadata.url”。
- [ ] 在系统渠道中验证 4 秒与 12 秒边界、720P/960P/2K、横竖画幅,以及 2.5 Flash 的 720P/最多 5 图/不支持视频限制。
## 画布生成按钮价格
- [x] 系统渠道价格按当前 operation、分辨率、时长、图片数量、质量和画幅匹配价格档,并按图片数量或视频秒数计算本次积分;逻辑前台模型继续使用后端报价。
- [x] 画布生成按钮改为价格与圆形生成操作一体式胶囊,保留完整无障碍标签;价格匹配专项测试与前端生产构建通过。
- [ ] 在画布中分别选择按次图片模型、按秒视频模型和前台逻辑模型,确认修改数量、时长、分辨率和参考素材后价格立即更新且与实际账单一致。
- [ ] 在浅色/深色主题及生成中、禁用状态下确认胶囊价格可读、圆形操作区清晰且不挤压模型与参数控件。
## 系统渠道默认积分价格
- [x] 新建渠道模型默认使用“所有规格统一价格”,管理员只需填写一次积分;1K/2K/4K、画幅和生成方式差异定价收进可选的“按规格定价”。
- [x] 系统渠道直连、前台逻辑模型按渠道计价和失败切换线路均按任务实际规格匹配价格档;缺失价格档 ID 不再被误转成 `"<nil>"`。
- [x] 后端全量测试、价格表单专项测试和前端生产构建通过。
- [ ] 在 `/admin/channels` 新建图片和视频模型,仅填写统一价格后分别生成不同质量、尺寸、分辨率和时长,确认都命中默认价格。
- [ ] 在默认价格之外新增一个 2K 或指定分辨率价格,确认精确规格优先、其他规格继续使用默认价格;关闭“可供用户使用”后该档不再参与匹配。
## 系统渠道模型 Logo
- [x] 后端保存系统渠道模型 Logo,并通过脱敏模型目录下发;前端类型检查与生产构建通过。
- [ ] 在 `/admin/channels` 的模型管理中新增和编辑模型,确认 Logo 可选择、清除并在列表中立即更新。
- [ ] 关闭“前台模型”功能后刷新创作端,确认模型选择器显示系统渠道模型配置的 Logo,浅色和深色主题下均清晰可见。
## 提示词位置型资源引用与缩略图
提示词中的画布连接使用 `@图片N`、`@视频N`、`@音频N`、`@文本N` 等位置型槽位,不再把节点 ID 写入提示词;创作页附件对用户仍显示同类编号,但内部使用稳定附件身份,避免删除中间项后引用错位。以下场景仍需要在浏览器中由用户确认:
- [x] 29 项提示词引用专项测试、TypeScript 检查与生产构建通过。
- [x] 旧 `@[node:节点ID]` 仅做读取迁移;新写入、配置组装、故事板物化、Agent 建图和快捷生成均只生成位置型引用。
- [x] 图片、视频、音频、文本和角色分别独立计数;生成时按当前连线顺序解析槽位,删除连线不再删除提示词。
- [x] 只有 `storageKey` 的图片/视频引用会异步解析预览地址;生成中按钮使用节点强调色与可见旋转动画。
- [ ] 在画布中连接图片 A 并写入 `@图片1`,删除 A 的连线后连接图片 B,确认提示词不变、缩略图切换到 B、生成请求使用 B。
- [ ] 混合连接两张图片、一段音频和一段文本,确认标签依次为 `@图片1`、`@音频1`、`@图片2`、`@文本1`,调整不同类型的连线不会串号。
- [ ] 打开包含旧 `@[node:...]` 的画布节点,确认面板自动迁移成可见位置标签,保存和后续编辑不再出现节点 ID。
- [ ] 使用只有 `storageKey`、没有 `content` 的本地图片和服务端资源图片,确认顶部参考栏、行内引用和放大预览均能显示。
- [ ] 点击生成,确认按钮保持节点强调色并显示连续旋转动画,不再出现纯红色空圆。
- [ ] 在 `/create` 添加至少三张参考图,并在提示词中重复引用 `@图片2`;拖动参考内容轨道中的另一张图片覆盖行内缩略图,确认提示词文本保持不变且所有 `@图片2` 缩略图同步刷新。
- [ ] 从本机拖入图片覆盖行内缩略图,确认上传期间不能发送,上传成功后原编号保持,上传失败时旧图和旧提示词不变。
- [ ] 分别测试图片模式、视频模式和文本模式,确认只有图片引用可成为替换目标,视频、音频、文件和技能引用不会误触发。
- [ ] 替换一个已经位于参考轨道中的图片,确认附件不会重复,其他引用仍指向正确素材。
- [ ] 确认浅色/深色主题、窄窗口和同一图片多次出现时,拖入高亮与“替换”遮罩清晰且不遮挡相邻文字。
## 已有图片节点图生图引用
- [x] 已有图片节点显式使用 `@图片1` 时会把节点自身作为参考图提交;未显式引用时仍保持文生图语义。
- [x] 无法解析的 `@图片N`、`@视频N`、`@音频N` 等画布引用会在提交前报错,不再静默丢失素材。
- [x] 后端专项测试确认 OpenAI Images 图生图使用 `POST /v1/images/edits` 和 `multipart/form-data`,并携带图片文件、模型、提示词、尺寸及响应格式。
- [ ] 在线上画布打开一张已有图片,输入“将 `@图片1` 图片变清晰”并生成,确认任务日志包含参考图、请求路径为 `/v1/images/edits`、Content-Type 为 `multipart/form-data`。
- [ ] 在同一图片节点移除 `@图片1` 后再次生成,确认请求恢复为 `/v1/images/generations`,不会隐式携带旧图片。
## 画布图片与音频组合的视频模型选择
- [x] 图片或角色与音频组合时继续按 `image_to_video` 匹配,音频仅作为附加参考;纯音频仍按 `audio_to_video`,包含参考视频时仍按 `reference_to_video`。
- [x] 模型选择专项测试覆盖“支持图生视频且允许参考音频”的模型,不再错误提示“不支持全模态参考”。
- [ ] 在线上画布只连接一张图片和一段音频,确认支持图生视频与参考音频的视频模型可选择,并能正常提交生成任务。
- [ ] 分别验证纯音频、图片加音频、视频加音频三种输入,确认模型筛选和任务 operation 依次为 `audio_to_video`、`image_to_video`、`reference_to_video`。
用户确认上述场景后,再将对应条目移动到功能文档的已验证范围。
## 工作区、Agent、画布复制、模型配置与创作附件修复
- [x] 前端 TypeScript 检查与生产构建通过;提示词引用、创作附件和侧栏主题专项测试通过。
- [x] 空间工作区与普通页面的左侧菜单统一使用 `--workspace-navigation`,不再随路由切换表面色。
- [x] 本机 Agent 输入框改为 Enter 换行、Cmd/Ctrl+Enter 发送;本轮模型失败会保留原请求快照并提供手动重试,不重复插入用户消息。
- [x] 文本节点展示区支持框选复制,复制文本在 Clipboard API 不可用时使用兼容回退;图片节点右键增加“复制图片”,非 PNG 图片会转为 PNG 后写入系统剪贴板。
- [x] 后台模型配置的章节标题与内容、价格档匹配条件与计费状态均改为上下结构。
- [x] 创作页附件删除按钮隔离 Reorder 拖拽事件;附件引用使用稳定 token,删除第三张不会让第四、第五张引用串位。
- [ ] 在普通列表页、创作页、空间工作区之间切换,确认左侧菜单明暗色调始终一致,折叠与移动端展开状态无闪色。
- [ ] 在本机 Agent 输入多行文本,确认 Enter 只换行、Cmd/Ctrl+Enter 和发送按钮正常提交;模拟模型中途失败后点击“重试本轮”,确认沿用原会话、文本、图片和技能且不重复用户气泡。
- [ ] 在画布文本节点中拖选部分文字并复制;分别右键 PNG、JPEG、服务端 `storageKey` 图片执行“复制图片”,确认可粘贴到系统应用。
- [ ] 在后台打开文本、图片、视频模型配置,确认所有章节为纵向阅读顺序,宽屏和窄屏都没有左右主从栏或价格档竖分隔线。
- [ ] 在创作页上传 5 张参考图,展开后依次删除第 3、5、1 张,确认每张都能就地删除,轨道不触发拖拽,提示词中的其余引用仍指向原附件。
## Agnes AI 官方视频协议
- [x] Agnes 协议已启用,覆盖 `agnes-video-v2.0`、`agnes-video-2.5`、`agnes-video-2.5-flash` 的官方创建字段、状态、失败信息和 `metadata.url` 结果解析。
- [x] 轮询使用同一 Base URL 主机的根路径 `/agnesapi`,专项测试确认 `https://apihub.agnes-ai.com/v1` 不会被拼成错误的 `/v1/agnesapi`。
- [x] Flash 的 720P、最多 5 张图片、禁止参考视频规则已在请求前强校验;协议与 provider service 专项测试通过。
- [ ] 使用真实 Agnes API Key 分别完成 V2.0 文生视频、单图生视频、2.5 关键帧、2.5 reference、2.5 Flash 的创建与轮询冒烟。
- [ ] 验证真实失败任务能显示官方 `error.message`,429/5xx 保持现有上游错误语义,生成成功后视频能进入影策资源保存流程。
用户确认上述场景后,再将对应条目移动到功能文档的已验证范围。
## 插件分层管理
- [ ] 管理员在 `/admin/plugins` 停用官方应用插件后,普通用户的有效状态和新请求同时被阻止;重新开放后保留原个人启用选择。
- [ ] 两个普通用户分别启用和停用同一官方应用插件,确认状态、Eagle 配置和工作流入口互不串号。
- [ ] 普通用户不能切换系统协议或管理员上传插件;关闭“向普通用户显示系统插件”后,两类插件均不可见。
- [ ] 用户停用 RunningHub / ComfyUI 后不能提交新任务,但已接收任务、Bridge 轮询、心跳和结果回传可以完成。
- [ ] 管理员上传、停用、启用和卸载自定义插件后,插件包、平台状态、用户状态与审计日志一致。
- [ ] 验证 `/plugins` 与 `/admin/plugins` 的浅色/深色主题、窄屏、空态、筛选、上传弹窗和开关失败回滚。
## RunningHub 与 ComfyUI Bridge 工作流
- [x] 后端全量测试、前端类型检查、Canvas Agent 构建和原生 Bridge Go 测试通过。
- [x] 工作流插件停用状态覆盖设置入口、画布创建、配置面板、任务创建、管理 API 和 worker 执行校验。
- [x] 覆盖后端重启后请求领取、结果先落库再恢复、原请求 ID 幂等复用,以及 RunningHub API Key 不进入 URL 的自动化测试。
- [ ] 使用真实 RunningHub Workflow 和 App 分别验证参数发现、图片/视频/音频输入映射、提交、轮询、取消和结果下载。
- [ ] 使用真实 ComfyUI API 工作流验证 Bridge 注册、心跳、领取、完成、取消和大文件结果回传。
- [ ] 在 Bridge 执行中重启后端,确认结果回传成功且任务不重复执行;在请求未领取时重启后端,确认原请求继续投递。
- [ ] 验证浅色/深色主题、窄屏设置页、画布工作流节点和任务中心状态展示。
## AI 提示词优化器
当前代码和生产构建已完成,但以下场景仍需要在真实配置和不同窗口尺寸下由用户确认:
- [x] `web` 前端 TypeScript 检查与生产构建通过。
- [x] 优化面板打开、关闭不再等待 Popover 入场或退出动效。
- [ ] 在 `/create` 中分别测试图片和视频模式的打开、发送、取消、失败重试和关闭。
- [ ] 在图片、视频画布节点中测试优化入口、结果采用和原提示词回填。
- [ ] 逐项测试五种优化方式,确认模式切换不会丢失当前输入。
- [ ] 测试优化模型切换,并确认目标生成模型与优化模型显示和请求职责分离。
- [ ] 测试已连接图片、文本参考,以及“结合参考”没有参考内容时的提示和禁用状态。
- [ ] 测试长提示词、长优化结果、滚动、拖动和四边缩放;确认窗口接近边缘时不会跑出视口。
- [ ] 测试浅色/深色主题和窄窗口布局,确认按钮、输入框和结果文本仍可读且可操作。
- [ ] 使用自定义文本渠道实际发送一次,确认渠道、模型和权限配置正确时不会误报“必须指定系统渠道和模型”。
用户确认上述场景后,再将对应条目移动到功能文档的已验证范围。
## 肖像可识别性排查画布插件
首版画布节点、本机签名运行时、本地 ONNX 预检、百度候选链路、模型作业协调器和四种报告导出已接入;以下边界仍需要真实环境确认:
- [x] Agent TypeScript 构建、Web TypeScript 检查通过。
- [x] 本机任务持久化、幂等、取消/重试清理、候选 URL 安全校验和报告转义测试通过。
- [x] Markdown、无脚本 HTML、DOCX 共用检测结论、本地预检、六维特征、修改建议和失败候选说明;报告结构回归测试通过。
- [ ] 使用固定真人/虚拟人图片建立 Python 原实现与 TS 实现的检测框、embedding 和风险金标。
- [ ] 在安装 `det_10g.onnx`、`w600k_r50.onnx` 的 Windows 环境完成直接比对和本地仅模式验证。
- [ ] 在系统 Chrome/Edge 可用环境完成百度识图、验证码、页面结构变化和候选下载失败验证。
- [ ] 配置支持双图输入的项目视觉模型,验证 Path A、Path B、模型租约、并发、取消和页面重开恢复。
- [ ] 浏览器确认插件首次关闭、旧节点只读、明暗主题、窄屏、键盘焦点和候选添加到画布。
用户确认上述场景后,再将对应条目移动到功能文档的已验证范围。
## 画布节点自动整理
自动整理入口和布局提交逻辑已完成,以下场景仍需要在实际画布中手工确认:
- [x] `web` 前端 TypeScript 检查与生产构建通过。
- [x] 画布底部视图控制中显示“自动整理节点”按钮。
- [ ] 无选中节点时,确认多个顶层节点会按连线流程布局;无连线时会按网格布局。
- [ ] 选中节点时,确认只移动选中的可移动节点,未选中节点保持原位。
- [ ] 确认锁定节点、容器节点和折叠批次隐藏子节点不会被移动。
- [ ] 点击“撤销”确认可以恢复整理前的位置,并确认刷新画布后布局仍能保存。
- [ ] 在浅色/深色主题、窄窗口和节点数量较多的画布中确认底部按钮可见、可操作且不遮挡主要内容。
## 分镜脚本资产关联
1. 在同一画布放入角色、场景图片、参考视频和音频后生成分镜,确认各镜头只关联模型返回的真实画布资产,不出现失效或编造 ID。
2. 分镜卡片按“序号、时长、视频提示词、台词/旁白、关联资产”五列显示;图片、视频和音频缩略图可点击并打开对应预览。
3. 从单个镜头及批量入口创建视频节点,确认脚本行输出和每个关联资产都自动连到视频节点,重复同步不会产生重复连线。
4. 打开视频节点提示词,确认关联资产以标准 `@资产` 缩略图展示,生成请求能解析图片、视频和音频引用。
5. 修改镜头资产关联后再次同步,确认已移除的托管资产连线被清理,而用户手工创建的普通连线仍保留。
## 零价免费模型
1. 管理员设置启用系统渠道模型的按次价格为 `0` 后,普通用户刷新设置即可看到并成功创建任务。
2. 前台逻辑模型使用统一按次价格 `0` 后,普通用户可见并能成功创建任务。
3. 零价任务完成后,账单状态为已结算,用户可用积分和预留积分均不变化。
4. 零价 Token 任务在上游未返回 usage 时仍能以 `0` 结算;正价 Token 任务继续依赖 usage 结算。
5. 管理端提交任一负价格仍会被拒绝。
6. 未勾选价格已配置的默认零价模型仍不会向普通用户公开。
## 用户诊断包导出
当前实现已完成前后端链路、脱敏和设置页 UI,但仍需要真实环境验证下载链路和不同错误场景:
- [x] `web` 前端 TypeScript 检查与生产构建通过。
- [x] 诊断服务已覆盖脱敏、ZIP 结构和跨用户任务拒绝测试。
- [x] 设置页桌面布局和 680px 窄屏布局已完成浏览器预览。
- [ ] 登录后从设置页导出成功,确认 ZIP、诊断编号和文件名均可用。
- [ ] 从失败任务详情进入诊断页,确认 `taskId`、`projectId` 和对应日志范围正确带入。
- [ ] 后端未重启或接口未部署时,确认前端能显示可操作的错误提示,而不是原始 Blob/502 文案。
- [ ] 验证浅色/深色主题、15 分钟到 24 小时范围、长问题描述和导出中的 loading 状态。
## Eagle 素材库
- [x] 增加素材无文件夹、无标签时的空集合归一化单元测试。
- [ ] 使用真实 Eagle 服务验证无文件夹素材、无标签素材、文件夹路径和预览引用。
## Windows 本地开发
- [ ] 在一台依赖已安装和一台全新工作区分别运行 `.\scripts\start-local.ps1`。
- [ ] 验证端口被占用时脚本会安全退出,且不会关闭已有进程或使用正式开发数据目录。
## 画布生成结果资源恢复
- [x] `web` 前端 TypeScript 检查与生产构建通过。
- [ ] 模拟图片生成任务已成功但结果下载失败,确认节点显示“重新加载资源”和“重新生成”两个按钮。
- [ ] 点击“重新加载资源”,确认只重新查询并消费原任务结果,不创建新的生成任务或重复扣费。
- [ ] 模拟视频结果落盘/OSS 上传失败后再次加载,确认恢复成功会清除错误状态并保留原任务信息。
- [ ] 点击“重新生成”,确认仍走原有生成重试流程;普通生成失败仍只显示“重新生成”。
## 数据同步与资源删除重构
- [x] 前端远端基线、登录 hydrated 屏障、上传并发编辑和删除持久化回归测试通过。
- [x] Generation 失败只回滚生成字段,保留同节点并发标题编辑;重复 Generation 仍按明确 effect key 幂等。
- [x] 资源引用识别改为显式字段合同,未登记的字段名和自由文本不会被推断为资源引用。
- [x] 后端素材删除改为数据库事务 + `resource_deletion_jobs` Outbox,数据库失败时物理文件保持不动。
- [x] Outbox Worker 本地文件删除、对象不存在幂等成功和失败退避测试通过。
- [ ] 使用真实 OSS 配置验证对象删除成功、权限失败后的退避重试和多实例租约接管。
- [ ] 浏览器真实环境验证登录快照慢响应期间工作区保持不可写,以及删除后立即刷新不复活素材。
## S3 兼容存储
- [x] 后端 S3 单次上传、Range 读取、预签名地址、Session Token、幂等删除、配置版本和迁移清单自动化测试通过。
- [x] 前端 S3 预设、关键字段重测判断、默认 `open-ai-canvas` 路径前缀、TypeScript 检查和生产构建通过。
- [ ] 分别使用 AWS S3、Cloudflare R2、Backblaze B2 和 RustFS 完成写入、Range 读取、删除及历史资源恢复验证。
- [ ] 验证 Path Style 开启时强制路径寻址,关闭时 AWS 使用虚拟主机寻址、其他自定义 Endpoint 自动使用路径寻址。
- [ ] 验证平台切换到本机后只影响新上传,历史 S3 资源仍可读取和删除;个人 S3 停用后正确回退平台存储。
- [ ] 验证同一 S3 修改 Bucket、Endpoint、Region、前缀或 Path Style 时,留空 Secret 和 Session Token 可继续复用,并要求重新连接测试。
- [ ] 使用私网 RustFS 验证浏览器同源代理,以及提交给模型上游时转换为影策公网 HTTPS 短时地址;未配置公网 HTTPS 地址时应明确拒绝。
- [ ] 验证管理员关闭个人 S3 后不再接受个人新上传,但已有个人 S3 资源仍可读取和删除。
## 3D 导演台时间轴关键帧删除与快捷键
关键帧删除入口、全局快捷键和交互控件守卫已接入,以下场景仍需要在浏览器中由用户确认:
- [x] `web` TypeScript 检查、导演台专项测试与全量前端测试通过。
- [x] 关键帧删除覆盖对象 transform、对象骨骼和摄影机三类轨道;未命中时返回同一场景引用,不记历史、不产生修订。
- [x] 时间轴关键帧为可 Tab 聚焦的真实 button;点击或 Enter/Space 只选择并定位播放头,Delete/Backspace 或顶栏删除按钮才删除,避免普通点击误删。
- [x] 所选关键帧可切换保持、线性、平滑缓动;缓动同时作用于对象/摄影机 Transform 与骨骼旋转插值,旧数据默认线性。
- [x] 切换镜头/摄影机或外部删除关键帧后会清除陈旧选择,顶栏缓动和删除控件不会继续修改不可见轨道。
- [x] 全局快捷键在输入框、按钮、链接、role 型控件、可编辑区域及其子元素内一律不解析;仅在动作真正执行时 `preventDefault`。
- [x] 鼠标点选场景对象、dock 工具、模式按钮、快速添加和顶栏图标按钮后会释放焦点,全局快捷键立刻可用;键盘激活(Enter/Space)保留焦点,Tab 序列不断。
- [ ] 在真实画布中记录多个关键帧后逐个删除,确认删除的是目标帧、其余帧顺序不变,且「撤销」能恢复。
- [ ] 折叠对象轨道后仅通过汇总轨删除关键帧,确认收起状态下仍可删除。
- [ ] 用键盘 Tab 走到关键帧上按 Enter/Space,确认只选择并把播放头定位到该帧;再按 Delete,确认删除的是该关键帧而不是整个对象。
- [ ] 对同一段动画依次选择保持、线性、平滑缓动,确认播放结果明显不同,撤销可恢复上一个缓动设置。
- [ ] 选中摄影机关键帧后切换到使用另一台摄影机的镜头,确认旧选择和顶栏缓动/删除控件立即消失。
- [ ] 确认浅色/深色主题下关键帧的悬停环与焦点环可见,命中区易于点中。
- [ ] 逐个验证 W/E/R、Delete/Backspace、H、Escape、Ctrl/Cmd+Z、Ctrl/Cmd+Shift+Z、Ctrl/Cmd+Y 和空格;确认在标题输入框内输入这些字符不会触发快捷键。
- [ ] 在场景列表点选一个对象后直接按 Delete,确认删除的是该对象;再点 dock 的「旋转」后按 W,确认能切回移动。
- [ ] 用键盘 Tab 走到场景对象行按 Enter 选中,确认焦点仍停在该行、可继续 Tab 到下一项。
## 3D 导演台场景模板与四模式骨架
新建场景模板和摆场/姿态/动画/摄影机四个一级模式已接入,以下场景仍需要在浏览器中由用户确认:
- [x] `web` TypeScript 检查、导演台专项测试与全量前端测试通过。
- [x] 导演台 P0 Chrome E2E 全部通过;场景 A 已同步为「默认摆场不显示时间轴与 AutoKey,切到动画模式后 AutoKey 默认关闭」。
- [x] 五个模板结构确定、每次实例 id 独立、对象 XZ 占位两两不相交,判据与 `resolveDirectorPlacement` 一致。
- [x] 空场景不含任何演员;未知模板 id 回落到空场景。
- [x] 模板不改动 `DirectorScene` 结构与 `version`;`mode` 只存在于工作台 store,不写入场景。
- [x] 离开动画模式会停止播放并关闭 Auto Key,并把渲染视图夹回当前模式允许的集合。
- [x] 动画模式会根据 Transform 关键帧绘制可见演员与摄影机的空间轨迹,包含起终点、方向和当前播放进度;隐藏演员及零长度轨迹不显示。
- [x] 播放头按镜头 FPS 而非固定 60 次/秒更新,跨过镜头末尾时保留余量;轨迹长度只在对象/摄影机内容变化时重算。
- [x] 「按运镜生成轨迹」只更新首尾关键帧,保留手工中间帧、关键帧 ID 与 easing,并提示切到动画模式继续编辑。
- [x] 截图/录制绑定开始时的场景快照;上传完成后重新核验节点与镜头,并只把预览引用合入最新场景,不用旧快照覆盖并发编辑。
- [ ] 从工具栏和画布右键菜单分别新建镜头,确认都会先弹出模板选择,且右键位置会作为新节点位置。
- [ ] 逐个使用五个模板新建镜头,确认空场景没有演员,单人/双人/走位演员数量正确,产品镜头含产品主体、背景板和侧面道具且没有演员。
- [ ] 确认双人对话两名演员面对面、走位三名演员互不重叠、产品镜头道具不穿模。
- [ ] 打开一个已保存的镜头,确认不弹模板选择、场景内容未被改写。
- [ ] 在摆场模式确认时间轴、Auto Key、记录关键帧、骨骼与姿势预设、深度/法线视图都不可见。
- [ ] 在姿态模式选中演员,确认骨骼与姿势入口出现;未选中演员时不出现;确认不会自动产生关键帧。
- [ ] 在动画模式开启 Auto Key 并开始播放,再切到其他模式,确认播放停止、Auto Key 关闭,且场景没有被继续写入关键帧。
- [ ] 在动画模式为演员和摄影机分别记录至少两枚位置不同的 Transform 关键帧,确认轨迹、起终点、方向锥和当前进度点可见;隐藏演员后其轨迹同步消失,离开动画模式后全部轨迹消失。
- [ ] 在摄影机模式确认右栏固定显示镜头/摄影机检查器,对齐视图与运镜可用,深度/法线视图可选。
- [ ] 在摄影机已有关键帧且播放头不在 0 秒时执行「摄影机对齐当前视图」,确认当前帧立即保持新机位,旧关键帧仍在且撤销可恢复。
- [ ] 在摄影机已有首尾帧和至少一枚带缓动的手工中间帧时执行「按运镜生成轨迹」,确认只更新首尾位置,中间帧、缓动与撤销历史都保留。
- [ ] 开始截图或白膜录制后切换活动镜头、删除源节点或继续编辑场景,确认旧输出被拒绝或安全合并,不写进另一项目、不复活节点、不覆盖新编辑。
- [ ] 确认模式切换不丢失草稿、撤销历史和保存状态,切换后标题与保存指示器仍正确。
- [ ] 确认浅色/深色主题下模式按钮的选中态、悬停态与焦点环可见,选中态不是主操作色。
- [ ] 在窄窗口(小于 lg 断点)确认模式切换仍可见可点击。
用户确认上述场景后,再将对应条目移动到功能文档的已验证范围。
## 3D 导演台取景模式(3D/CAM/五个正交视图)
新增 `viewMode`(自由/机位/顶前后左右五个正交轴向)取景切换,独立于摆场/姿态/动画/摄影机四个一级模式;以下场景仍需要在浏览器中由用户确认:
- [x] `web` TypeScript 检查通过;`director-view-modes.test.ts`、`director-modes.test.ts`、`director-template-mode-wiring.test.ts` 专项测试通过。
- [x] 三台相机对象(自由观察、机位、正交)互相独立持有,切换 `viewMode` 只挪动视口的活动相机指针,源码层面确认不共享可变状态。
- [x] 正交轴向使用真正的 `THREE.OrthographicCamera`,取景来自场景内容包围盒,而非把透视相机换个角度伪装;取景解算与视口接线均有专项测试覆盖退化场景(空场景、非法数值)。
- [ ] 逐个切换 3D/CAM/顶视/前视/后视/左视/右视,确认画面确实是对应视角,正交视图没有透视畸变。
- [ ] 放入大比例背景板和旋转后的长道具,逐个切换正交视图,确认对象完整进入画面,不再因只按对象中心构图而裁切。
- [ ] 在自由视角环绕后切到机位或任一正交视图,再切回自由视角,确认之前的环绕位置原样恢复,没有被拉回默认机位。
- [ ] 在机位视图播放/拖动时间轴,确认摄影机运镜正确预览;切到正交视图确认环绕已锁定、拖拽无效。
- [ ] 确认取景切换器(3D/CAM/TOP/FRONT/BACK/LEFT/RIGHT 七个按钮)可键盘 Tab 到达、Enter/Space 激活,`aria-pressed` 状态正确朗读。
- [ ] 确认切换取景模式不产生新的撤销历史记录,也不触发保存/未保存提示。
- [ ] 在机位或正交视图下点击「导出预览图」「录制白膜视频」,确认导出流程仍正常完成(不因当前相机是正交投影而失败)。
- [ ] 确认浅色/深色主题下取景切换器的选中态、悬停态与焦点环可见。
- [ ] 在窄窗口(小于 lg 断点)确认取景切换器仍可见可点击,不与其他浮层重叠遮挡。
用户确认上述场景后,再将对应条目移动到功能文档的已验证范围。
## 3D 导演台首次引导与窄屏属性面板
首次引导已接入真实登录用户 scope,并按 Issue #305 改为“添加演员 → 移动 → 调姿 → 轨迹 → CAM → 应用”六步;以下场景仍需要浏览器确认:
- [x] 引导进度按认证用户 ID 隔离,不回落 guest;重启入口在加载期间也可用,重置失败会重新读取原进度。
- [x] 已跳过或已结束的引导可从标题栏重新开始;最后一步使用“结束引导”中性文案,不宣称用户已经完成实际任务。
- [x] 小于 `lg` 断点时右侧属性区移动到工作区下方且可滚动,不再直接隐藏姿势与骨骼控制。
- [x] `director-onboarding.test.ts` 专项测试与 `web` TypeScript 检查通过。
- [ ] 使用两个真实账号分别推进、跳过和重启引导,确认进度互不串号;切换账号时旧读取结果不会闪现。
- [ ] 从新账号首次打开导演台,逐步完成添加演员、移动、姿态、两枚 Transform 关键帧、CAM 构图与应用,确认六步文案都指向真实可见入口。
- [ ] 在引导加载期间连续点击“重新开始引导”,再模拟 IndexedDB 写入失败与恢复,确认界面不会永久隐藏或假装推进。
- [ ] 在窄窗口检查摆场、姿态、动画、摄影机四种模式:标题栏可横向到达,底部属性面板可滚动,时间轴与引导不互相遮挡。
用户确认上述场景后,再将对应条目移动到功能文档的已验证范围。
## 模型请求失败日志完整性
模型请求日志已补齐 HTTP 失败关联、错误搜索与请求前失败兜底;以下场景仍需要在管理后台由用户确认:
- [x] HTTP 非 2xx 日志同时保留节点使用的中文错误归类和上游原始错误详情。
- [x] API 调用日志关键词搜索覆盖 `errorCode` 与 `error`,可按节点中文提示、上游错误或错误码定位。
- [x] 参数校验、协议构造、路由准备等请求尚未发出的最终失败会补记 `request_not_sent`,且不保存任务输入、API Key 或请求正文。
- [x] 已有真实 HTTP 调用日志的任务不会重复补记请求前失败日志。
- [ ] 在画布分别触发一次成功请求、一次上游 400 和一次本地参数校验失败,确认 `/admin/logs` 均能看到对应记录,并可按节点错误文案搜索。
## 渠道视频分辨率枚举兼容
画布已将渠道声明的分辨率视为不透明枚举,不再把带方向或本地化后缀的值静默回退为 `720p`;以下场景仍需浏览器确认:
- [x] 前端分辨率规范化、画布选中态、价格匹配与请求映射专项测试通过。
- [x] AutoDL 插件 `1.0.2` 已改用通用 `lower` 并通过协议包测试;宿主仅保留旧 `1.0.1` 清单所需的兼容 shim。
- [x] Manifest 工作流的视频能力改为按 `parameters` 投影:只声明分辨率时不再补画幅能力,也不会继续提交旧的全局 `size`。
- [x] 同时支持分辨率和画幅的渠道按当前比例与分辨率推导只读宽高,例如 `16:9 + 720P = 1280×720`、`16:9 + 1080P = 1920×1080`、`16:9 + 4K = 3840×2160`。
- [x] `web` TypeScript 检查与生产构建通过。
- [x] 后端允许视频能力明确省略画幅,并通过全量 Go 测试;前端能力投影、尺寸计算和画布模型专项测试通过。
- [ ] 在画布选择 `480p竖`、`768p竖`、`480p横`、`768p横`,确认按钮选中态、底部摘要和重新打开后的状态一致。
- [ ] 分别提交四个枚举值,确认请求中的 `resolution` 与插件声明一致,且其他标准 `720p`、`1080p` 渠道不受影响。
- [ ] 使用仅声明 `resolution` 的 AutoDL 工作流,确认画布和创作页不显示画幅/尺寸,生成请求不包含无意义的 `aspectRatio`。
- [ ] 使用同时声明画幅与分辨率的渠道,依次切换 `16:9` 下的 720P、1080P、4K 及 `9:16`,确认宽高展示随选择即时更新且请求仍按渠道协议发送比例与分辨率。
## 画布生成重复提交保护
画布生成入口已增加节点级同步提交锁,并为手动生成记录“提示词、模型、参数、参考素材”指纹;以下场景仍需浏览器确认:
- [x] 连续三次调用同一节点只执行一次的专项测试通过;提示词、模型、参数或参考素材变化会产生不同指纹。
- [x] `web` TypeScript 检查、21 个相关专项测试与生产构建通过。
- [ ] 在同一节点快速连续点击三次生成,确认任务中心只新增一个任务,且不会重复扣除积分。
- [ ] 首次任务完成后不修改提示词、模型、参数和参考素材,再次点击生成,确认出现“再次生成相同内容”二次确认;取消不创建任务,确认后只创建一个新任务。
- [ ] 分别修改提示词、模型、分辨率/时长和参考素材后生成,确认视为新内容,不弹重复确认。
- [ ] 执行分镜批量生成、Agent 自动生成和显式重试,确认不会被手动重复确认弹窗阻塞。
## 画布快捷键中心
画布搜索已统一为 `Ctrl/Cmd + F`,专注模式调整为 `Shift + Ctrl/Cmd + F`;原快捷键长列表已改为可搜索、可分类的快捷键中心。以下场景仍需浏览器确认:
- [x] 快捷键目录筛选专项测试、`web` TypeScript 检查与生产构建通过。
- [ ] 在 Windows 和 macOS 分别按 `Ctrl/Cmd + F`,确认打开画布节点搜索且不会触发浏览器页内查找。
- [ ] 按 `Shift + Ctrl/Cmd + F`,确认进入或退出专注模式;按 `Ctrl/Cmd + K` 不再打开节点搜索,并保留工作区命令面板入口。
- [ ] 打开快捷键中心,分别搜索“粘贴”“缩放”和“Alt L”,确认结果与分类计数正确,清空搜索后恢复完整列表。
- [ ] 确认浅色/深色主题下标题、分类选中态、搜索焦点环、键帽和滚动区域清晰可见。
- [ ] 在窄窗口确认分类可横向滚动、快捷键列表改为单列,弹窗不超出视口且长内容仅在列表区滚动。
## 管理后台存储资源
管理后台已新增资源列表、筛选、去重容量统计、预览下载和安全批量删除;以下场景仍需使用真实资源数据确认:
- [x] 后端专项测试覆盖管理员权限、筛选校验、共享对象去重统计、历史本地资源预览、部分删除成功、公告/画布引用阻止、共享物理对象保留、审计失败事务回滚和 100 项上限。
- [x] `web` TypeScript 检查通过;只读阶段与删除阶段均复用同一资源页面和统一 API 客户端。
- [ ] 在 `/admin/resources` 分别按资源 ID、对象路径、用户 ID、类型、状态和存储类型筛选,确认分页与筛选 chip 一致。
- [ ] 预览并下载本地、阿里云 OSS、腾讯云 COS、七牛云 Kodo 和 S3 的图片、视频、音频与普通文件,确认 Range、登录 Cookie 和错误提示正确。
- [ ] 选择一个仍被公告、素材、画布、项目、风格、工作流或镜头产物引用的资源,确认删除结果显示真实引用来源且业务数据和物理对象均保留。
- [ ] 批量选择“可删除、仍被引用、不存在”三类资源,确认只删除安全项,列表和统计刷新,审计事件与 outbox 数量一致。
- [ ] 创建两条共享同一物理对象的资源记录,只删除其中一条,确认另一条仍能预览且物理对象未清理;两条同时删除时确认只产生一个物理删除任务。
- [ ] 模拟对象存储暂时失败,确认资源记录事务仍成功、删除任务保留并重试,恢复后物理对象最终清理。
## 短剧分镜工作流工作台
短剧工作流已按镜头生产重构为单层项目工作台,并将资产绑定、镜头编辑、生成预览和整集镜头轨道放入同一视口;以下场景仍需用户在真实项目数据与模型渠道下确认:
- [x] 工作流路由保留系统全局侧栏和顶栏;项目头部压缩为单行,移除额外六阶段横条,项目导航入口改为“分镜制作”。
- [x] 项目详情 API 对旧后端可能缺失的工作流、镜头版本、产物、引用、候选资产和文件夹数组统一规范为空数组;使用缺失这些字段的响应完成浏览器复现,页面正常加载且控制台无错误。
- [x] 未初始化章节不再显示阻断式居中空态;镜头编辑器可直接查看和保存,首次真实生成时按当前章节自动建立工作流记录。
- [x] 分镜脚本、黑白动作预演、视频生成共用资产栏、镜头表单、预览/历史栏和底部镜头轨道;前端生产构建通过。
- [x] 模型、时长、画幅、分辨率和镜头语言合并为默认折叠的“生成设置”,模型提示词与接戏信息合并为默认折叠的“生成补充”;折叠摘要会显示当前关键参数,浏览器展开/收起验证通过。
- [x] 删除项目头部重复且发生重叠的“新增分镜”入口,只保留底部镜头轨道中的新增卡片;1280px 与 1680px 浏览器检查无横向溢出,系统全局侧栏保持可见。
- [x] 右侧产物阶段从标题旁的隐藏下拉框改为常驻三段切换,分镜图、动作预演和镜头视频始终可见;1280px 与 1680px 下切换路由、阶段文案、最新/历史状态和全局侧栏浏览器验证通过。
- [x] 底部镜头卡片取消悬浮上移和向外扩张的选中阴影,改为不改变坐标与尺寸的底色、边框和内描边反馈;右侧移除“复制参数”“入素材库”,仅保留并排的重新生成与下载,1280px 浏览器悬浮和布局验证通过。
- [x] 镜头编辑器改为脚本优先顺序:镜头名称与画面、镜头资产、表演与动作、对白/旁白优先展示,生成规格和模型补充保持折叠;字段统一为画幅、镜头时长、机位角度、运镜方式、排除内容和接戏备注等生产术语。
- [x] 编辑器标题实时反映镜头名称与“已保存/有未保存修改/保存中”状态;无修改时禁止重复保存,切换或新增镜头前会拦截未保存修改。浏览器交互验证通过。
- [x] 镜头保存使用真实版本写接口;资产点击绑定具体版本;生成统一进入后端任务生命周期,成功后登记对应镜头产物;下载使用带登录凭据的资源接口。
- [ ] 使用包含角色、场景、道具和画风的真实项目,确认左侧分类、绑定状态、参考素材标签和镜头切换保持一致。
- [ ] 配置一个图片模型和一个视频模型,分别生成分镜预览、动作预演与视频,确认任务中心、镜头历史、最新预览和阶段状态同步更新。
- [ ] 在浅色/深色主题及 1280px、1050px、760px 三个断点检查项目导航、表单滚动、右侧预览和底部镜头轨道,确认没有遮挡或不可达控件。
- [ ] 验证下载视频、复制生成参数、将任务物化产物加入项目素材库、章节切换与新增分镜;确认失败任务展示真实错误且不会伪造产物成功。