前言¶
在使用 DeepSeek Harness(DSH)進行遠程開發時,通過 tailscale serve 或 cloudflared 等反向代理訪問 Web GUI,目錄選擇功能通常失效。這是因爲官方的 directory-picker 組件在迴環綁定 + darwin/win32 場景下默認調用 native OS 對話框,遠程瀏覽器無法操作。dsh-remote-picker 通過 bundle patch 機制強制切換到瀏覽器內瀏覽模式,解決這一問題。
核心功能¶
本插件主要解決以下問題:
1. 強制瀏覽器內瀏覽:在遠程訪問場景下,強制使用瀏覽器的文件選擇界面。
2. 修復遠程訪問場景:適配 tailscale serve、cloudflared 及 --trusted-host 配置下的目錄選擇邏輯。
3. 禁用 native OS 對話框:避免在無人值守主機上彈出無法被遠程瀏覽器驅動的原生對話框。
4. bundle patch 機制:通過修改依賴包配置生效,無需修改 DSH 核心代碼。
5. 啓動驗證:啓動後自動驗證 browse 能力是否正常加載。
安裝與啓用¶
使用官方插件管理命令安裝:
dsh plugin --profile web add dsh-remote-picker
安裝完成後,重啓 dsh web 服務使配置生效。
注意事項:
若 cordis.patch.yml 中已手工添加過相同的 disable+insert 配置(排查遠程訪問問題時的常見做法),需先移除該段配置,避免重複裝載。
典型用法¶
本插件僅在以下遠程訪問流程中發揮作用:
1. 建立代理:使用 tailscale serve 或 cloudflared 將 HTTPS 流量反代到本地端口。
2. 啓動服務:運行 dsh web 並指定 --trusted-host 參數以允許遠程域名訪問。
3. 觸發選擇:通過手機或遠程瀏覽器訪問服務地址,進入“設置 -> 工作區 -> 選擇目錄”步驟。
驗證日誌:
啓動 dsh web 後,在日誌中應出現以下信息以確認插件生效:
dsh-remote-picker: in-browser browse directory picker active
適用場景與注意¶
本插件僅在使用 tailscale serve 或 cloudflared 從手機/遠程瀏覽器使用 DSH 時需要安裝。如果僅在電腦本機使用 http://127.0.0.1:3080,則無需安裝。
該插件以當前 dsh 進程權限運行,建議在安裝前檢查源碼與許可證(MIT)。
生態背景¶
DeepSeek Harness(DSH)採用“一切皆插件”的架構理念,旨在通過插件化擴展功能。本插件由社區開發者維護,與 DeepSeek 官方無從屬關係,僅作爲技術補充方案存在。