跳过主要内容
Y

dsh-session-handoff

yangyizhu8/dsh-session-handoff

会话工作移交:会话行菜单一键移交,新会话按八节交接包复刻老会话的记忆、任务与铁律,原始上下文经按需回读保持轻量。

安装

dsh plugin --profile web add github:yangyizhu8/dsh-session-handoff

README

dsh-session-handoff

会话工作移交:dsh Web 会话列表 "..." 菜单新增**「移交会话」,一键在同工作区创建新会话 (默认预设,尽力继承老会话预设)并自动完成八节交接包**接手——新会话复刻老会话的记忆、 习惯、任务、铁律(结构化保真),上下文保持轻量(不携带原始对话,经 readback 脚本按需回溯)。

安装 / Install

dsh plugin --profile web add dsh-session-handoff

Web profile 重启(或在 dshmarket 中启用)后生效;浏览器 Console 出现 [dsh-session-handoff] v0.2.5 版本行即加载成功。

Session handoff for DeepSeek Harness: the session row "..." menu gains Hand off session - one click creates a successor session that rebuilds the old session's memory, tasks and rules through an eight-section takeover packet, while context stays light (original transcript is read back on demand).

交互契约(v0.2.x:预设选择 + 全自动移交)

  1. 会话行 "..." → 移交会话(第 4 项,位于 归档会话 之后);
  2. 同工作区自动建新会话 → 自动弹开原生预设 roster(方案 B):底部横幅引导, 用户点选任一预设(如标准→创造模式接手)→ 官方 applier 应用 → 自动继续; 「直接开始」= 用当前预设;「取消」= 中止;5 分钟超时自动取消;
  3. 预设应用后自动注入接手首条消息(真实输入管线)→ agent 执行接手协议 v1;
  4. 成功 → 新会话回复「我已经成功接替了工作,请指示。」+ HANDOFF-MANIFEST 行; 失败 → 「工作交接失败」(附原因;插件看门狗兜底补发 toast);
  5. 老会话零侵入(不归档、不注入消息);失败的新会话保留供排查;全程静默。

组成

位置职责
client 半src/client/index.ts菜单注入([role=menu] 语义锚 + 克隆注入)、页面级单例编排器(v0.2.4:不随视图切换销毁——移交自身触发的"对话→hero"卸载不再杀死流程)、预设选择状态机(resolve-ws 三级回退→find-chip→choosing→ready)、看门狗(话术归一化 + manifest 双证据 + 超时取消)、toast/横幅
host 半src/index.ts空 apply(turn-nav 同款,仅占 Loader 位)
readbackscripts/readback.py老会话 transcript(zstd)读取:index 提纲 / read 区间 / search 检索 / verify 八节校验;uuid 白名单 + realpath 边界
协议protocols/takeover-v1.md接手协议 v1(人类可读版 + 降级通道说明)

降级通道(显式契约)

菜单项失效(宿主结构变化/文案变更)时不致命:手动新建会话,粘贴 protocols/takeover-v1.md 的模板,填实 4 个占位符(OLD_ID/CWD/HANDOFF_DIR/READBACK) 即可人工触发同一流程。

看门狗(事件驱动 + 超时兜底,默认 10 分钟)

成功判定 = 归一化话术匹配 HANDOFF-MANIFEST 行存在(双证据); 协议违规/回合异常结束 = 秒级判失败;超时 = 取消在飞回合 + toast 补发。

构建

DSH_CHECKOUT=D:/deepseek-harness npm run build   # tsc(host 半)+ tsdown(client bundle)

准入纪律

开发期仅 super-injector registry 挂载;验收通过 → check-plugin-ready 0 FAIL → 单向迁移(registry 移除 → profile bundles 加入)。宿主版本 pin 0.1.1-rc.2。

已知边界(实测沉淀)

  • 看门狗随发起页存活:关闭发起移交的浏览器页会停掉看门狗(agent 本身继续跑完,但无自动判定/超时取消)——移交发起后别关该页;
  • 浏览器模块缓存:插件升级后老标签页可能仍跑旧代码,表现为行为异常——关标签重开即可(Console 版本行可判别);
  • 工作区解析:快照未含会话归属时轮询 45 秒后明确报错(绝不空跑 startSession);
  • 日志:加载/菜单注入/点击/芯片命中/横幅为 info 级;周期等待为 debug 级(默认隐藏)。

版本履历

  • 0.1.0 首版(纯 DOM,被注入器骨架校验拒收)→ 0.1.1 slot 壳合规 → 0.1.2 两阶段提交修复(空草稿发送钮 disabled)→ 0.2.0 预设选择(方案 B)→ 0.2.1 版本自报日志 → 0.2.2 面包屑诊断 → 0.2.3 工作区解析三级回退 → 0.2.4 页面级单例(视图切换死亡修复)→ 0.2.5 安静日志 + 协议命令加固

相关插件