READMESource: main@848b102b
根会话桥(dsh-cross-session-bridge)
面向 deepseek harness(dsh)生态的根会话桥插件:任何 dsh 会话(总控、子代理、任何会话)可经桥工具向可投递目标发送结构化信封消息;复用引擎 Agent inbox 为唯一投递队列,支持三档投递模式(队列/插队/立即执行);发送方获得同步 MessageId 回执并可查询消息生命周期。
适配 harness
webprofile(storage/settings 数据通道仅 web 组合恒有)。遵循 dsh 标准接口,未来可经同一接口适配其它宿主。
能力
- 跨会话消息投递(bridge_send):queue/front/now 三档投递;目标支持别名(优先)或裸 SessionId;返回稳定 MessageId 回执
- 在线会话与别名查询(bridge_list):在线会话 + 别名表(配置预置 + 运行时声明)
- 回执生命周期查询(bridge_receipts):按 MessageId/目标/发送方/时间段/状态过滤,查询已投递/已认领/已丢弃状态
- 回执与审计落盘:每次投递/认领/丢弃追加审计日志,重启可回放查询
- 运行时别名注册(bridge_register_alias):为会话声明人类可读别名,冲突时后注册失败并回执,持久化跨重启保留
- 统一配置层(bridge_config):白名单/模型覆盖配置 + 运行时状态统一入口,配置热加载(live)即时生效
- 安装/卸载脚本:一条命令安装/卸载,对称卸载即净(S2),幂等
- 自动加载投递:目标离线但在白名单内 → 自动恢复(resume)目标会话(组合恢复、驻留在线)并投递,回执携带
autoLoaded标记 - 双向通信(桥工具请求目录恒在):装上插件后所有 root 会话统一拥有双向通信能力——自动加载恢复的会话也能经桥回复
- web UI 设置页「根会话桥」(规划中):会话名称映射(别名管理)+ 根会话通信权限 + 配置导入/导出
安装 / 卸载
安装/卸载各为一条命令(仅依赖 pnpm 与 dsh 自身,绝不修改系统环境)。两种安装方式:
| 方式 | 适用场景 | 前提 | 效果 |
|---|---|---|---|
| release(默认) | 正式使用——从预编译 tgz 装配,无需本地源码 | 预编译 tgz:本地文件(-ReleaseTgz)或下载 URL(-ReleaseUrl,如 GitHub Release 资产 dsh-cross-session-bridge-0.1.0.tgz);dsh 在 PATH |
直接装配预构建产物到 profile,即装即用 |
| source | 开发/调试——从本地源码构建后装配(修改插件源码后验证) | 插件源码 checkout(默认 = 当前包根,-SourceDir 可指定);dsh 在 PATH(源码版 harness 需 -SourceDshDir <harness checkout>);插件依赖已安装(pnpm install) |
构建 lib/ 后经 dsh plugin add 链接注册——改动源码后重跑即更新装配 |
# 安装 release:本地预编译 tgz
.\scripts\install.ps1 -Mode release -ReleaseTgz .\dsh-cross-session-bridge-0.1.0.tgz
# 安装 release:从 URL 下载后装配(如 GitHub Release 资产)
.\scripts\install.ps1 -Mode release -ReleaseUrl https://github.com/<org>/<repo>/releases/download/v0.1.0/dsh-cross-session-bridge-0.1.0.tgz
# 源码装配(构建本地 checkout 后链接注册;开发/调试用)
.\scripts\install.ps1 -Mode source
# 卸载:对称即净,幂等;交互询问是否清理用户配置与数据(默认保留)
.\scripts\uninstall.ps1
# 卸载并显式清理用户配置与数据(无人值守/自动化)
.\scripts\uninstall.ps1 -ForceClean
等价 pnpm 快捷入口:pnpm plugin:install / pnpm plugin:uninstall。
完整参数与说明见 INSTALL.md。验证:bridge_send 可用(dsh --profile web --dump-config 出现本插件补丁行)。
已知限制
- web UI 设置页(06)——规划中,尚未实现;白名单外离线目标保持
discarded拒绝 - 离线持久队列——不做(自动加载走实时 resume)
- 跨父级子代理直投(引擎权限限制)——经目标父代理转交
- 拒收/黑白名单权限模型、task/notice 多消息类型、面板发送 UI——不在当前范围
- 跨进程双活无锁(同一持久化 root 多进程同时唤醒同一会话)——harness 层已知边界
修改记录
见 CHANGELOG.md。
No comments yet. Be the first to write one.