DeepSeek Harness 插件:点击文件路径在 VS Code 中打开

在 DeepSeek Harness(DSH)Web 界面中,点击文件路径通常会被插件内部逻辑拦截,导致页面跳转而非打开本地文件。dsh-client-open-in-vscode 修改了这一行为,通过拦截点击事件并调用宿主侧的 VS Code CLI,将文件在已匹配的 VS Code 窗口中打开。

插件简介

这是一个由 quei4r 开发的 DSH 客户端插件。它运行在 DSH Web Profile 的上下文中,利用 HTTP 请求与宿主进程通信,实现从浏览器 UI 到本地编辑器的跳转。

安装与启用

安装需要手动将包放入 Web Profile 的目录,并修改配置文件。

  1. 复制插件包到 Web Profile 的 node_modules 目录:
    cp -r dsh-client-open-in-vscode ~/.dsh/profiles/web/node_modules/
  1. 编辑 ~/.dsh/profiles/web/cordis.patch.yml,加入以下配置:
    - insert:
        - id: ui-open-in-vscode
          name: dsh-client-open-in-vscode
  1. 重启 dsh web。
    注意:插件的 Host 半需要在启动时注册 HTTP 路由,仅刷新页面不足以生效。

核心功能

插件主要拦截以下 UI 元素的点击事件,并执行相应的打开逻辑:

  • 捕获范围:捕获工具卡片中的路径、产物 chips、以及正文里的文件提及链接。
  • Edit/Write 行为:点击文件变更行(Edit/Write 等)的路径时,会尝试重建该次编辑的全文件 diff 并打开。插件通过 git apply 的逆向逻辑,尝试使用磁盘当前文件或 git HEAD 版本作为基底重建全文。
  • 多窗口路由:点击文件时,系统会按以下顺序匹配 VS Code 窗口:
    1. 按 remote authority 过滤(优先连接到同一主机/本地的窗口);
    2. 判断文件的绝对路径落在哪个已打开工作区文件夹内;
    3. 若存在多个匹配,优先选择路径最深的工作区窗口;
    4. 若都不匹配,回退到同 authority 的最近活跃窗口。
  • 绕过机制:支持 Alt+点击 以绕过拦截,走产品原逻辑。
  • 安全信任闸门:路由请求必须通过信任校验,要求 Host 为 loopback、Sec-Fetch-Site 为 cross-site,且携带的 Origin 必须与 Host 一致。这防止了其他网站通过网页借机触发本机 VS Code 打开文件。

典型用法

  • 点击打开文件:在聊天 UI 中点击工具卡片或正文中的文件路径,系统会自动在匹配的 VS Code 窗口中打开该文件。
  • 查看变更 Diff:点击 Edit/Write 行中的路径,查看该次编辑生成的全文件差异对比。
  • 查看原逻辑:按住 Alt 键点击文件路径,可以查看产品原本的导航逻辑。

注意事项

  • 环境要求:系统 PATH 中必须有 code CLI,且宿主进程所在的桌面会话(X11/Wayland)允许拉起 GUI 窗口。
  • 协议限制:插件不使用 vscode://file/... 协议,避免在 DSH GUI 常跑在的 VS Code webview 环境中导致黑屏。
  • 兼容性:该插件随 @deepseek-ai/dsh 0.1.0-rc.6 的 web profile 测试通过。
  • 临时文件:用于 Diff 对比的临时文件会在 10 分钟后自动清理。
  • 源码审查:插件以当前 DSH 进程权限运行,建议在安装前检查源码与许可证。

总结

该插件解决了 DSH Web 界面与本地 VS Code 工作流割裂的问题。通过精确的路由匹配和信任闸门设计,它能在不破坏现有 UI 交互的前提下,实现文件在本地编辑器的无缝跳转。更多细节可参考 GitHub 仓库 或 DSH 生态目录。

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

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

小夜