# 界隙预览 0.5.0-rift.1

适配 DSH 0.2.0-rc.2。本地构建预览，尚未发布 npm 或合入 main。

## 独立实现

- `src/rift/plugin.ts`：原生 slots、主题 token、会话状态绑定。
- `palette.ts` / `styles.ts`：石墨 / 冷瓷配色与统一界面材质。
- `runtime.ts`：装饰生命周期、可见性、偏好、上下文丢失和调度。
- `renderer.ts`：单 WebGL pass、局部形变和裂隙能量，没有全屏光线步进或 bloom 链。
- `motion.ts`：纯状态、画面尺寸与采样映射。
- `boot.ts`：首屏静态背景，无脚本、轮询或全树观察器。
- `scripts/build-rift.mjs`：只发布当前入口和场景 chunk，构建时拒绝旧视觉模块进入依赖图。

必要的宿主适配（主题跟随、会话状态、延迟加载、草稿投影）沿用；旧视觉源码保留但不进入当前发布包。未改 DSH 核心或其他插件。

## 动作边界

原画为全新生成式二维场景，局部 UV 形变带来发梢、衣角和金属碎片的小幅运动。裂隙在执行中增强，进入或本轮结束时短暂脉冲。这不是完整角色骨骼动作，也不冒充 Live2D。

关闭动效、失焦、页面隐藏、减少动态、窄屏（760px 以下）及省流模式不运行持续绘制；缺少 WebGL 或上下文丢失时保留静态图。恢复不补播后台积压动作。每帧最多约 120 万像素，非 Retina 全分辨率；空闲目标 12 fps、执行目标 24 fps。

## 资源与交互

场景 WebP 78,268 字节，保留详细原稿于工作区 output/imagegen/xiaohei-rift-20261017。正式包只使用压缩场景，不包含旧图片图集。

左栏底部“界隙动效”只控制主题装饰。键盘焦点、原生 hover、会话选择、模型切换、工作区选择和业务插件权限均由宿主负责。装饰层不接受指针事件，不对宿主祖先设置 transform / filter / backdrop-filter，不改变固定弹窗的定位坐标系。

浅色使用冷瓷阅读面与原色场景，深色使用石墨面板；聊天时增加阅读背景，空白首页保留场景。长窗口适配人物位置、底部渐隐；窄屏优先保证输入与阅读。

## 验证

自动化覆盖：新入口无旧资源、启动背景幂等、调度门控、像素预算、两套文本与按钮对比度、无 WebGL 回退与清理，以及现有宿主适配回归。

浏览器验收覆盖：真实 DSH 页面、深浅色、动效暂停/恢复、减少动态、失焦、窄屏、设置弹窗、只读打开既有会话。仅模拟运行状态用于动效测试，不提交测试消息，不触发模型或伙伴任务。

无物理 macOS / Windows Desktop 真机验收；使用的是相同的 DSH 原生 chunk 和 slots 机制，没有新增浏览器专属 HTTP 接口。

采用 ui-ux-pro-max 的可访问性和性能检查约束；未采用其不匹配工作台的营销页模板。部署时先备份主题与安装元数据，健康检查或页面验收失败则回滚该主题。
