dsh-handover:长会话水位、交接体检与压缩续跑

前言

在 DeepSeek Harness(DSH)里用单个会话扛长任务时,上下文会越积越多:继续聊容易在尾部出错,硬压缩或换新会话又可能丢掉已经对齐过的状态。交接文档可以补课,但没有统一的闸门、体检和压缩时机,运维成本会落在人身上。dsh-handover 是 MingMaple 维护的工作流类插件,把「全局」交接、水位闸门、会话清点与上下文压缩续跑做成工具与设置页,只走宿主公开扩展点,不改 DSH 本体。

这是什么

  • 名称:@mingmaple/dsh-handover(GitHub:MingMaple/dsh-handover)
  • 定位:DeepSeek Harness 插件——会话水位、交接文档体检与上下文压缩续跑
  • 许可:MIT;当前公开版本 0.9.12(package.json)
  • 宿主要求:engines.dsh 为 >=0.2.1-rc.2 <0.3.0-0,支持 desktop / web profile;依赖 DSH 的 ctx.compaction 服务,未挂载时压缩相关工具会明确报错

插件按会话角色装配工具与提示段。全局角色约 22 个工具并带提示段,项目与杂项各约 9 个;普通角色不注入提示、不加载工具。代理子会话不装配 ho_ 与 peer_ 工具。

核心功能

下面按 README 已列能力归纳,便于对照是否覆盖你的流程。

起始简报与会话清点

一条命令可返回水位、闸门、活跃与沉默、阶段建议。另可查看会话水位与状态,设定角色,建立下一代会话,以及归档与解归档。

交接体检

检查交接文档的结构、字段与占位符,逐条列出问题。全局交接写在 _Control_Center/records/Global_Handover.md,项目与杂项写在各自目录,每次写入前备份。

压缩与续跑

由水位与剩余压缩次数共同判定时机,须用户在设置页点「压缩授权」(单次授权 5 分钟内有效);压缩在回合结束后执行。登记时助手以 resume 选择去向:继续工作时续跑,任务已收尾时静默等待;状态切换与失败原因写入结果。

水位与动作对照(压缩次数默认最多 3 次,用尽后无论水位高低均建议换任):

水位 动作
低于 32% 继续
32% 至 35% 可写交接;关键步骤时可暂缓
35% 至 85%,已压少于 3 次 写交接、原地压缩、读交接续跑
85% 及以上,已压少于 3 次 强制压缩兜底
任意水位,已压满 3 次 写交接、建立新会话

会话间通信与工作区迁移

会话之间可直接对话,默认沉默,任务完成不向全局报告。换盘或搬动全局根目录时,支持预检、复制并逐文件校验、切换、改写登记、重建链接、清理旧副本;另有库快照、打包、校验与恢复,包内绝对路径单独体检。

设置页

单页卡片式:压缩授权、移动全局根目录、会话角色、全局前置提示词、会话水位、通用约束条闸门、交接文档体检、插件与会话间通信守卫等。未接入工作区时置顶「首次安装」,可一键部署文件体系、工作区与会话;已接入但无全局会话时显示「全局会话」卡片。

安装与首次部署

插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 LICENSE。

从 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

首次使用

  1. 打开设置页中的 dsh-handover,在「首次安装」卡片粘贴一个长期存在目录的绝对路径。
  2. 点「一键部署」。插件在该目录内建立 _Workspace 与整套文件结构,注册为「全局」工作区,并新建「全局」会话。
  3. 在左侧「全局」工作区打开该会话即可开始。仅需先铺文件时可点「仅建立文件体系」,之后再点「注册为工作区」。

命令行等价:ho_init(parent="<已存在目录>", register=true),再新建标题含「全局」的会话。

典型用法

安装后可用自然语言说明意图,不必死记命令名。README 示例:

想做什么 可以这样说
看整体状态 先出一份起始简报
查规则 把 Charter 第 7.2.3 节取出来
交接并压缩 先把交接文档写好,再压缩并继续
换任 建立下一代全局会话
设置角色 把 Demo1 设成项目角色,并让它整理自己的文件
自检 检查插件当前状态

四类会话角色:全局(协调、维护规则与交接)、项目(单库与骨架档案)、杂项(单任务)、普通(无注入)。换角色在下一轮请求即生效;插件重载后已存在会话仍用旧提示段文本,需要新文本时重启 DSH。

适用场景与注意

适合谁:需要多会话、多项目/杂项分工,且要把交接文档、压缩闸门和续跑流程固化在 DSH 里的开发者。

上下文开销:固定开销为工具 schema 与提示段。README 按 0.9.6 实测,全局提示段约 271 加权 token,项目约 247 至 256,杂项约 248 至 254,随项目名与路径长度小幅波动。

边界:ptc 呈现模式下插件工具只能经程序调用;迁移只搬文件与清单,不改写内容;项目名不超过 24 字符、任务名不超过 40 字符,按目录名校验。卸载后残留限于 ~/.dsh/storages/dsh-handover.* 与 ~/.dsh/storages/dsh-handover/logs/,删除即可清零。

迁移五步、常见故障等细节见仓库内 docs/migrate.md、docs/troubleshoot.md。

结尾

dsh-handover 把长会话里的水位判断、交接体检、压缩授权与续跑登记收进一套工作流,减轻「何时压、压完去哪、如何换任」的手动负担。社区目录页:SkillHub - dsh-handover;源码与完整说明:GitHub - MingMaple/dsh-handover。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye