# dsh-ssh-remote 后续开发路线图 记录日期:2026-10-06(持续更新)。状态:分阶段实施,不承诺后续发布日期。 当前补丁目标:`0.13.3` 修复升级后的版本显示、未知结果退出及恢复记录过大问题。沿用官方安装器与三个已验收 DSH 版本;公开版本以 Release 为准。 0.13.3 不扩展远程功能,不改 helper。只读检查不再被未知安装结果锁住;结束旧提示需先核对请求与当前版本,再由用户确认。恢复记录改为精简摘要,旧记录有界转换。见[本版记录](releases/0.13.3-acceptance.md)。 0.13.2 不更改 helper、SSH 路由或持久传输格式。更新失败五分钟后可见性门控复查,正常检查保持六小时;窄面板导航、搜索文件名/目录和更新卡片统一排版。真实 PTC 用正常登录 PATH 验证。安装与视觉验收见[本版记录](releases/0.13.2-acceptance.md)。 0.13.1 不扩展 UI 功能。官方 `run_code` 的执行目录、Node、bootstrap 和 fd 7 控制通道进入同一 SSH 执行环境;持久 worker 保留官方生命周期。控制目录对文件 RPC 与受限进程不可见,新连接在协议初始化前认证。新增远端 Node 前提仅适用于 PTC;不自动安装或调整 PATH。见[验收记录](releases/0.13.1-acceptance.md)。 初始审查基线(历史):插件 `0.5.1`,提交 `5b8131824676c30ea0ab2e23ffc298ea93bb2c2a`。
早期阶段记录(0.5.1–0.10.2) 2026-10-12 补充 M0 门槛:0.5.2 并发修复已实现,并通过本机、真实 SSH 及 Web/Desktop 远程文件与终端验收;跨平台结果以对应提交的 CI 为准。 2026-10-13:M1 文本编辑首版已实现,Web、Desktop 与真实 SSH 已完成读取和手动保存验收。 Web 验证冲突保留草稿、查看远端版本及关闭保护;Desktop 验证 Cmd-S、工作区切换保留草稿, 本地工作区不显示远程入口。全量本机回归 348 通过、1 项 Linux-only 跳过;CI 以对应提交为准。 2026-10-13:M1 文件补全与快速打开已完成 Web、Desktop、真实 SSH 验收; 本机 364 项通过、1 项 Linux-only 跳过,跨平台 CI 八项通过。原生引用选中后实际读取 远端标记,快速打开默认预览、显式编辑、草稿保护、忽略项隔离和完整路径边界已验证。 2026-10-15:M2 本地端口转发实现于 0.8.0;Web 与真实 SSH 的 HTTP/WebSocket、 端口冲突、目标未启动、停止释放和回环绑定已验收。2026-10-16 Desktop 已验证 建立、系统浏览器实际读取远端标记及停止;隔离 Web 宿主崩溃后监听自动释放。 本机 378 项通过、1 项 Linux-only 跳过,跨平台 CI 以本次 PR 的对应提交为准。 2026-10-16:M3 0.9.0 已实现并通过小样本 Web/Desktop/SSH 往返校验。Web 在 2.50 MiB 处暂停 8 MiB 上传,刷新后要求重选源,再续传完成;目录下载 SHA-256 与原件一致。Desktop 用 45 B 文件完成目录上传下载(首次源目录选择由用户协助)。 实际 helper SIGKILL、Host-manager 重建及磁盘满 / 权限 / 过期故障均有回归; 大偏移仅模拟,未测试 TB 级吞吐。PR #21 已合并;最终提交跨平台 CI 八项通过。 2026-10-16:M4 0.10.0 已通过 Web、Desktop 与真实 SSH 验收。Desktop 正常重启后, 验证命令退出码、中文 cwd、交互命令运行 / Ctrl-C、原生终端菜单、上下文预览、 草稿变更拒绝覆盖及显式插入;未发送模型请求。远程文件 / 快速打开仍读取原件, 原生 @ 提供远端候选,本地工作区不显示 SSH 操作。测试草稿已清空,测试终端已退出。 最低 Bash 4.4、Zsh 5.9、旧配置降级及 0.9.0 → 0.10.0 小文件续传均有独立验证; 功能提交的九项跨平台 CI 通过(macOS 419 通过、5 项平台 / shell 条件跳过), 最终合并验收见 PR #22。DSH 仍为 0.2.0-rc.2,未修改 SSH 配置或桌面安装包。 0.10.1:整合远程工具入口,顶栏只保留 SSH 主机标识;官方侧栏首页增加远程工具卡片, 提供快速打开、文件传输和端口转发。文件浏览与新建终端继续使用官方入口;编辑和终端 状态保留在相应页签菜单中。本轮只改前端,helper 仍为 0.10.0,内容哈希不变。 2026-10-16 已完成 Web/Desktop 验收:主机标识与官方首页卡片、三个工具导航、原生 远端预览、编辑菜单、终端菜单与命令退出码均正常;Web 检查导航保留未保存草稿, 本地会话不显示 SSH 入口。明暗主题、宽面板和窄分栏已留图,Web 实测 444px 单列、 576px 双列且无横向溢出。构建通过,本机 423 项通过、5 项平台 / shell 条件跳过; 功能提交九项跨平台 CI 通过,最终交付见 PR #23。未发送模型请求,测试终端已退出。 验收选中的本地旧会话仍报既有 v0 消息来源转换错误;本轮没有修改历史迁移代码。 0.10.2:安装与首次使用文档改为固定 Release 安装包,Git Tag 作为备用;中英文 README 聚焦入门,历史记录、排错、技术参考与发布维护说明独立成页。新增打包检查、 独立 profile 的实际安装 / 升级 / 回退 / 停用 / 卸载测试,以及手动草稿 Release 工作流。 2026-10-17 本机构建和 425 项测试通过(5 项平台条件跳过);Web 官方安装器的 依赖构建确认、启用、重启、远端预览及原生终端 `pwd` 已实测。Desktop 独立 profile 完成同一流程,本地会话无远程工具入口且原生文件面板正常。四组安装矩阵和既有 跨平台 CI 共 13 项通过;最终提交与发布结果见 PR #24、版本 Release 和 [安装验收记录](releases/0.10.2-acceptance.md)。 helper 仍为 0.10.0,内容哈希与 SSH 执行逻辑均不变。
持续打磨日常开发流程:找到远程文件、修改并安全保存、运行代码、查看结果。 继续复用现有 OpenSSH、helper、会话路由和原生侧栏,不为了增加功能牺牲连接可靠性、 本地工作区隔离或模型权限边界。竞品只提供产品与交互参考,不直接等同于可复用的实现。 ## 0.11.0:结构、性能与远程工作台 本轮已实现并完成候选验收:移除 SSH2/SFTP、显式配置迁移、真实双文件并发、按页清单、直接范围读取、预计算 Top-K、可见性轮询、进度节流及统一四分区工作台。helper 升至 0.11.0,传输格式保留 v1。用户手动升级 Desktop 后,追加 DSH 0.2.1-rc.2 适配,同时保留 0.2.0-rc.2;不自动升级全局 CLI。实际操作、压力复核及范围见 [验收记录](releases/0.11.0-acceptance.md)。公开版本以 [GitHub Releases](https://github.com/CrazyShout/dsh-ssh-remote/releases) 为准。 ## 当前能力与缺口 0.13.0:已有功能的日常流程打磨,不扩展虚拟桌面。连接设置与顶栏/工作台共享状态订阅; 配置发现不等待远端探测,本地/SSH 目录入口独立加载。界面接入官方中英文语言设置, 复用原生路径、复选框和剪贴板,任务进度分层显示;官方插件详情加入可折叠入门指引。 helper 保持 0.11.0,原有标识与传输格式不变。验收进度见[候选记录](releases/0.13.0-acceptance.md),不把候选开发状态等同于公开发布。 0.12.0:README 前置快速安装与干净截图;官方插件详情页提供稳定版检查、提醒和用户确认的一键更新。安装复用官方管理服务,不接管其他插件、不覆盖源码链接、不自动重启。两版 SDK、本机 472 项回归、隔离 Web/Desktop 及小文件 SSH 检查已完成,详见[验收记录](releases/0.12.0-acceptance.md);公开发布状态以对应 Release 为准。helper 0.11.0 不变。 0.11.2:为现有 SSH 入口与远程工作台增加共享连接状态圆点,保留官方工作区/会话列表。复用真实工作区映射和现有状态接口,仅在可见时轮询;状态未知不保留旧绿点,不主动连接主机。两版 SDK 回归、隔离 Web/Desktop 视觉验收和实际安装包升级/回退已通过;helper 仍为 0.11.0。详见[验收记录](releases/0.11.2-acceptance.md),公开版本以 Release 为准。 后续界面目标:远程工作区文件夹叠加小地球、行尾单独显示主机名和连接状态。小地球表示远程身份,断线也保留;圆点表示实时连接状态。目前 DSH 0.2.0-rc.2 / 0.2.1-rc.2 的公开工作区接口没有对应行装饰插槽;待上游提供接口再接入,不替换官方列表、不依赖 DOM 注入,也不自动向上游提交反馈。原工作区名称与映射保持不变。 0.11.1:针对 #27/#28/#29 接入官方远程 skill provider,修复 fish/tcsh 登录 shell 的脚本包装和目录路径输入联动。helper 内容保持 0.11.0;新增真实登录 shell 回归和 Windows skill 路径/注册表用例。实际发布和验收结果见对应 Release,不把模拟路径测试当作完整 Windows Desktop 实测。 已有远程目录浏览、只读文件预览、会话归属明确的 Markdown 图片、人工 PTY、 模型文件写入与 Shell、版本校验写入和有界断线恢复。0.6.0 使用公开侧栏接口新增 独立文本编辑页签;原生预览仍保持只读,不修改上游私有组件。 以下是 0.5.1 规划时的源码快照,所列历史缺项以本页当前版本进度为准: - [原生面板](https://github.com/CrazyShout/dsh-ssh-remote/blob/5b8131824676c30ea0ab2e23ffc298ea93bb2c2a/client/native-panels.tsx)和[文件树路由](https://github.com/CrazyShout/dsh-ssh-remote/blob/5b8131824676c30ea0ab2e23ffc298ea93bb2c2a/src/workspace-files.ts):提供浏览与预览入口,没有人工编辑保存流程。 - [helper 文件适配器](https://github.com/CrazyShout/dsh-ssh-remote/blob/5b8131824676c30ea0ab2e23ffc298ea93bb2c2a/src/helper-fs.ts):已有带写入意图与版本检查的写入;大文件传输还需专门设计。当前 helper 写入上限为 64 MiB,`readByteRange` 每次从头跳读,不能直接拼成高效的大文件下载器。 - [人工终端](https://github.com/CrazyShout/dsh-ssh-remote/blob/5b8131824676c30ea0ab2e23ffc298ea93bb2c2a/src/user-pty.ts):已有终端进程生命周期、输入与输出游标,尚无逐条人工命令的完成事实和可靠 cwd 通知。 - [Host RPC 描述](https://github.com/CrazyShout/dsh-ssh-remote/blob/5b8131824676c30ea0ab2e23ffc298ea93bb2c2a/src/typert.host.ts)与[插件入口](https://github.com/CrazyShout/dsh-ssh-remote/blob/5b8131824676c30ea0ab2e23ffc298ea93bb2c2a/src/index.ts):尚未提供人工传输任务、转发管理或外部远程编辑器入口。 - 安装的 DSH `dsh-file-reference-local` 扫描本机目录;0.7.0 通过可选注入路由 `ctx.fileReferences.list`,远端使用 helper 的分页路径索引,本地保留原服务与调用上下文。 ## 优先级与实施顺序 | 阶段 | 目标 | 完成后用户可以做什么 | 状态 | | --- | --- | --- | --- | | M0 | 读取关闭、跨客户端写入及工作区取消的并发修复 | 关闭不会误读复用 FD,受控并发保存报冲突,取消阻止迟到资源发布 | 0.5.2 已实现并实测 | | M1 | 远程文本编辑与安全保存 | 在面板内修改代码或配置,保存前检查冲突 | 0.6.0 已实现并通过 Web/Desktop/SSH 验收 | | M1 | 远程文件 `@` 补全与快速打开 | 输入文件名找到远端文件,引用和读取同一个文件 | 0.7.0 已实现并通过 Web/Desktop/SSH 验收 | | M2 | 本地端口转发面板 | 打开远端 TensorBoard、Jupyter、Gradio 或开发网页 | 0.8.0 已实现并通过 Web/Desktop/SSH 验收,CI 以对应提交为准 | | M3 | 可恢复文件 / 多文件 / 目录传输,单文件与批次 1 TiB | 清单预览、分块校验、暂停 / 续传、重启后手动授权恢复 | 0.9.0 已实现并通过 Web/Desktop/SSH 验收,CI 以最终提交为准 | | 独立小任务 | VS Code Remote-SSH 打开入口 | 将明确的 SSH 主机和远端路径交给编辑器 | 待预研,可提前交付,不阻塞 M1 | | M4 | 终端 cwd 与命令状态感知 | 看到最近命令状态,并主动把所选终端上下文交给 Agent | 0.10.0 已实现并通过 Web/Desktop/SSH 验收;CI 以最终提交为准 | M1 的两项共用文件身份、缓存失效与打开文件的约定,可以分别验收,不必捆绑发布。 外部编辑器入口可以单独提前,但不能代替内置编辑保存这一目标。 ## M0 进入远程编辑前的可靠性门槛 - 读句柄关闭、缓存重放及会话回收共用生命周期保护;根目录 FD 的复制与关闭也必须安全。 - 同一 helper daemon 内的客户端共用按目标目录项标识的写入锁,同时覆盖普通写入与分块提交;不同文件保持并行。 - 工作区创建先预留额度;取消和会话关闭能阻止迟到发布。取消记录有界、可过期,但在途创建完成前不得失效。 - 客户端必须验证关闭或取消回执,无法确认时保留清理责任;不把超时、旧 helper 的 `closed:false` 当作撤销成功。 - 以事件屏障和 FD 复用回归证明原问题,再通过全量测试、跨平台 CI、Web/Desktop 与 `hk-wsl` 临时目录验收;保留旧版本回退,不自动终止用户现有终端。 M0 验收未完成前不进入 M1。写入保证仅覆盖同一 daemon:其他 helper 构建、其他 daemon 及任意外部编辑器可能绕过协调锁,`externalWriterRaceFree` 继续为 `false`。 验收时另观察到本机原生文件夹选择器的 30 秒等待限制:慢速手动导航会超时, Desktop 在期限内完成选择、文件预览和本地终端检查已通过;后台启动 Web 时的 原生选择器本轮未完成可视验收。这属于后续本地选择体验核查,不计作 M0 已修复内容。 ## M1 远程文件工作流 ### 编辑与保存 0.6.0 验收边界:独立公共侧栏页签,一份会话缓冲,256 KiB UTF-8 完整文本; 不含语法高亮、新建/另存为、混合换行或跨重启恢复。关闭页签和切换会话保留缓冲, 但插件重载、页面刷新与应用退出会丢弃内存草稿。没有修改上游安装包或模型审批策略。 随后 0.7.0 已补齐下节的 `@` 补全和快速打开,0.8.0 实施 M2 本地端口转发。 首版限定普通文本文件:编辑、手动保存、未保存标记、关闭或切换前提示、冲突处理。 保留只读预览;二进制、超大文件和不支持的编码明确拒绝进入编辑模式,不静默截断后保存。 新建文件和另存为可后续扩展,不先把整个文件管理器重写一遍。 实现约束: - 先确认 DSH 公共编辑器与保存接口;原生预览没有合适接口时,可探索独立编辑页签,不能调用私有组件或修改桌面安装包。 - 每份缓冲区绑定文档所属会话、已验证 SSH alias、远端规范路径和打开时版本;切换当前会话不能改变保存目标。 - 复用 helper 的原子写入与 `replace-if-version` 能力。同一 daemon 内的 Agent/客户端并发修改必须检测冲突;保留本地草稿,提供重新加载或差异查看。外部编辑器只能做版本复核,不承诺通用原子比较替换,不能宣称任意外部写入都不会覆盖。 - 保存响应丢失时显示“结果待确认”,复查版本或内容后再决定下一步;不直接重发不同内容,也不把超时说成撤销。 - 人工保存是显式用户操作,遵守其写入授权及远端权限;不得借新增 RPC 绕过会话校验,也不得放宽模型的 sandbox 或审批。 - 默认手动保存,保留换行格式;首次只承诺进程内脏缓冲保护。跨重启草稿恢复需另定私有存储与清理策略。 验收:中文与空格路径、同路径不同主机、会话切换、只读权限、并发改动、保存中断、 结果不确定、脏缓冲关闭提示、编码与大小限制;本地文件预览和模型写入不回归。 ### 文件引用补全与快速打开 先接入官方文件引用服务,让输入框中的 `@` 提供远端候选,再让快速打开复用同一远端索引。不能只让候选出现: 选择 `train.py` 后,引用、预览和标准文件读取都必须指向原会话的同一个远端文件。 实现约束: - 索引绑定 SSH alias 与规范工作区,并按会话授权使用;不同主机不能因路径相同而共用结果。 - Git 工作区优先利用远端文件列表并处理未跟踪文件、ignore 规则;非 Git 目录采用有界扫描。只索引路径,不默认读取文件内容。 - 查询可取消,有时间、条目和并发预算;维护中的索引不阻塞输入框。超限或使用旧快照时明确提示不完整或过期。 - 保存、传输与明确的文件变更使相关索引失效;保留手动刷新和有界过期机制,不承诺已具备远端实时监听。 - 保留完整路径打开入口,索引截断不能使已知文件完全不可达。支持中文、空格与重复文件名,特殊文件名使用正式引用语法。 - 远端失败只能提示错误,或使用同一远端的已标记旧快照;绝不退回本机 anchor 或本机同名路径。普通本地会话继续委托原服务。 验收:有无 Git、ignore 与未跟踪文件、大目录截断、冷索引与热查询、输入取消、 保存后刷新、多个主机与会话、断线;用真实引用后的标准读取验证内容归属,不以候选截图代替闭环。 ## M2 端口转发与结果预览 0.8.0 实施边界见 [ADR-0007](adr/0007-owned-port-forwarding.md):独立 OpenSSH guardian, 不增加 helper RPC;Host/Client 使用会话授权的公开侧栏服务。最多八条、仅回环、 不持久化、不自动重连。Web 打开按钮需要明确确认浏览器在显示的 Host 上; 不能仅因 DSH 页面地址是 localhost 就推定同机。只验证普通 HTTP/WebSocket, 没有安装或启动用户的 TensorBoard/Jupyter/Gradio,也没有测试这些产品的登录流程。 首版只做本地转发:显式选择已配置 SSH alias、远端服务端口和本机端口, 提供创建、状态、打开浏览器与停止。优先支持远端回环地址上的开发服务, 不自动扫描远端所有端口,不顺带部署或启动远端 DSH。 - 沿用系统 OpenSSH 配置、认证和主机指纹策略;本机监听限定回环地址,不默认开放到局域网或公网。 - 区分“转发监听已建立”和“远端服务可用”,端口占用或目标服务未启动要给出准确诊断。 - 每条转发都有明确的资源归属;停止和卸载只回收插件自己创建的连接。重连服从用户意图,停止后的迟到结果不得重新开启转发。 - 可以保存转发描述,但不默认在应用启动时悄悄恢复监听。含 Jupyter 等凭据的 URL 不进入普通日志或模型上下文。 - “本机”指运行 DSH 宿主的机器。Web 浏览器与宿主不在同机时,不把浏览器的 `127.0.0.1` 当成宿主;不以监听 `0.0.0.0` 解决地址不一致。 验收:TensorBoard 或普通 HTTP 服务、WebSocket 页面、端口冲突、服务未启动、 重复创建、多主机同端口、断线与手动停止、插件卸载、应用退出、回环监听检查。 反向转发和 SOCKS 代理不属于首版。 ## M3 人工文件传输 0.9.0 已一次实现单文件、多文件与目录,以及跨重启手动授权续传;以下以 [ADR-0008](adr/0008-durable-human-transfers.md) 的容量和恢复契约为准。 Web 与 Desktop 分别确认文件选择、目录选择和保存能力;不把浏览器限制写成两端均支持。 - 人工传输采用独立协议,单文件 / 单批 1 TiB、10,000 项、两个文件并发;模型文件工具仍限 64 MiB。通过分块背压、流式哈希和数字边界测试验证容量,不代表 TB 级吞吐已实测。 - 下载复用真正的流式读取,不为每个分片从文件头重复跳读;进度以实际确认的字节数计,不以排队数据计。 - 默认不覆盖已有文件;替换必须明确确认并检测远端版本。取消需清理暂存资源,已完成的文件仍如实列出,不能宣称整批自动回滚。 - 批量结果逐项展示成功、失败、跳过与待确认;可逐项重试。暂停、短时断线和跨应用重启续传绑定原身份及源版本,重启后等待用户重选来源 / 原下载目录,不自动恢复。 - 目录上传下载校验相对路径和目标根,默认不跟随符号链接;限制总文件数、字节数和并发。目录批量传输不等同于通过远端 shell 打包归档。 - 默认不传凭据目录和明显的临时构建目录;排除规则与实际清单在提交前可见,不自动同步整个工作区。 验收:文本和二进制、中文路径、同名文件、已有文件被并发修改、磁盘满、权限拒绝、 网络中断、取消后暂存清理、部分失败和重试、目录越界与符号链接、超限文件及大批量小文件。 Desktop 清理验收确认:选错目录不删除记录;原目录授权后仅移除暂存与记录,成品哈希不变。 ## 独立的 VS Code Remote-SSH 入口 新增一个名称明确的“用 VS Code Remote-SSH 打开”按钮或菜单项,携带验证过的 OpenSSH alias 和远端绝对路径。先支持 VS Code;其他编辑器在各自协议实测后再列入支持。 可先提供复制目标或连接命令的降级入口,但不静默下载副本后假装打开了远端。 此目标与接管 DSH 原生“本机打开”、Finder reveal 及既有快捷键是两件事: 独立入口可以单独预研;原生入口的完整改造仍受 [ADR-0006](adr/0006-reliability-and-file-identity.md) 所述会话身份和公开接口限制。Finder 本身也不因此获得 SSH 文件系统能力。 验收:本机已装编辑器与 Remote-SSH 扩展、缺依赖的提示、alias 的端口和跳板配置、 中文与空格路径、文件和目录、参数注入防护、取消打开、Desktop 与 Web 的宿主差异。 成功标准是编辑器确实连接正确主机并打开远端原件,而不只是外部 URL 被系统接受。 不自动安装编辑器或扩展,不引入完整 VS Code Agent Host 作为本功能的前提。 ## M4 终端目录与命令状态 实施边界见 [ADR-0009](adr/0009-observed-human-terminal-state.md)。新建默认交互终端 默认开启,原有终端不注入;独立非阻塞元数据通道,不解析屏幕文字来推断退出。 0.9.0 → 0.10.0 的持久传输清单已用 28 字节文件实测,保留 8 字节确认偏移且不自动恢复。 新建的受支持 Bash 与 Zsh 默认启用 shell integration,区分提示符、命令开始、 命令返回、退出码和 cwd。已有终端不注入;终端进程退出不代表某条命令已返回提示符。 - 首选本次 shell 的临时启动 hook,不默认修改用户 `.bashrc`、`.zshrc` 或 shell 配置。 - 不支持的 shell、嵌套 SSH、tmux 等情形先显示未知,不根据输出安静或正则匹配猜测完成。 - OSC 等终端输出可由程序伪造,只作为带来源的观察信息,不作为身份验证、权限提升或安全审批依据。 - 人工 cwd 不自动改写 Agent 工作区。用户明确选择后,才把主机、目录及有限输出片段预览并交给 Agent;敏感内容默认不自动采集或录制。 - 人工终端与模型命令继续保持权限和输入控制边界;观察到空闲不等于授权 Agent 向该 PTY 注入命令。 验收:成功与失败命令、管道、多行输入、Ctrl-C、后台任务、交互程序、`cd`、 重连、伪造标记、hook 初始化失败及不支持的 shell;普通原始终端操作保持可用。 ## 暂缓目标 Windows 远端、完整远端 DSH 控制面或界面接入、会话录制、数据库管理、 跨主机批量运维暂不进入近期主线。分别需要额外的平台实现、鉴权与历史归属、 隐私保留或操作授权设计;不能因为竞品列出了功能就并入当前轻量 SSH 路由。 ## 交付门槛 每项进入开发前记录所需公开 API、权限边界、最小范围和失败行为;接口不够时, 明确选择独立插件入口、向上游提需求或延期,不靠 DOM 操作、私有组件或安装包补丁绕过。 每项独立补回归测试,再在隔离 Web、Desktop 和实际 SSH 主机验证,并回归本地工作区。 至少覆盖多主机同路径、中文路径、迟到响应、取消、断线、资源清理与版本兼容。 不把组件测试通过等同于端到端可用,也不以竞品宣称的性能数值作为本插件验收结果。 沿用现有发布约束:按主题提交、保留回退点、推送前检查工作区和远端状态, 不创建无用途远程分支。下一项开工时重新核对 DSH 公开接口;本路线图不构成升级 DSH、 安装竞品、自动开端口、发布版本或修改用户配置的即时授权。 ## 竞品参考快照 以下链接固定到 2026-10-06 查询时的提交。内容是各项目 README 的声明, 不是本项目的安装实测、兼容性背书或性能基准;本路线图的取舍与验收标准是我们的开发决定。 | 参考项目 | README 提供的参考 | 借鉴时保留的区别 | | --- | --- | --- | | [ZhangFengshun dsh-remote-ssh](https://github.com/ZhangFengshun/dsh-remote-ssh/blob/eeb27968641ca13b351d5dbc62e99840f1c9973a/README.md) | 远程编辑保存、远端文件引用补全 | 其编辑界面依赖 better-sidebar;不能据此认定 DSH 原生预览已有保存接口 | | [SSH Ops](https://github.com/caoyiwei850/dsh-ssh-ops/blob/6913a4851634bba709aeeb9fb5b7e76f75c46c0b/README.md) | 文本编辑、转发面板、拖拽上传、目录批量工具、OSC 133 状态 | 批量目录传输和浏览器目录归档下载不同;README 仍把后者标为不可用 | | [flymysql dsh-remote](https://github.com/flymysql/dsh-remote/blob/03cf808ed34e315dad3a866a7069cb4d5ea2e0f5/README.md) | 远端引用补全、转发与传输工作流 | 其镜像方案里,候选可见不保证原生读取拿到远端内容;我们的验收必须覆盖实际读取 | | [Yan-Zero dsh-remote-ssh](https://github.com/Yan-Zero/dsh-remote-ssh/blob/21d727cbe24fbae283196e5101adb3de2bdd9157/README.md) | 携带远端身份的 VS Code 兼容编辑器入口 | 下载快照是副本,不是远程编辑;独立入口也不等于完整接管原生快捷键 |