文档
08_归档04_VOZEB任务卡

VOZEB-UI-MIGRATION-02-M28 — 短剧编辑器内层 Ocean Foundation 切片

Task ID: VOZEB-UI-MIGRATION-02-M28-DRAMA-INNER
目标用户结果: 用户在 /drama/:id 的剧本、Agent、资产、分镜和镜头生成工作区中看到统一的 Ocean Air / Liquid Glass 内层表面,同时保留原有创作流程与任务状态。
Feature ID / Atomic Requirement IDs: MOD-P0-001;EXEC-P0-001..003(仅视觉承载,不改变业务语义)
Base SHA: 4f84818
必须阅读: VOZEB-UI-FOUNDATION-01.md;VOZEB-UI-MIGRATION-02-M09-DRAMA-EDITOR.md;本目录既有 drama Agent、资产、脚本和生成测试
允许修改: 本任务包;web/src/app/(user)/drama/[id] 下直属既有 TSX/CSS/测试文件
禁止修改: web/src/app/(user)/drama/[id]/stores/**;services/api/**;其它路由、共享 Ocean/UI/manifest、页面背景/WebGL、Go、数据库、retail-platform;不得新增 runtime TSX
范围: Agent 消息/输入/历史/引用选择器、资产库/来源条/资产编辑 Portal、镜头生成检查与任务卡、剧本编辑器、场景结构、分镜卡片的 tokenized glass surface、圆角、hairline、阴影、焦点和降级样式;使用 data-* hooks 绑定现有 DOM,不重写业务组件
非目标: 不改变路由、stores、API、模型调用、计费、任务轮询、生成/导出/持久化、快捷键、交互顺序、移动抽屉行为或页面级背景;不把 React Foundation 组件引入其它 runtime
已冻结契约与数据模型: DramaProjectPage、DramaAgentPanel、DramaAssetsPanel、DramaGenerationPanel、DramaScriptWorkspace 及其既有 props、回调、状态机、data/aria hooks;正文使用 Ocean Air 中性色,状态色仅保留 done/running/error 等语义
安全与数据限制: 仅修改本地 UI 代码与结构契约测试;不读取或输出 Secret,不触发真实上游、账务、迁移或生产写入
验收命令: pnpm exec vitest run src/app/(user)/drama/[id]/drama-inner-foundation.test.ts src/app/(user)/drama/[id]/drama-editor-chrome.test.tsx src/app/(user)/drama/[id]/drama-mobile-layout.test.ts src/app/(user)/drama/[id]/drama-generation-panel.test.ts src/app/(user)/drama/[id]/drama-assets-panel.test.ts;pnpm exec tsc --noEmit --pretty false;pnpm exec eslint <本任务修改的直属文件> --quiet;pnpm exec prettier --check <本任务修改的直属文件>;pnpm run build;git diff --check
人工决策点: LOCAL_IMPLEMENTATION_CANDIDATE / CANDIDATE_EVIDENCE / NOT_FORMAL_TEST;需独立 Testing、Operations 与用户确认后方可提升正式状态
交付物: 现有短剧内层 surfaces 的 Ocean Glass 视觉收口、portal/窄屏/无透明能力降级、结构契约测试与候选验证记录

实现边界

  • Agent、资产、生成、脚本和分镜只增加局部 data-* 识别点与 CSS module 规则;既有 hook、服务、store、API 和回调保持不变。
  • 内层表面复用 --ocean-air-* 与 --ocean-glass-* token,使用单层 blur/saturation/edge/shadow;正文和操作文字默认为 --ocean-air-text / muted,蓝色只作为明确焦点或操作图形。
  • Ant Popover、Drawer、Modal 位于页面节点之外,因此通过现有 rootClassName/className 绑定相同 material contract;Portal 不引入第二背景。
  • @supports not (backdrop-filter: …)、prefers-reduced-transparency、prefers-reduced-motion 和 forced-colors 均回退到可读的实色/系统色;窄屏保留既有列表与抽屉布局,不新增横向滚动。
  • 该候选只记录实现与本地自动化证据,不代表正式 Development、Testing、Operations、发布或部署完成。

结构验证关注点

  • Agent 消息滚动容器、Composer、历史和 mention picker 均有稳定 data hook;消息正文不依赖蓝色选中态。
  • 资产卡、来源资产条、资产编辑器候选图和生成任务卡使用统一玻璃边缘与语义状态色。
  • 剧本编辑器、场景结构、分镜卡片和生成任务保留原有 aria、键盘和回调语义;页面仍只有既有背景源,不新增 canvas/WebGL。

状态:LOCAL_IMPLEMENTATION_CANDIDATE / CANDIDATE_EVIDENCE / NOT_FORMAL_TEST

On this page