前言¶
DeepSeek Harness (DSH) 采用插件化架构。在使用 Web 客户端时,流式内容增长时滚动到底部的体验往往是瞬间跳变,这会打断阅读流或与用户手动滚动发生冲突。dsh-smooth-scroll 插件将这种瞬时行为改为恒速平滑跟随,改善流式阅读体验。
功能¶
该插件主要解决 DSH 会话滚底的视觉跳变问题:
* 恒速平滑跟随:巡航速度为 0.9px/ms,使滚动跟随更加自然。
* 缓启动与软尾:起步缓升 240ms,收尾软着陆 220ms。
* 用户滚动接管:当真实位置连续偏离动画写入超过 2 帧时,判定为用户接管,动画停止并回退真实值。
* 无干扰设计:不应用任何 transform,不干扰输入栏等 UI,且不干扰 DSH 自身的状态机判定。
* 兼容性回退:当系统开启 prefers-reduced-motion 时,自动回退至官方瞬时行为。
* 版本适配:适配 dsh v0.1.2-alpha.1 ~ 0.1.3-alpha.2。
安装与启用¶
安装前需确保已安装 DSH 并至少成功启动过一次 Web GUI。
- 执行安装命令:
dsh plugin --profile web add dsh-smooth-scroll
- 验证安装是否成功:
dsh --profile web --dump-config
在输出中应能看到 `dsh-smooth-scroll` 层。
- 重启
dsh web并打开会话,流式内容应平滑滚动到底部。
参数调整¶
插件通过编辑源码来调整参数。编辑 src/client.js 顶部的常量区,完成后运行 pnpm run build 并重启 dsh web。
主要参数包括:
* VEL:巡航速度(默认 0.9)。
* RAMP_MS:起步缓加速时长(默认 240)。
* QUIET_MS:判定停止增长的静默窗口(默认 240)。
* TAIL_PX:进入软尾的剩余距离阈值(默认 120)。
* TAIL_MS:软尾缓动时长(默认 220)。
* DIVERGE_STOP_FRAMES:真实位置连续偏离动画写入的帧数阈值(默认 2)。
兼容性说明¶
- 支持版本:dsh v0.1.2-alpha.1 ~ 0.1.3-alpha.2。
- 不支持版本:0.1.1-rc.2 及更早版本。该代使用不同的宿主结构,不兼容。
注意事项¶
- 参数修改:插件暂不支持运行时配置,需通过编辑源码修改参数。
- 许可证:MIT 许可证。
总结¶
dsh-smooth-scroll 通过恒速平滑跟随和用户接管机制,解决了 DSH Web 客户端流式内容滚动的突兀问题。其无 transform 设计保证了 UI 的稳定性。更多细节可参考项目主页。