前言¶
在 DSH 输入框的提交按钮旁多一个按钮:一键把当前会话「总结 → 固化记忆 → 写成交接文档 → 预览确认 → 带进新会话继续干」。
长任务跑到上下文快满、要换模型/换预设、要把手里的一摊活交给另一个会话或同事时,最贵的不是「再开一个会话」,而是重新讲一遍已经发生了什么。本插件把这一步做成一次点击:读取当前会话日志 → 确定性提取事实 → 让模型归纳成五段式交接 → 在会话工作目录写一份 WorkSummary.md(+ 机器可读 handoff.json + 记忆台账)→ 弹出可编辑预览(提示词可改、参考文件可勾选)→ 确认后打开一个新会话,把摘要、交接文档路径与参考文件预填成第一句提示词。
是什么¶
dsh-session-handoff 是一个 DSH 插件,维护者:yangsong608,分类:记忆。它面向 DSH 0.2.x(>=0.2.0-rc.1 <0.3.0-0)及 Node ≥22 的环境。插件不删原会话、不 fork 历史,新会话是干净的,只携带「结论 + 文档指针」,token 成本可控;模型不可用/超时/输出不合法时自动降级为确定性摘要,文档照样生成。
核心功能¶
一次性会话交接¶
在任意会话里,输入框右侧、发送按钮附近会出现「接力」图标按钮;也可以按 Cmd/Ctrl+Shift+H(Linux 为 Cmd/Ctrl+Shift+.,因 DSH 把 primary+KeyH 视为保留键)。点一下后,按钮转圈(整理中),弹出交接预览卡,显示一句话状态、下一步、记忆候选、文档路径、可编辑提示词、参考文件勾选。确认后打开一个新会话,输入框里已预填交接提示词。
产物与结构¶
交接文档留在 <工作目录>/.dsh-handoff/<时间戳>-<标题>/,包含:
WorkSummary.md:人读的五段式交接 + 工具活动附录handoff.json:机器可读的 schemadsh-session-handoff/v1交接记忆.md:跨会话可复用的偏好/约定/事实(去重追加)
WorkSummary.md 固定包含:目标与意图 / 已完成 / 关键决策 / 当前状态 / 下一步 / 记忆候选 / 参考文件 / 工具活动附录。没有模型时,前四段由确定性规则生成并标注 generated_by: deterministic。
可编辑预览与安全边界¶
生成后先弹预览卡,提示词可编辑、参考文件可勾选,确认才开新会话;也可关掉预览直接预填草稿。安全边界包括:只读会话(不向会话日志追加事件,不修改标题/压缩状态)、写盘仅限当前会话 cwd 下配置目录、同源 POST 必须带 x-dsh-handoff: 1 且 Origin 与 Host 一致、不引入新外发通道、文件权限 0600 与原子写、不覆盖既有文档、记忆只追加不重复。
安装与启用¶
从 npm 安装(发布后):
dsh plugin --profile desktop add dsh-session-handoff
或从本地检出(开发态):
dsh plugin --profile desktop add link:/path/to/dsh-session-handoff
从市场/插件页安装通常可热加载;用 CLI 安装后如按钮未出现,刷新页面,仍没有则重启一次 DSH。卸载:
dsh plugin --profile desktop remove dsh-session-handoff
配置(可选)¶
在 profile 的 bundle patch 里给这一行加 config:,全部字段可选:
- insert:
- id: session-handoff
name: dsh-session-handoff
config:
dir: .dsh-handoff # 交接文档目录(相对会话 cwd)
writeMemory: true # 写/合并记忆台账
preview: true # true = 先弹可编辑预览;false = 直接开新会话(v0.1 行为)
autoSend: false # 预览关闭时:true = 直接发送;false = 预填草稿
provider: '' # 为空则沿用会话最后一次请求的路由
model: ''
maxTokens: 8192
maxInputChars: 80000
promptCharBudget: 6000
典型用法¶
- 在任意会话里,输入框右侧、发送按钮附近会出现「接力」图标按钮;也可以按
Cmd/Ctrl+Shift+H。 - 点一下 → 按钮转圈(整理中)→ 弹出交接预览卡:一句话状态、下一步、记忆候选、文档路径、可编辑提示词、参考文件勾选。
- 改完点「打开新会话」→ 切到同一工作区的新会话,输入框里已经填好(可能被你改过的)交接提示词。
- 新会话的第一件事:读交接文档(绝对路径已写进提示词),然后从「下一步」第一项继续。
- 交接文档留在
<工作目录>/.dsh-handoff/<时间戳>-<标题>/WorkSummary.md,可归档、可交接给同事、可进 Git。
预览卡还能「复制提示词 / 重新生成 / 复制文档路径」;preview: false时退回 v0.1 的一键直达。
适用场景与注意¶
适合需要在 DSH 中快速切换会话、传递上下文、固化记忆的开发者或团队。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。交接质量受源会话日志完整度影响;极端长会话会在输入预算处按「保头保尾」截断。预览卡默认开启;如更想一键直达,配 preview: false。记忆台账目前是本插件自有格式(Markdown),与 dsh-mnemon 等记忆插件的自动同步在 v0.2。autoSend 依赖半公开的 sessions.retain/prompt,DSH 内部改动时可能失效(自动回退草稿)。不做跨机器/跨用户传输;交接文档要不要进 Git、要不要发给别人,由用户决定。
小结¶
dsh-session-handoff 把「重新讲一遍已经发生了什么」的成本降为一次点击,生成结构化的交接文档与记忆台账,在新会话中预填提示词,帮助开发者更高效地在 DSH 中接力任务与上下文。
- 插件目录页:https://www.skillhub.cn/plugins/yangsong608/dsh-session-handoff
- GitHub:https://github.com/yangsong608/dsh-session-handoff