dsh-folder:在 DeepSeek Harness 工作區菜單中增加“打開文件夾”選項

前言

DeepSeek Harness (DSH) 的插件系統允許開發者擴展客戶端功能。在工作區側邊欄中,默認的上下文菜單僅提供“重命名”和“刪除工作區”兩個選項。當需要直接在系統文件管理器中查看或編輯當前工作區目錄時,操作流程相對繁瑣。

dsh-folder 插件解決了這個問題,它通過注入菜單項,將“打開文件夾”的操作直接整合進工作區的上下文菜單中。

這是什麼

dsh-folder 是一個 DeepSeek Harness (DSH) 插件,由開發者 KDronin 維護,遵循 MIT 許可證。

該插件通過向側邊欄工作區的“更多操作”菜單中插入一個新條目,使用戶能夠快速調用系統默認程序打開當前工作區所在的目錄。它複用了原生菜單的樣式與圖標,保證視覺一致性。

核心功能

  1. 菜單注入:在側邊欄工作區的“三個點”菜單中,於“重命名”和“刪除工作區”之間插入“打開文件夾”選項。
  2. 系統調用:點擊菜單項後,插件調用 DSH Host 能力 session.openWorkspacePath,由宿主端將路徑交給系統默認程序處理,從而在文件管理器中打開該目錄。
  3. 雙語支持:界面支持中文和 English。
  4. 錯誤反饋:若打開失敗(如路徑解析錯誤或環境不支持),菜單項會顯示可見的提示文案(使用原生危險色),並將錯誤信息寫入 console.error,避免靜默無響應。

安裝與啓用

官方命令安裝

通過 DSH 官方命令行工具安裝:

dsh plugin --profile web add github:KDronin/dsh-folder

安裝完成後,重啓 dsh web 進程並刷新頁面即可生效。

手動安裝

將 dsh-folder 目錄複製到 DSH profile 的 node_modules 下:

$target = Join-Path $env:USERPROFILE '.dsh\profiles\node_modules\dsh-folder'
Copy-Item -Recurse .\dsh-folder $target

在配置文件 $HOME/.dsh/profiles/web/cordis.patch.yml 中添加以下內容:

- insert:
    - id: dsh-folder
      name: 'dsh-folder'

重啓 dsh web 並刷新頁面。

典型用法

  1. 在 DSH 側邊欄找到目標工作區。
  2. 點擊工作區行右側的“三個點”菜單。
  3. 在彈出的菜單中,點擊位於“重命名”和“刪除工作區”之間的“打開文件夾”。
  4. 系統文件管理器將自動打開該工作區所在的目錄。

技術實現與注意事項

該插件爲純 UI 插件,核心邏輯位於 lib/client.js。

  • 菜單注入機制:爲了避免與 React 的提交時機競爭,插件使用 MutationObserver 監聽菜單掛載事件。一旦菜單出現即注入菜單項,並在菜單存在期間持續守護該節點。這解決了舊版本中因固定延時導致部分工作區菜單項缺失的問題。
  • 能力調用:舊版本曾嘗試調用不存在的 ctx.workspaces.openPath,導致報錯。當前版本已修正爲調用正確的 Host 能力 ctx.remote.session.openWorkspacePath。
  • 依賴項:插件依賴 @deepseek-ai/dsh-client-locale、@deepseek-ai/dsh-api-workspace-controller 和 @deepseek-ai/dsh-client-ui-workspace,與原聲明中的 @deepseek-ai/dsh-client-runtime 不同。
  • 版本回退:若需對照舊版本進行調試或測試,可通過環境變量 DSH_FOLDER_CLIENT 指定舊的客戶端 bundle 路徑。

結尾

dsh-folder 是一個輕量級且功能明確的工具,它填補了 DSH 工作區管理中直接訪問文件系統的空白。對於頻繁需要通過文件管理器進行配置或查看日誌的開發者來說,這是一個實用的補充。

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

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

小夜