dsh-plugin-bridge
v0.4.0
Published
Previewable cross-preset session migration for DeepSeek Harness with bounded, fixed-schema handoffs
Downloads
2,286
Maintainers
Readme
dsh-plugin-bridge
English | 中文
在 Web preset 做到一半,想换 Code preset 继续?直接切换会让旧工具组的调用历史留在新组合里。Bridge 先生成一份有界、可编辑的五段交接,再建立干净目标会话;原会话始终不动。
快速开始 · 为什么是-bridge · 实测证据 · 迁移决策 · 兼容性
快速开始
从 npm 安装:
dsh plugin --profile web add dsh-plugin-bridge在 DSH 0.1.5-rc.2 上,添加或移除插件后需要重启 dsh web。在 DSH 0.1.6-alpha.2 上,从 WebUI「插件」页首次安装可以直接生效;CLI 安装或升级已有插件仍可能需要一次重启。DSH 0.1.7-alpha.1 已验收 CLI 安装、实时停用/启用及卸载后重启;未验证免重启安装或升级。
GitHub 固定版本备用路径:
dsh plugin --profile web add github:Totoro-qaq/dsh-plugin-bridge#v0.4.0然后在官方 WebUI 输入:
/bridge 列出目标 preset
/bridge --doctor DSH 升级后检查 host 契约
/bridge code 只预览交接,什么都不改
/bridge code --go 迁移、复述,然后等待
/bridge code --go --continue 在同一次目标请求里复述并开始工作DSH rc.7 及以上会在官方 WebUI 原生卡片中渲染 /bridge。「文本编辑」把固定五段变成普通文本框,并无损支持平坦的项目符号或编号列表;「Markdown」保留完整源码自由;「预览」渲染 Markdown 或完整 JSON 树。长内容只在卡片正文内滚动;点「确认迁移」后自动打开目标会话。Bridge 0.3.10 在已测的窄窗口中为固定输入栏留出了确认按钮的可点击空间。
实现官方 conversation.chat.commandview slot 的第三方 UI 会自动得到同一张卡片。其他自定义 UI 仍保留完整服务端结果、摘要文件流程和目标标题/session ID 回退;UI 作者还可以复用无 React 的 dsh-plugin-bridge/client-contract 导出,而无需重写协议。旧客户端可修改输出里打印的摘要文件,再执行:
/bridge code --go --file <路径>预览中的修改在确认迁移前只是临时草稿。重启客户端或系统可能使其丢失;源会话始终不受影响,重新运行预览即可生成新的草稿。
卸载:dsh plugin --profile web remove dsh-plugin-bridge,然后重启 dsh web。
为什么是 Bridge
| 承诺 | 具体含义 |
|---|---|
| 执行前预览 | /bridge <preset> 不创建目标、不改源会话;先检查或修改固定五段交接。 |
| 迁状态,不迁工具痕迹 | 决策、路径、当前状态和下一步进入干净 preset;旧工具组的不兼容调用不会跟过去。 |
| 失败时关闭迁移 | kickoff 前暂停目标;无法保证时清除/取消目标,不发送模型请求。 |
只安装、不调用时,普通会话增加 0 Bridge prompt token。它是 host slash command,不是模型工具或 skill。
实测证据
这是小样本、可复现的回归门禁,不是总体准确率保证。
| Gate | 结果 |
|---|---:|
| 五段摘要事实 | 30/30 |
| 目标复述 / 首次有效工作事实 | 60/60 · 60/60 |
| 关键事实 / 旧值复活 | 90/90 · 0 |
| 已有图片证据 / 未解析原图路径 | 5/5 · 5/5 |
| Confirm / --continue 到首次有效工作的目标请求数 | 2 · 1 |
| Confirm 相对 --continue 的 nominal 配对中位额外成本 | +8.1% |
| 摘要 worker 在干净验收组件中的 nominal 占比 | 20.74% |
| 原生 WebUI 重复门禁(预览 / 目标事实) | 3/3 · 3/3,每次五项 |
| DSH 0.1.2 alpha.2 / alpha.3 / alpha.5 官方 WebUI 实装 | 13/13 · 编号列表编辑 · PTC 已暂停 · 图片转文本降级 |
| DSH 0.1.5-rc.1 官方 WebUI 实装,npm Bridge 0.3.4 | 13/13 · 3/3 次迁移 · 编辑逐字送达 · PTC 已暂停 · 原图直达视觉目标 |
token 百分比会随 preset、回复长度和缓存状态大幅波动;worker 占比是组成,不是相对“无 Bridge”的因果开销。稳定结论是默认确认多一个请求。边界和原始证据见设计与证据说明、完整 release report和视觉迁移报告。
工作原理
折叠历史 -> 五段交接 -> 预览/编辑 -> 干净目标会话
-> 暂停存储目标 -> 注入 -> 复述 -> 等待或同轮继续
图片历史 -> 原样搬运助手证据;未解析原图走附件网关五段分别是:目标、当前状态、关键决策与约定、关键文件、下一步。原会话不会被改写;接得不好时归档目标,直接回源会话。
迁移决策
| 场景 | Bridge 行为 | 成本 / 保真影响 |
|---|---|---|
| 只安装,不调用 /bridge | 不注入提示,不注册模型工具 | 0 Bridge prompt token |
| /bridge code | 起一个有界摘要 worker,只输出预览 | 不创建目标会话 |
| 默认 --go | 目标先复述再等待 | 首次有效工作前多一个显式确认请求 |
| --go --continue | 确认既定下一步,同一次目标请求里复述并开工 | 单独审批和安全限制仍生效,没有后台 goal 轮次 |
| 图片已有助手分析 | 逐字搬运对应回答 | 默认不重发原图 |
| 图片未解析,目标可接图 | 搬原附件并保留源 VLM | 视觉费用由所选 provider 计算 |
| 图片未解析,目标是纯文本模型 | prompt 准入拒图,Bridge 显式发送文字降级 | 不暗启本地 VLM,也不假装看懂图片 |
兼容性
Bridge 0.4.0 在已测的 DSH 0.2.0-rc.2 官方计划评审卡上增加了 “批准并在新会话执行”。用 /plan 规划,模型通过 exit_plan_mode 呈交完整计划后,点击该按钮:原规划轮次停止,原会话保留计划模式;新会话沿用当前工具模式、模型和工作目录,逐字接收批准的计划并开始实施。原有“同意执行”和“要求修改”仍按宿主原来的方式工作。详见计划批准交接说明。
| DSH 基线 | 服务端交接 | 原生卡片 | 验证边界 |
|---|---:|---:|---|
| 0.1.0-rc.6 | 支持 | 不支持 | 窄 RPC 契约与文本兼容测试 |
| 0.1.0-rc.7 / rc.8 | 支持 | 契约核对 | client module / command slot 契约与服务端回退 |
| 0.1.1-rc.2 | 支持 | 支持 | 官方 WebUI 实装:doctor 13/13、编辑/确认/自动跳转、三次重复门禁 |
| 0.1.2-alpha.2 / alpha.3 / alpha.5 | 支持 | 支持 | 官方 DSH npm 宿主:typed controllers 13/13 与 PTC 自动跳转;alpha.5 门禁安装分支 tarball,保留 alpha.3 标题,编号列表可编辑,未解析图片降级为文本,卸载干净 |
| 0.1.2-rc.1 → 0.1.3-alpha.2 | 支持(Bridge 0.3.3+) | 支持(Bridge 0.3.3+) | 官方 npm 宿主真实升级、v2 历史与标题保留、编辑内容逐字交接、PTC goal 暂停、图片回退及卸载;见验收记录 |
| 0.1.5-alpha.1 | 支持(Bridge 0.3.4+) | 支持(Bridge 0.3.4+) | 官方 npm 宿主(会话格式 V3):tarball 安装、原生卡片 bundle 已下发、V3 会话上 doctor 13/13 与预设列表;SDK 类型 diff 与 V3 折叠 fixture。未重跑需要模型的预览、迁移与图片回退;见smoke 记录 |
| 0.1.5-rc.1 | 支持(Bridge 0.3.4+) | 支持(Bridge 0.3.4+) | 官方 npm 宿主,已发布的 0.3.4 未改动:doctor 13/13,原生卡片实际渲染,三次真实模型迁移到 PTC,编辑内容逐字交接且 goal 保持暂停,未解析图片以原图交给支持图片的默认模型;见验收记录 |
| 0.1.6-alpha.1 | 支持(Bridge 0.3.6+) | 支持(Bridge 0.3.6+) | 官方 npm 宿主:doctor 13/13,原生卡片实际渲染,PTC 运行时改名后 ptc 仍可迁入,未配置 key 时预览按设计失败退出;SDK 变化只有新增,lib/ 与 0.3.5 逐字节相同。未重跑真实模型迁移;见smoke 记录 |
| 0.1.6-alpha.2 | 支持(Bridge 0.3.7+) | 支持(Bridge 0.3.7+) | 官方 npm 宿主:Bridge 0.3.6 能完成迁移,但「打开目标会话」按钮报 ctx.sessions.open is not a function;Bridge 0.3.7 在 alpha.2 和 alpha.1 上都通过 uiWorkspace.openSession 打开目标,goal 保持暂停,在插件页实时停用和启用也正常;见验收记录 |
| 0.1.7-alpha.1 | 支持(实测 Bridge 0.3.9) | 支持(实测 Bridge 0.3.9) | 已发布包未改动:13 个 V3 会话恢复为 V4、12 个标题保留、doctor 13/13、真实模型编辑与两种迁移模式、自动跳转、暂停 goal、worker 清理、图片转文本回退及实时启停。卸载清除包/命令/CSS,但留下失效 CLI 链接;见验收记录。 |
| 0.1.7-alpha.2 | 支持(Bridge 0.3.10 源码) | 支持(Bridge 0.3.10 源码) | 官方 npm 宿主 + 本地打包的 Bridge 源码:doctor 13/13、真实模型预览、文本/Markdown 往返、640/800 像素宽窗口确认按钮可达、编辑稿逐字交接、目标无工具调用、自动跳转且 goal 暂停。这里是源码验收,不等于已完成 npm 包安装验收;见限定范围验收。 |
| 0.1.7-rc.1 | 支持(Bridge 0.3.10) | 支持(Bridge 0.3.10) | 官方 npm 宿主隔离验收:全新 profile 安装;已有会话上 WebUI 启动、doctor 13/13;一次真实模型文本/Markdown 编辑并迁入 ptc,编辑稿逐字交接、自动跳转、goal 暂停、目标无工具调用、源会话不变;640/800 像素宽确认按钮可点击。卸载重启通过,但仍留下失效 CLI 链接。测试宿主因 registry 问题跳过可选办公组件;见验收边界。 |
| 0.2.0-rc.2 | 支持(实测 Bridge 0.3.10;0.3.11 补声明) | 支持(运行代码相同) | 官方 npm WebUI 隔离验收:doctor 13/13、真实预览与文本/Markdown 编辑、编辑稿逐字交接、直接继续和等待确认、自动跳转、暂停 goal、原图传递/文本回退、实时启停及卸载重启。仍留失效 CLI 链接;未覆盖全量可选组件和原生桌面端,见限定范围验收。 |
DSH 0.1.5-alpha.1 请使用 Bridge 0.3.4 或更高版本:DSH 没有发布 0.1.4,而 ^0.1.3-alpha.2 这类 caret 预发布范围不会匹配下一个预发布 minor,所以 0.3.4 追加 ^0.1.5-alpha.1 并基于该 SDK 构建,lib/ 产物逐字节相同。会话格式 V3 把系统提示词记成 system/message surface node;Bridge 只折叠用户、助手和工具事件,提示词文本不会进入交接。DSH 0.1.3-alpha.2 请使用 Bridge 0.3.3 或更高版本;Bridge 0.3.2 不包含那些兼容改动。typed adapter 只调用一次 inspect,就能读取默认 240 条消息的历史窗口,原来需要四次;不会缓存运行状态。doctor 检查方法是否存在,不能代替完整迁移验收。 同一个 ^0.1.5-alpha.1 范围也覆盖 0.1.5-rc.1 和之后的 0.1.5 正式版,所以 rc.1 不需要新发 Bridge。
0.3.5 起压缩工人默认跟随会话当前模型(modelTier: current)。在 DSH 0.1.5-rc.1 上这就是 V4.1-Flash,它在档位对比里与 V4-Pro 打平,摘要用时约减半。DSH 0.1.5-rc.1 之前的版本没有 V4.1-Flash,请设 DSH_BRIDGE_TIER=pro 或用 --tier pro。
DSH 0.1.6-alpha.1 请使用 Bridge 0.3.6 或更高版本(只改了依赖范围,发布代码与 0.3.5 相同)。
0.3.8 起五个 DSH 可选 peer 范围改为 "*",由 engines.dsh 表达宿主支持声明。Bridge 0.3.11 声明 >=0.1.0-rc.7 <0.2.0-0 || 0.2.0-rc.2:保留原 0.1.x 范围,只追加已验收的 0.2.0-rc.2,不提前承诺其他 0.2 预发布版或 0.2.0 正式版。dshmarket 以 includePrerelease: true 评估此字段;官方 0.2.0-rc.2 安装器检查的是 DSH peer 范围,因此“能安装”不等于“已经验收支持”。
DSH 0.1.6-alpha.2 删除了客户端的 sessions.open。Bridge 0.3.6 在上面仍能完成迁移,但「打开目标会话」按钮会报 ctx.sessions.open is not a function。请使用 Bridge 0.3.7 或更高版本,它改为通过 WebUI 导航服务 uiWorkspace.openSession 打开目标,旧宿主上回退到 sessions.open。
CI 覆盖 Node.js 22/24。每次升级 Harness 后先跑 /bridge --doctor;缺哪个必要网关方法会被直接点名。
DSH 0.1.7-alpha.1 使用已发布的 Bridge 0.3.9,在 macOS / Node 22.23.1 上完成验收,没有改运行时代码或依赖。V3→V4 测试使用已有测试 home 的副本;升级前请备份 DSH_HOME,包括会话和 profiles,不要只备份插件目录。旧自定义目录 preset 的迁移、其他 UI/插件组合及 Windows 不在本轮范围内。本次兼容验收不需要另发 Bridge npm。
Bridge 0.3.10 包含在 DSH 0.1.7-alpha.2 上验收的源码修复:压缩工人漏写时,将窄范围内识别出的、仍然生效的用户“禁用工具/禁止读写文件”明文约束补进可编辑交接稿;小窗口中确认按钮不再被固定输入栏遮挡。用户后来明确放开限制时,旧限制不再补入。这不是“所有用户约束都能自动保真”的承诺,确认前仍应过目并编辑;最终按编辑稿逐字交接。所链验收记录发生在 npm 发布之前,不应视为已发布包的安装验收。
已发布的 Bridge 0.3.10 还通过了 DSH 0.1.7-rc.1 的限定范围兼容验收,无需改 Bridge 运行时代码或重发 npm。这不是对 DSH 所有可选依赖和第三方 UI 的验收;具体范围见rc.1 记录,升级自己的宿主后仍应运行 /bridge --doctor。
针对 DSH 0.2.0-rc.2,Bridge 0.3.11 仅更新支持元数据和文档,迁移运行代码与实测的已发布 0.3.10 相同。验收记录区分了真实模型/WebUI 测试和打包检查;不代表 DSH 0.2.0 正式版、原生桌面端登录/退出、所有可选组件或第三方 UI 已经通过验收。
当前边界:
- 用 CLI(
dsh plugin --profile web add)安装后可能需要重启一次 WebUI;DSH 0.1.6-alpha.2 在 WebUI「插件」页首次添加包名dsh-plugin-bridge可以直接生效,在那里升级已安装的版本仍需重启; - DSH 0.1.7-alpha.1 / pnpm 11.22.0 的 CLI 卸载,在升级和干净 profile 中都留下了失效的
node_modules/.bin/dsh-bridge链接及包管理元信息;0.1.7-rc.1 的 CLI 卸载及 0.2.0-rc.2 的 WebUI 卸载也留下失效链接,但插件包及依赖声明已删除、WebUI 可重启。不能称为磁盘完全零痕迹; - 原生卡片通过 WebUI 导航服务(
uiWorkspace.openSession,旧宿主回退到sessions.open)打开目标;旧客户端仍回退为标题和 ID; - worker 运行时立即显示进度;早期原生卡片三次固定样本的 worker 用时为 7.4–12.8 秒,用时会随宿主、模型和输入变化,
previewTimeoutMs仍是硬上限; - 纯文本模型无法读取未解析原图;
- 原生卡片重复门禁也只有三次固定输入,是发布证据,不是统计保证。
服务端命令仍是兼容核心。同一个包现在附带可选的官方 WebUI client half,负责渲染、编辑和跳转;即使 prerelease 客户端契约加载失败,/bridge 的完整服务端结果仍在。详见实现边界。
文档
- 设计、安全、图片策略、成本与证据
- 中文安装、配置、回退与 FAQ
- 完整 release acceptance
- 视觉迁移报告
- 原生 WebUI 重复验收
- DSH 0.1.2-alpha.2 兼容性验收
- DSH 0.1.5-rc.1 兼容性验收
- DSH 0.1.5-rc.1 压缩档位对比
- DSH 0.1.6-alpha.1 兼容性 smoke
- DSH 0.1.6-alpha.2 兼容性验收
- DSH 0.1.7-alpha.1 兼容性验收
- DSH 0.1.7-alpha.2 源码候选版验收
- DSH 0.1.7-rc.1 兼容性验收
- DSH 0.2.0-rc.2 兼容性验收
- 历史压缩档位 benchmark
开发验证
npm ci
npm run verifyverify 会构建并类型检查插件两端、运行 211 项测试、核对 lib/ 与数据集,再把真实 npm tarball 打包、安装并导入。测试不消耗模型 token。prepublishOnly 使用同一个 gate;GitHub Release 还会先检查 tag 与 package.json 版本一致,再走可信 npm 发布。
社区收录:Awesome DSH Plugin · Awesome DeepSeek Harness
生态发现入口:dsh-TUI。Bridge 仍按标准 DSH 插件安装;TUI/std 一致性适配另行跟踪。
License
MIT
