文档
08_归档04_VOZEB任务卡

VOZEB-UI-MIGRATION-02 — VOZEB 页面级 Foundation 迁移

Task ID: VOZEB-UI-MIGRATION-02
目标用户结果: 在不改变 VOZEB 业务行为、路由和数据语义的前提下,按页接入已确认的 OceanWay Foundation 组件
Feature / Atomic: HOME-P0-001;SPACE-P0-001..005;EXEC-P0-001;MOD-P0-001;KEY-P0-001..004;BILL-P0-003
Base SHA: 1f7d0c2 (VOZEB Next 候选,已包含 Foundation 与 Key/Model/Usage 候选)
视觉基线: VOZEB-UI-FOUNDATION-01 候选(Quiet Ocean Air / Abyss)
实现边界: Next.js App Router + React 19;retail-platform 只读参考,不引入 Vue runtime
状态: LOCAL_IMPLEMENTATION_CANDIDATE / CANDIDATE_EVIDENCE / NOT_FORMAL_TEST

1. 已获授权的范围

用户已明确允许在基于 VOZEB-PRO 的 Next.js 项目中开始逐页改造。每个页面仍以独立切片 实施、测试和提交;本任务不把一次页面改造自动解释为全项目正式验收或发布授权。

2. 迁移规则

  • 页面只复用 web/src/components/ocean 与现有 components/ui 的已完成组件;不在页面内 重新实现玻璃材质、背景、圆角或动效。
  • 业务 adapter、API、权限、计费、任务状态和持久化语义保持原实现;视觉 kit 不读取 store、不直接请求 API、不创建 Operation/Billing Entry。
  • 保留现有路由和中文文案语义;不恢复早期旧页面壳层、顶部产品菜单或 Vue 代码。
  • 每个切片至少覆盖适用的 ready / loading / empty / error / forbidden / submitting 状态, 浅深主题、键盘焦点、390/430 与窄桌面无横向溢出、reduced-motion/transparency。
  • 页面级背景仍只允许一个 OceanAmbientBackground;Canvas 全屏页遵循其专用 Stage/Loading 契约;不叠加第二个 WebGL renderer。

3. 页面队列

顺序页面切片Foundation 接线重点主要非目标
1/modelsGlassCard、FilterBar、Status/Empty、响应式模型目录不增加 detail API、渠道或 Auto 决策
2/keysGlassCard、Dialog、Status、敏感操作态不改变 Secret/权限/存储契约
3/usage、/usage/:requestIdFilter、Table/Status、Detail、Decimal 展示不增加重试、退款或法币展示
4/createAgentComposer、Conversation、Generation、AssetPicker不改 Run、SSE、计费和重试语义
5/canvas、/canvas/:idCanvasKit、CanvasStage、LoadingShell、UtilityControl不改节点、相机、关系和持久化
6/assets、/drama、/drama/:idAsset/Media、DramaEditor、Status不改上传、生成和项目状态机
7/works、/community、公共作品页WorkGallery、WorkCard、MediaFrame不改发布、互动、治理和分页事实
8/prompts、/my-prompts、/profile、/helpPrompt、Section、GlassCard、Status不改账户、积分、导出和安全语义
9/login、/register、/forgot-password、/installAuthKit、InstallWizardKit不改 Session、验证码、安装写入
10/billing*、/admin*、法律与公告页Billing/Admin/公共内容 kit不改支付、RBAC、审计、合规文本

重定向页面 /image、/video、/admin/generation-operations 不单独建立视觉切片。 /components 是组件实验室,不纳入业务页面迁移验收。

4. 首个切片 M-01

首个切片为 /models,只允许修改:

docs/oceanway/VOZEB-UI-MIGRATION-02-M01-MODELS.md
web/src/app/(user)/models/page.tsx
web/src/app/(user)/models/page.test.tsx(如需要)

GET /api/retail/portal/models、公开 DTO、筛选、分页和错误映射保持不变。由于当前契约 没有 q 参数,搜索必须明确为“当前页搜索”,不得暗示服务端全目录搜索。

5. 验收与交付

每个切片完成后记录 base SHA、变更文件、测试命令、浏览器视口和剩余缺口,并保持候选 状态。实现者自测不能提升 IMPLEMENTED、VERIFIED 或 OPERATIONALIZED;正式 Testing 和 Operations 由后续独立任务执行。

首个切片的最低命令:

cd web
pnpm exec vitest run src/app/'(user)'/models src/services/api/retail src/integrations/retail --reporter=dot
pnpm exec tsc --noEmit --pretty false
pnpm exec eslint src/app/'(user)'/models --quiet
pnpm exec prettier --check src/app/'(user)'/models docs/oceanway/VOZEB-UI-MIGRATION-02-M01-MODELS.md
pnpm exec next build
git diff --check

浏览器使用本地 loopback fixture,至少检查桌面、390px 和 430px:页面身份、非空渲染、无 框架错误、无横向溢出、筛选/分页/重试/空态交互和控制台错误。

On this page