DSH(DeepSeek Harness)采用「一切皆插件」的理念。在开发或使用 DSH Web GUI 时,主视图的对话会同步到地址栏。dsh-session-url 插件利用 URL 的片段(fragment)机制,实现了对话与链接的互通。它解决了地址栏与特定会话状态不一致的问题,且不依赖任何构建工具或网络请求。
核心功能¶
- 视图同步到链接:主视图所在的对话会同步到 URL 片段
#/session/<id>。通过history.replaceState实现,不会产生新的历史记录(返回键仍可退出 GUI)。 - 链接恢复视图:打开或粘贴
#/session/<id>即可打开对应对话。解析宽容,支持#/sessions/<id>、缺前导斜杠、URL 编码及尾部斜杠。 - 侧栏行即链接:侧栏每一行都是透明的真锚点。右键可复制链接或在新标签打开;中键或 Cmd+点击直接开新标签;左键单击仅切换对话。
- 零开销:零依赖、零构建、不发网络请求、不打点、不写盘、无遥测。
安装与启用¶
通过 DSH CLI 安装该插件:
dsh plugin --profile web add link:$PWD
# 或发布后:
dsh plugin --profile web add dsh-session-url
安装后,浏览器半区在下次页面刷新生效;行链接在宿主启动时生效(若配置了 patchReload: live 则热加载)。
使用示例¶
- 在侧栏行上右键点击:使用浏览器原生的「复制链接」或「在新标签页中打开链接」。
- 在侧栏行上中键或点击:直接在新标签页打开该对话。
- 在地址栏粘贴:粘贴
#/session/<id>或类似变体,页面加载 8 秒内即可打开特定对话。
注意事项¶
- 8 秒权威窗口:页面加载后 8 秒内,链接优先于本地保存的选择恢复。若期间点击,链接可能生效一次。
- 归档对话:已归档对话的链接会被立即拒绝。
- 仅支持 Fragment:链接只包含片段,不包含路径和查询串。若链接中包含登录凭据(如
?token=),则不可分享。 - 自我禁用:如果 DSH 的服务形态发生变化(如
sessions/workspaces/uiWorkspace不匹配),插件会自我禁用并输出诊断信息。 - 依赖官方结构:行链接依赖于官方侧栏的行结构
div[data-row-key="session:<id>"],若官方改动此结构,链接将静默失效。
隐私与资源¶
插件在浏览器半区运行,只读取目录快照并调用官方 openSession。它不发送任何网络请求,不进行数据打点,也不会写入本地磁盘。
- 仓库地址: https://github.com/DDDMUC/dsh-session-url
- 维护者: DDDMUC
- 许可证: MIT