dsh-projection-persist:保持 DSH 会话投影值存活

前言

DeepSeek Harness (DSH) 在连接重建(Host generation reset)时,投影值(如会话标题)会短暂丢失,变成「未命名」。本插件是 DSH 插件,不修改 DSH 安装目录,通过替换 ProjectionValueStore.prototype.clear 实现标题保留,并修复列表重建频率与转圈动画问题。

核心功能

本插件包含三个独立的修复项:

  1. 会话标题持久化
    会话标题在一次连接重建中不再掉成「未命名」。

  2. 会话列表重建优化
    会话列表重建合帧到 rAF,实测约 6.3× 降幅。

  3. 转圈动画修复
    运行中的转圈动画恢复旋转(修复 WebView2 reduced-motion 问题)。

安装与启用

从 GitHub 安装插件:

dsh plugin --profile <你的 profile> add github:iuuuuuuuu/dsh-projection-persist

安装后,需在 profile 的 package.json 中将插件名添加到 dsh.profile.bundles:

{
  "dsh": {
    "profile": {
      "bundles": [
        "dsh-projection-persist"
      ]
    }
  }
}

修改 dsh.profile.bundles 会触发热重载,通常不需要重启。

验证与调试

安装生效后,可通过诊断端点验证:

curl http://127.0.0.1:3080/dsh-projection-persist

若需单独关闭转圈修复,可在浏览器控制台执行:

localStorage["dsh-projection-persist.spinner"] = "off"

注意事项

  • 仅依赖 sessions 服务,不声明任何 peerDependencies。
  • 已验证兼容版本:@deepseek-ai/dsh-api-session-controller 0.2.0-rc.2。
  • 只影响管理器持有的投影 store,会话自身持有的 store 不在此列。
  • 重连逻辑(心跳/连接重建)不在本插件范围内。

结语

本插件通过替换 clear 方法实现标题保留,并优化了列表渲染与动画表现。详情见 GitHub 仓库:dsh-projection-persist。许可证为 MIT。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜