🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话接力 yangsong608/dsh-session-handoff

DeepSeek Harness
yangsong6089 天前有提交已提供中文文档扫描:含敏感能力

一键总结当前会话并生成交接文档,在新会话继续任务

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add yangsong608/dsh-session-handoff
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 10 处,展示前 10 条)
  • 写入本地文件
    lib/index.js:327
    await mkdir(dirname(path), { recursive: true });
  • 写入本地文件
    lib/index.js:329
    await writeFile(temporary, content, {
  • 写入本地文件
    lib/index.js:333
    await rename(temporary, path);
  • 读取本地文件
    lib/index.js:338
    return await readFile(path, "utf8");
  • 读取本地文件
    lib/index.js:347
    await stat(path);
  • 写入本地文件
    lib/index.js:366
    await mkdir(root, { recursive: true });
  • 写入本地文件
    lib/index.js:370
    await mkdir(candidate, { recursive: false });
  • 读取本地文件
    lib/index.js:1183
    const { block, added } = memoryDelta(existing ? await readFile(memoryFile, "utf8") : "", data, facts);
  • 写入剪贴板
    lib/client.js:76
    await navigator.clipboard.writeText(text);
  • 发起网络请求
    lib/client.js:643
    const response = await fetch(API_PREPARE, {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 会话接力插件:提交按钮旁一键总结会话、固化记忆、生成交接文档并在新会话继续 | DeepSeek Harness session-handoff plugin

README

由 DeepSeek 最新模型翻译生成
dsh-session-handoff · 会话接力 在 DSH 输入框的提交按钮旁多一个按钮:一键把当前会话「总结 → 固化记忆 → 写成交接文档 → 预览确认 → 带进新会话继续干」。 长任务跑到上下文快满、要换模型/换预设、要把手里的一摊活交给另一个会话或同事时,最贵的不是「再开一个会话」,而是重新讲一遍已经发生了什么。 本插件把这一步做成一次点击:读取当前会话日志 → 确定性提取事实 → 让模型归纳成五段式交接 → 在会话工作目录写一份 WorkSummary.md(+ 机器可读 handoff.json + 记忆台账)→ 弹出可编辑预览(提示词可改、参考文件可勾选)→ 确认后打开一个新会话,把摘要、交接文档路径与参考文件预填成第一句提示词。 - 不删原会话、不 fork 历史:新会话是干净的,只携带「结论 + 文档指针」,token 成本可控。 - 失败也能用:模型不可用/超时/输出不合法时自动降级为确定性摘要,文档照样生成。 - 可审阅:生成后先弹预览卡,提示词可编辑、参考文件可勾选,确认才开新会话;也可关掉预览直接预填草稿。 - 三个入口:按钮、Cmd/Ctrl+Shift+H(Linux 为 Cmd/Ctrl+Shift+.,因 DSH 把 primary+KeyH 视为保留键)、预览卡里的「打开新会话」。
展开完整文档(README 剩余 1 节)
dsh-session-handoff · 会话接力

在 DSH 输入框的提交按钮旁多一个按钮:一键把当前会话「总结 → 固化记忆 → 写成交接文档 → 预览确认 → 带进新会话继续干」。

长任务跑到上下文快满、要换模型/换预设、要把手里的一摊活交给另一个会话或同事时,最贵的不是「再开一个会话」,而是重新讲一遍已经发生了什么。

本插件把这一步做成一次点击:读取当前会话日志 → 确定性提取事实 → 让模型归纳成五段式交接 → 在会话工作目录写一份 WorkSummary.md(+ 机器可读 handoff.json + 记忆台账)→ 弹出可编辑预览(提示词可改、参考文件可勾选)→ 确认后打开一个新会话,把摘要、交接文档路径与参考文件预填成第一句提示词。

- 不删原会话、不 fork 历史:新会话是干净的,只携带「结论 + 文档指针」,token 成本可控。
- 失败也能用:模型不可用/超时/输出不合法时自动降级为确定性摘要,文档照样生成。
- 可审阅:生成后先弹预览卡,提示词可编辑、参考文件可勾选,确认才开新会话;也可关掉预览直接预填草稿。
- 三个入口:按钮、Cmd/Ctrl+Shift+H(Linux 为 Cmd/Ctrl+Shift+.,因 DSH 把 primary+KeyH 视为保留键)、预览卡里的「打开新会话」。
- 零运行时依赖:宿主半只用 node 内置模块,浏览器半只从宿主的 React 基线取模块。

体验路径

1. 在任意会话里,输入框右侧、发送按钮附近会出现「接力」图标按钮;也可以按 Cmd/Ctrl+Shift+H。
2. 点一下 → 按钮转圈(整理中)→ 弹出交接预览卡:一句话状态、下一步、记忆候选、文档路径、可编辑提示词、参考文件勾选。
3. 改完点「打开新会话」→ 切到同一工作区的新会话,输入框里已经填好(可能被你改过的)交接提示词。
4. 新会话的第一件事:读交接文档(绝对路径已写进提示词),然后从「下一步」第一项继续。
5. 交接文档留在 <工作目录>/.dsh-handoff/<时间戳>-<标题>/WorkSummary.md,可归档、可交接给同事、可进 Git。
预览卡还能「复制提示词 / 重新生成 / 复制文档路径」;preview: false 时退回 v0.1 的一键直达。

安装

从 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

产物长什么样

<工作目录>/.dsh-handoff/ ├── 20261023-031500-建立会话接力插件/ │ ├── WorkSummary.md # 人读:五段式交接 + 工具活动附录 │ └── handoff.json # 机器读:schema dsh-session-handoff/v1 └── 交接记忆.md # 跨会话可复用的偏好/约定/事实(去重追加)

WorkSummary.md 固定包含:目标与意图 / 已完成 / 关键决策 / 当前状态 / 下一步 / 记忆候选 / 参考文件 / 工具活动附录。没有模型时,前四段由确定性规则生成并标注 generated_by: deterministic。

工作原理

[按钮 conversation.input.right] │ POST /session-handoff/prepare { sessionId } (x-dsh-handoff: 1 同源标记) ▼ [宿主半] ctx.sessionQuery.readSession(sessionId) ← 只读,不写会话日志 │ → 事实采集(用户诉求 / 助手进展 / 工具调用 / 失败 / 文件 / 路由) │ → ctx.llm.stream 一次性归纳(JSON 协议,temperature 0,可取消) │ → 渲染 + 原子写盘(WorkSummary.md / handoff.json / 记忆台账) ▼ { promptText, docPath, dataPath, degraded[], stats } │ ▼ [浏览器半] uiWorkspace.startSession(undefined, { prompt }) ← 预填草稿(默认)或 sessions.create → retain → prompt → openSession(autoSend)

细节、接缝证据与降级矩阵见 docs/03-技术设计.md。

安全边界

- 只读会话:不向会话日志追加事件,不修改标题/压缩状态;写盘仅限当前会话 cwd 下配置目录。
- 同源:POST 必须带 x-dsh-handoff: 1 且 Origin 与 Host 一致;不提供 CORS。
- 不引入新外发通道:摘要走 DSH 已配置的模型路由;插件自身不联网。
- 文件权限 0600、原子写、不覆盖:同名交接目录自动追加序号,绝不覆盖既有文档。
- 记忆可控:只追加 memory 候选;重复内容不重复写;台账可随时人工删改。

开发与自检

pnpm install
pnpm run bundle # lib/index.js(host) + lib/client.js(浏览器模块工厂)
pnpm run typecheck # tsc --noEmit
pnpm run verify # 32 项产物契约自检
node scripts/smoke.mjs # 56 项宿主半端到端冒烟(假 ctx/严格代理 + 临时目录,不启动 DSH)
node scripts/smoke-client.mjs # 34 项浏览器半冒烟(真实 bundle + 真 React SSR + 严格 ctx)
node scripts/smoke-parity.mjs # 5 项提示词一致性(服务端 promptText ≡ 客户端 composePrompt)
pnpm run check # 全部跑一遍

当前基线(DSH 0.2.1-rc.2 / node 24):tsc 0 错误、verify 32/32、宿主 smoke 56/56、浏览器 smoke:client 34/34、parity 5/5。

兼容性

- DSH >=0.2.0-rc.1 <0.3.0-0(engines.dsh);实测基线 0.2.1-rc.2。
- 缺少 sessionQuery 时退回活会话 deriveMessages()(降级标记 no-session-query);缺少 uiWorkspace.startSession 时退回 sessions.create + retain + prompt;缺少 LLM 路由时退回确定性摘要。
- 依赖的座位 conversation.input.right 若在将来版本移除,会退回 conversation.session.header.utilities;两者都缺失时浏览器半静默,宿主端点仍可用。

文档

| 文档 | 内容 |
| 01 DSH 插件机制分析 | Cordis 两半模型、profile 装载、宿主/浏览器扩展面、会话数据模型、稳定性分级 |
| 02 同类插件调研 | dshfind / GitHub 上 10+ 个相邻插件的能力对比与市场空白 |
| 03 技术设计 | 架构、接缝、数据流、协议、降级矩阵、成本与安全、测试 |
| 04 可行性分析 | 逐项诉求的技术验证、证据链、不确定性实验计划、替代方案对比 |
| 05 产品设计 | 定位、场景、交互规格、信息架构、指标、路线图 |
| 06 v0.2 实施计划与交付 | 设计项拆解、工作包验收、接口变更、测试矩阵、偏差记录 |

已知限制

- 交接质量受源会话日志完整度影响;极端长会话会在输入预算处按「保头保尾」截断。
- 预览卡默认开启;如更想一键直达,配 preview: false。参考文件勾选在手动编辑提示词后锁定(需重新生成才能改)。
- 记忆台账目前是本插件自有格式(Markdown),与 dsh-mnemon 等记忆插件的自动同步在 v0.2。
- autoSend 依赖半公开的 sessions.retain/prompt,DSH 内部改动时可能失效(自动回退草稿)。
- 不做跨机器/跨用户传输:交接文档要不要进 Git、要不要发给别人,由用户决定。
- npm 包名 dsh-session-handoff 已被一个无版本占位记录占用:正式发布(v1.0)将改用 scope(如 @yangsong608/dsh-session-handoff)或换名,插件/座位 id 不受影响。

License

MIT © 2026 yangsong608
预览分享卡片长什么样 ↓yangsong608/dsh-session-handoff
分享 · DeepSeek Harness Hub
yangsong608/dsh-session-handoff

一键总结当前会话并生成交接文档,在新会话继续任务

回到顶部