全部插件

DSH / BUNDLE / CLIENT-UI

dsh-remote-development

v0.2.0CJYLZS / dsh-remote-development44bd59c5c2

可安装组合包UI 与客户端插件社区 · Topic 自动分析Web UI

概览

dsh-remote-development

Lightweight remote development for DeepSeek Harness: pick a remote workspace over SSH and let the agent work on it with the SAME local tools — file, shell, and search providers are routed to the remote host by the plugin. No extra model tools, no third-party UI plugin.

README / ZH

插件文档

目录摘要

Lightweight remote development for DeepSeek Harness: pick a remote workspace over SSH and let the agent work on it with the SAME local tools — file, shell, and search providers are routed to the remote host by the plugin. No extra model tools, no third-party UI plugin.

dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。

在 GitHub 阅读完整 README

LIMITATIONS

已知限制

- **Windows 远程机延期支持。** 远程机器必须运行 POSIX shell;`uname` 探测会以明确错误拒绝 Windows 目标。适配预留到后续阶段。 - **Windows 本机支持远程 shell 路由。** Windows 宿主挂载基于 pwsh 的路由执行器:本地工作目录保持沙箱 pwsh 执行器,锚点工作目录跨到远程主机的 bash。模型在远程会话看到 `bash` 工具,本地会话看到 `pwsh` 工具。 - **不支持持久终端会话。** 终端工具会返回明确的"not supported by dsh-remote-development"错误,而不是让 agent 自行尝试;远程命令请使用 bash 工具。持久 shell 工具仍仅限本地:指向远程工作区的持久工具会以同样错误拒绝。 - **远程会话不支持 `@` 文件引用。** 远程会话中输入 `@` 会给出单条明确的"暂不支持"候选,而不是静默失败;引用源接口已预留到后续阶段。 - **没有镜像或同步层。** 锚点目录只保存元数据,不保存文件副本;每次读写都经 SSH,受 `maxFileBytes` 限制。 - **文件树标记依赖 in-box 的 `data-files-*` 钩子。** 着色目标是文件树的数据属性,它们不是声明过的公开契约;dsh 若重命名这些属性,着色会静默消失(纯展示层,不影响其他功能)。工作区行的标记还依赖工作区标题匹配:重命名工作区、或 dsh 更改侧边栏 `aria-label` 文案,会让行标记失效(文件树标记不受影响)。 - **路径别名依赖展示结构。** 远程路径改写针对树根头部的 span 形状与 hover 卡片的 portal 形状,两者都未声明;dsh 若更改任一形状,本地锚点路径会静默恢复显示(纯展示层——导航、寻址与复制操作不受影响,仍使用真实的本地目录)。 - **SSH 走纯 JS 而非原生加密。** 打包的 `ssh2` 不会加载可选原生加速件,大文件 SFTP 传输的吞吐低于原生构建版本。 - **搜索依赖远程 ripgrep。** 远程机器上必须存在 `rg` 二进制(可用 `remoteRipgrep` 配置);否则搜索工具在远程路径上失败。 - **不发布 npm。** 从 GitHub 或本地检出安装,见[安装](#安装)。 - **内建目录选择流是被覆盖而非替换。** 两个目录流注册以不同优先级共存(本插件使用 -1,最低者优先渲染);卸载本插件后槽位交还给内建选择器。 - **「本机」页签跟随宿主组合的 picker 能力。** 宿主在启动时解析一次目录选择器后端:WSL 缺少 zenity/kdialog、经 SSH 启动、绑定非回环地址或无显示会话的 Linux 都会组合出 `browse` 后端(只有 `list`/`createDirectory` 原语,没有 OS 选择器)。插件的「本机」页签据此分流——`native` 打开 OS 选择器,`browse` 改用宿主的网页目录浏览器;在此之前的版本「本机」页签硬编码 `pick`,在这类启动下会以 `directory-picker/unavailable` 失败。 - **删除机器后其工作区被有意搁置。** 锚点在机器删除后仍然存在,所有工具面对它都会以同样的「机器已失配」错误拒绝(fs、bash、subprocess,提示词的 `cwd` 变量回退为本地句柄),而不是换一台机器或在本机执行。 ----- <a id="开发说明"></a>