前言¶
在 DeepSeek Harness(DSH)里同时开多个会话时,常见问题是:完整会话 ID 不好找、不好复制;想读另一个会话最近说了什么,或往指定会话塞一条 user 消息,往往只能手动切窗口。临时试代码又不想污染正式项目目录时,也需要和 Host 工作区模型对齐的入口。
Session Bridge(@missher/dsh-session-bridge)是 Missher12 维护的独立 Cordis Bundle,面向客户端侧:在侧栏会话菜单里提供 ID 与引用复制,并注册跨会话模型工具与人类命令,以及「不在工作区」与 /scratch 一类临时目录能力。它不是 DeepSeek 官方产品;社区目录见 SkillHub 插件页,源码与安装包见 GitHub 仓库。
这是什么¶
一句话:为 DSH 显示与复制完整会话 ID,并提供跨会话查询、读取、投递,以及临时工作区相关能力。
- 包名:
@missher/dsh-session-bridge - 当前资料版本:0.1.4(README 注明顶部 ID 已移至侧栏菜单)
- 形态:独立、可卸载的 Cordis Bundle,不需要另装兼容插件
- 分类:客户端(含 Web 注入与侧栏 UI)
0.1.4 起,会话 ID 收在左侧会话行的三点菜单里;顶部标题栏不再显示额外 ID 控件。菜单可复制完整 ID、工作目录或 /bridge 引用;归档行另有带二次确认的「删除会话…」(是否可用取决于宿主是否提供 deleteArchivedSession)。
核心功能¶
会话 ID 与侧栏菜单¶
在左侧找到目标会话,点击该行三点菜单:
- 复制会话 ID:结果保留完整
session-前缀。 - 也可复制工作目录或
/bridge <session-id>引用。
操作针对被点击的会话(含归档行),不切换当前会话;目录未加载或复制失败会有提示。顶部只保留会话标题等 Host 原有操作,不再重复 ID 控件。
「不在工作区」与 scratch¶
新会话选择器末尾有 「不在工作区(临时目录)…」。选择后复用配置根目录下的 dsh-scratch 工作区,默认标题为「不在工作区」;macOS 默认规范路径为 /private/tmp/dsh-scratch。这是正式注册的工作区,并非真正无工作区会话——宿主 blank 会话流程仍需要工作区。
只打开选择器不会创建目录或会话;重复选择会复用规范路径及真实工作区 ID。固定路径若是符号链接、非当前用户所有,或可被组/其他用户写入,创建会失败。
与 UI 不同,模型工具 session_scratch 和命令 /scratch 在每次调用时可建立独立的一次性目录;临时目录可能被系统清理,不宜作为重要文件的唯一存放处。
模型工具¶
| 工具 | 作用 |
|---|---|
session_list |
列出会话 ID、标题、目录和运行状态;默认排除子代理会话。 |
session_read |
读取目标最近的用户/助手文本(不含思维链和工具结果);只读,不唤醒目标。 |
session_send |
向目标投递真实 user-role 消息;steer 在步骤边界送达,turn 排队为独立回合。 |
session_scratch |
session 模式在独立临时目录创建会话;directory 模式不创建会话,默认仍注册工作区,可用 registerScratchWorkspace: false 关闭。 |
目标接受精确 ID、忽略大小写的精确标题或唯一 ID 前缀;有歧义则拒绝,不猜测。
人类命令¶
| 命令 | 作用 |
|---|---|
/sessions [过滤词] |
列出会话 ID 与标题。 |
/bridge <ID或标题> <消息> |
给指定会话投递消息;含空格标题按可唯一解析的最长前缀识别。 |
/scratch [标签] |
新建临时目录会话。 |
/scratch-clean |
预览可清理的一次性临时项目。 |
/scratch-clean yes |
注销符合条件的项目并删除其目录。 |
/scratch-clean 按规范化 scratchRoot、目录名以 dsh- 开头、且无非空白会话等条件筛选已注册工作区,始终排除固定 dsh-scratch。不检查插件创建标记;其他符合条件的 dsh-* 工作区也可能入选。目录内自行保存的文件也会删除——先跑预览,再执行 yes。
安装与启用¶
安装包从 Releases 页面 获取。以页面为准选择 0.1.4,下载 missher-dsh-session-bridge-0.1.4.tgz 与 SHA256SUMS。不要把 GitHub 自动生成的源码压缩包当作插件安装包;运行包已含 lib,无需本地构建。
下载后在同一目录校验完整性:
# macOS
shasum -a 256 -c SHA256SUMS
# Linux
sha256sum -c SHA256SUMS
Desktop:打开「插件 → 添加插件」,选择本地 .tgz 或填写 Release 固定地址(标签以 Release 页为准):
https://github.com/Missher12/Missher-DSH-Session-Bridge/releases/download/<tag>/missher-dsh-session-bridge-0.1.4.tgz
确认版本及组件 session-bridge 已启用;按 Host 提示重新加载,必要时完全退出后重开。Desktop 的 desktop profile 由应用内入口管理。
已有 DSH CLI 的 Web 用户:在自己的 Web profile 安装(不修改 Desktop profile):
dsh plugin --profile web add /absolute/path/to/missher-dsh-session-bridge-0.1.4.tgz
发布后可将本地路径换成上述 Release URL。首次测试建议使用独立 DSH_HOME / DSH_AGENTS_HOME。不要同时启用旧包 dsh-session-bridge、开发别名 session-bridge-dev 与当前 scoped 包——会重复注册 session_list 等工具。升级前保留旧包与配置,等当前任务结束再重新加载。
典型用法¶
复制 ID 并跨会话投递¶
- 在侧栏目标会话的三点菜单选「复制会话 ID」。
- 在当前会话输入(示例格式以 README 为准):
/bridge session-xxxxxxxx 请总结你刚才的结论
也可用唯一标题前缀替代完整 ID;标题含空格时,/bridge 会按可唯一解析的最长前缀识别。
列举与只读查看¶
/sessions
模型侧可调用 session_list、session_read 做自动化编排;session_read 不会唤醒冷会话(与 session_send 的 wakeColdSessions 配置相关行为不同,发送默认可唤醒,见配置表)。
临时目录¶
界面:新会话选择器末尾选「不在工作区(临时目录)…」,复用 dsh-scratch。
命令或工具: /scratch my-tag 或 session_scratch,在 scratchRoot 下创建带前缀的一次性目录(默认前缀 dsh-session-)。
配置¶
所有字段可选。Bundle 已声明正式实例,不要在 profile 里再插第二个同名插件行;需要覆盖时在目标 profile patch 中按既有 id: session-bridge 更新:
- id: session-bridge
config:
scratchRoot: /tmp
scratchPrefix: dsh-session-
| 字段 | 默认值 | 含义 |
|---|---|---|
scratchRoot |
POSIX /tmp;Windows 系统临时目录 |
临时目录的父目录。 |
scratchPrefix |
dsh-session- |
一次性目录前缀。 |
registerScratchWorkspace |
true |
工具创建的临时目录是否注册为工作区。 |
maxListedSessions |
40 |
单次列举上限。 |
maxTranscriptTurns |
20 |
最近转写回合上限。 |
maxMessageChars |
8000 |
单条跨会话消息字符上限。 |
wakeColdSessions |
true |
是否允许唤醒冷会话投递。 |
announceSessionId |
true |
系统提示中是否声明自身 ID 与跨会话工具。 |
适用场景与注意¶
适合谁
- 需要在侧栏快速复制完整会话 ID、工作目录或
/bridge引用的 DSH 用户。 - 用多会话协作:一个会话编排,向另一个会话
session_send或/bridge投递任务。 - 需要与 Host 工作区模型一致的 scratch /「不在工作区」入口,又不想手改目录。
权限与隐私
插件以当前 DSH 进程权限运行,无独立遥测或外部上传;界面走 Host 受鉴权 HTTP。它能通过 Host 读取会话目录与用户/助手文本,并向其他会话发送真实 user 消息;目标模型仍遵循目标会话的供应商、权限与费用。跨会话信封会标注来源,但没有额外人工审批队列——投递前先确认目标会话。安装前建议自行查看 LICENSE 与源码。
Host 能力边界
- 归档「删除会话…」依赖
sessionController.deleteArchivedSession;缺失时入口隐藏,插件不读 Host 私有日志。 - 将「不在工作区」组排在侧栏末尾依赖
uiWorkspace.registerTrailingWorkspace;缺失时保留普通排序。 - README 说明兼容判定按能力而非宿主版本号硬限制;具体验证层次见仓库内
COMPATIBILITY.json与官方 alpha.5 增量记录。
停用与卸载
在插件管理关闭 Bundle 并重新加载即可停用;Web CLI 也可:
dsh plugin --profile web remove @missher/dsh-session-bridge
停用/卸载不会删除已有聊天记录、工作区或临时目录文件,也不会撤销已在目标会话开始的任务。
结尾¶
Session Bridge 把会话 ID 管理、跨会话只读/投递和 scratch 工作区收进一个可卸载的客户端 Bundle,适合多会话并行时的日常操作与轻量编排。桌面安装包与文档见 Missher DeepseekHarness Desktop 相关链接;插件目录页:SkillHub · Missher-DSH-Session-Bridge;源码与 Release:GitHub · Missher-DSH-Session-Bridge。