08_归档04_VOZEB任务卡
VOZEB-UI-MIGRATION-02-M19 — 公共分享页 Ocean Foundation 视觉切片
Task ID: VOZEB-UI-MIGRATION-02-M19-SHARE
目标用户结果: 访客能在统一 Ocean Air / Abyss 视觉中查看公开作品、媒体、作者信息、互动与公开提示词
Feature ID / Atomic Requirement IDs: HOME-P0-001;EXEC-P0-001..003(仅承载公共分享页视觉)
Base SHA: 3cfd6418f0853a77b5afbb3c71a782845a9189f9
必须阅读: VOZEB-UI-FOUNDATION-01.md;VOZEB-UI-MIGRATION-02.md;work-publication-service.ts;public-work-media-browser.tsx;share-layout.test.ts
允许修改: 本任务包;web/src/app/share/[slug]/page.tsx;web/src/app/share/[slug]/share-page.module.css;web/src/app/share/[slug]/share-layout.test.ts
禁止修改: work-view-tracker.tsx;work-governance-actions.tsx;work-prompt-actions.tsx;components/works/**;services/api/**;lib/server/**;API routes;stores;其它页面与共享 Ocean/UI 组件
范围: 将公共分享页的品牌栏、作品标题、媒体预览、作者/状态/互动、公开提示词、空态与页脚接入 Ocean Glass 视觉,并补齐窄屏与无障碍降级
非目标: 不改变服务端公开作品读取、404/409 unavailable 语义、SEO metadata/JSON-LD、访问计数、媒体 URL/比例、点赞/关注/举报/复制/做同款、权限、治理或导航;不新增 AppWorkspaceShell、页面背景、WebGL/canvas、业务状态或 runtime TSX
已冻结契约与数据模型: getPublicWorkPublication、WorkPublicationServiceError、WorkViewTracker、PublicWorkMediaBrowser、PublicWorkCommunityActions、WorkGovernanceActions、WorkPromptActions 与 /share/:slug 路由边界保持不变
安全与数据限制: 仅使用服务端公开作品与现有会话;不读取或输出 Secret,不写浏览器业务持久化,不触发真实上游、账务或生产写入
验收命令: pnpm --dir web exec vitest run src/app/share/[slug]/share-layout.test.ts --config vitest.config.ts --reporter=dot;pnpm --dir web exec tsc --noEmit --pretty false;pnpm --dir web exec eslint src/app/share/[slug]/page.tsx src/app/share/[slug]/share-layout.test.ts --quiet;pnpm --dir web exec prettier --check docs/oceanway/VOZEB-UI-MIGRATION-02-M19-SHARE.md src/app/share/[slug]/page.tsx src/app/share/[slug]/share-page.module.css src/app/share/[slug]/share-layout.test.ts;pnpm --dir web run build;git diff --check
人工决策点: LOCAL_IMPLEMENTATION_CANDIDATE / CANDIDATE_EVIDENCE / NOT_FORMAL_TEST;公共分享页仍需独立人工视觉确认与后续正式 Testing
交付物: Ocean Air 公共分享页壳、ready/unavailable 状态、媒体/作者/互动/提示词玻璃材质、响应式视觉契约测试和候选任务包验收边界
- 分享页继续使用独立公共页 Header,不挂载
AppWorkspaceShell,不新增OceanAmbientBackground、WebGL renderer 或第二个页面级背景。 - 服务端加载、
generateMetadata、canonical/robots/Open Graph/Twitter、CreativeWork JSON-LD、WorkViewTracker与notFound()分支保持原实现语义。 undefined仍表示部署未启用 PostgreSQL,并显示原有不可用文案;null仍进入 Next 404; ready 状态继续展示原有媒体、作者、访问计数、社区互动、治理操作和公开提示词动作。PublicWorkMediaBrowser继续掌握媒体选择、真实 URL、图片 WebP 预览、视频控件和空媒体文案; 本切片只提供玻璃面板与边界样式,不改变媒体行为。- 标题、作者、说明、提示词、元数据和控件使用 Ocean Air/Abyss 中性文字;主题色只承担焦点、图形 和明确动作,不使用蓝色正文。
- 390px、430px 与窄桌面保持无横向溢出;
prefers-reduced-motion、prefers-reduced-transparency和forced-colors下内容仍可读可操作,玻璃效果关闭时使用不透明语义表面。 - 本切片只登记候选实现,不提升正式 Development、Testing 或 Operations 状态。
行为保持记录
页面只替换 DOM 壳层 class 与 Ocean Foundation 视觉包装:getSharedWork、内容资产排序、
公开提示词生成链接、作者链接、互动组件、举报/分享/复制/做同款动作以及所有服务端错误处理
均未移动到新的 adapter,也未添加新的客户端状态。新增的 data-ocean-page 与状态标记只用于
布局契约测试和候选浏览器检查。