dsh-remote-picker:强制浏览器内浏览的目录选择器修复

前言

在使用 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 官方无从属关系,仅作为技术补充方案存在。

更多详情与源码,请访问:
* 插件目录
* GitHub 仓库

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

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

小夜