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 生態目錄。

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

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

小夜