Releases: NativeDog1/dsh-boot-animation
Releases · NativeDog1/dsh-boot-animation
Release list
v0.4.0 —— 按会话固定片头
0.4.0 — 按会话固定片头
新增:全局片头之外再加一层「会话覆盖」。
片库每行多一个「仅本会话」按钮:只让当前这个会话播这一段,不动全局选择。该行标蓝底
「本会话」徽章,面板顶部写明本会话固定播放哪一段,并带「取消(回到全局)」。
优先级:会话覆盖 → 随机 → 全局选择 → 环境变量 → intro.mp4 → videos/ → 内嵌内置片。
会话覆盖连「随机播放」也压得住(钉住一个会话之后又被塞一段随机片,那不是钉住的意思);
显式 mode=random 仍然不被覆盖。
兼容性
| DSH 版本线 | 状态 |
|---|---|
0.1.5-rc.x / 0.1.7-rc.x |
✅ 支持(桌面版旧内核、npm i -g 那条线) |
0.2.0-rc.x |
✅ 支持(桌面版新内核、@next 那条线) |
本插件不声明任何 @deepseek-ai/dsh-* 的 peerDependencies,因此不会被 0.2.0 起的
版本兼容闸门跳过(那道闸门会把 peerDependencies 对不上的插件整包跳过,现象是"装上了
但没生效",且不报错)。宿主形状的变化由 verify-blank(13 种宿主形状)、
verify-session-id、verify-client-boot 三项测试兜底。
安装
dsh plugin --profile web add github:NativeDog1/dsh-boot-animation装完重启一次 DSH 服务,然后在浏览器按 Ctrl+Shift+R 硬刷新(客户端 bundle 是
immutable 长缓存)。
实现要点
- 覆盖层进
selection.json(schema v3,新增conversationOverrides),与全局选择
同一个文件、同一套原子写与损坏自愈;v2 文件自动迁移(补一个空层)。 - 键值两侧都按与
selectedClipId相同的规则校验:路径、active别名、非字符串一律丢弃,
手改文件也无法从这张表塞进媒体路径。 - 表有上限(200),淘汰最久没被设置的那个(重新设置会把键移到末尾)。
- 钉住指向的片段被移走/删除时回落常规链并记
conversation-override-stale——
绝不报错、绝不黑屏,也不删除那条钉住(文件回来就自动复活)。 videos.json/status.json只公布发问那个会话的conversationClipId,整张表不出主机。- 不带
?session=时每个回答都与 0.3.0 逐字节一致;POST /select {id}与
mode=active|random|selected的语义都没变。
接口
GET /resolve.json?mode=active&session=<id>
GET /videos.json?session=<id> /status.json?session=<id>
POST /select {scope:'conversation', sessionId, id} # id:null 取消
测试
npm run check 共 15 组,新增 verify:conversation(70 项,驱动真实路由与真实构建产物)。