dsh-handover
DeepSeek Harness 插件,用于管理长会话的上下文水位、交接文档与压缩流程。插件按会话角色装配工具与提示段,只使用宿主公开的扩展点,不改动 DSH 本体。
为什么需要
单个会话的上下文越用越多,用到一定程度之后,出错的可能也会随之上升;可若这时压缩上下文,或者写好交接换一个会话,又会丢掉已经积累的信息。面对这样的两难,有没有更好的取舍?
本插件一定能很好地帮助你。来试试吧;不满意,随时关闭插件并删除即可。
功能
- 起始简报:水位、闸门、活跃与沉默、阶段建议,一条命令返回。
- 交接体检:检查交接文档的结构、字段与占位符,逐条列出问题。
- 压缩与续跑:由水位判定时机,由用户授权,回合结束后执行,完成后自动续跑;状态切换与失败原因写入结果。
- 会话清点与角色:查看会话水位与状态,设定角色,建立下一代会话,归档与解归档。
- 工作区迁移:预检、复制并逐文件校验、切换、改写登记、重建链接、清理旧副本。
- 快照与迁移包:库快照、打包、校验与恢复,包内绝对路径单独体检。
- 设置页:常规卡片为压缩授权、移动全局根目录、会话角色、全局前置提示词、会话水位、通用约束条闸门、交接文档体检、插件与唤醒权守卫,另按条件出现首次安装与待处理两张卡片。
安装
从 GitHub 安装
桌面版:侧栏「插件」→「添加插件」,粘贴仓库地址 https://github.com/MingMaple/dsh-handover,装完重启 DSH。
Web 或 CLI:
dsh plugin --profile web add github:MingMaple/dsh-handover
从 npm 安装
包名为 @mingmaple/dsh-handover,版本与仓库同步:
dsh plugin --profile web add @mingmaple/dsh-handover
从本地源码安装
- 构建:
node scripts/build.mjs,产物在dist/。 - 用 DSH 的插件管理器安装本地目录
dist/,target 传绝对路径。 - 在插件列表里启用,重启 DSH。
- 首次使用按设置页「首次安装」卡片的引导建立全局文件体系,或执行
ho_init(parent="<已存在目录>", register=true)。
使用
安装后直接说明要做的事,不必记命令:
| 想做什么 | 可以这样说 |
|---|---|
| 看整体状态 | 先出一份起始简报 |
| 查规则 | 把 Charter 第 7.2.3 节取出来 |
| 交接并压缩 | 先把交接文档写好,再压缩并继续 |
| 换任 | 建立下一代全局会话 |
| 设置角色 | 把 Demo1 设成项目角色,并让它整理自己的文件 |
| 自检 | 检查插件当前状态 |
四类会话
| 角色 | 提示段 | 工具数 | 说明 |
|---|---|---|---|
| 全局 | 有 | 22 | 协调会话、维护规则与交接 |
| 项目 | 有 | 9 | 管理单个项目库,自己写骨架档案 |
| 杂项 | 有 | 9 | 管理单个杂项任务 |
| 普通 | 无 | 0 | 不注入提示、不加载工具 |
交接与压缩
| 水位 | 动作 |
|---|---|
| 低于 32% | 继续 |
| 32% 至 35% | 可写交接;处于关键步骤时可暂缓 |
| 35% 至 85%,已压少于 3 次 | 写交接、原地压缩、读交接续跑 |
| 35% 至 85%,已压满 3 次 | 写交接、建立新会话 |
| 85% 及以上 | 强制压缩兜底 |
压缩须由用户在设置页点「压缩授权」,单次授权 5 分钟内有效;confirm=true 只表示意图。压缩在回合结束后执行,完成后自动续跑。全局交接写在 _Control_Center/records/Global_Handover.md,项目与杂项交接写在各自目录,每次写入前备份。
设置页
设置页为单页卡片式,常用区直接展开,低频与长文段折叠。未接入工作区时,首次安装卡片置顶出现。删除旧副本须先输入「删除」两字才能解锁按钮。时间显示为 YYYY-MM-DD HH:mm 加本机时区偏移。
迁移与恢复
换盘或搬动全局根目录时,按预检、复制并校验、切换、改写登记、清理旧副本五步执行,每一步均可在设置页「移动全局根目录」卡片内完成。切换须在 DSH 完全退出后由后台助手执行,原路径随后成为链接。
详见 搬迁全局根目录。
故障处理
工具数量不符、工作区未接入、设置页刷新失败、压缩未生效、迁移后原路径失效,各有对应处置。
详见 常见故障处理。
上下文开销
固定开销为工具 schema 与提示段。按 0.9.6 实测,按角色载入后,全局提示段约 271 加权 token,项目约 247 至 256,杂项约 248 至 254,随项目名与路径长度小幅波动;单条工具描述不超过 70 token。
边界与限制
- 依赖 DSH 的
ctx.compaction服务;未挂载时压缩相关工具明确报错。 ptc呈现模式下,插件工具只能经程序调用。- 会话压力读取依赖宿主的投影缓存布局;字段变化时用
ho_diag排查。 - 迁移只搬文件与清单,不改写文件内容;写死的绝对路径以体检形式报出。
- 卸载后残留只限
~/.dsh/storages/dsh-handover.*与~/.dsh/storages/dsh-handover/logs/,删除即可清零。
开发与测试
npm test # 开发自测:逐个工具跑只读用例
npm run test:blank # 空白 DSH 验收:临时 HOME 与空目录跑 22 工具及迁移四件
npm run test:smoke # 空白环境冒烟:工具装配、状态路由、浏览器半渲染、语体扫描
npm run test:migrate # 迁移与恢复端到端
npm run test:docs # 文档校验:工具名、旧数、链接、版本、语体与长度上限
源码在 src/,dist/ 为构建产物,不入版本库。客户端 bundle 不热更新,改设置页必须重建并重启 DSH。
版本
当前版本 0.9.6,首次公开版本。内部版本史不随仓库发布。
许可
MIT,见 LICENSE。
No comments yet. Be the first to write one.