🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

xine2009cn/dsh-branch-inbox-guard

DeepSeek Harnessspec-screened扫描:低风险在 GitHub 查看 ↗
⚠ 装前注意

阻止 DSH 分支会话继承父会话未投递的排队提问。从某个会话分支出来后,在分支里输入的问题会被立刻执行,

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/13 · 已提供中文文档

一个 DeepSeek Harness (DSH) 插件,用于移除 fork 子进程从父进程继承的排队提示词,从而让新分支运行你输入的提示词,而不是父进程的下一个提示词。宿主侧打包,无需修改核心。

综合分
30.6
GitHub 分
30.6
用户评分
—
★ Stars
2
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add xine2009cn/dsh-branch-inbox-guard
未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
信任档位:已验证本站已于 2 天前真实安装成功(L4 · 真实安装)
是什么
dsh 原生插件 · other
装得上吗
本站已真实安装成功(L4 · 真实安装,非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 12 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/24
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/22(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-branch-inbox-guard(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

未发布到 npm registry,仅可从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/22 13:27:53

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-branch-inbox-guard

Awesome DSH Plugin

阻止 DSH 分支会话继承父会话未投递的排队提问。从某个会话分支出来后,在分支里输入的问题会被立刻执行,
而不是被父会话排在前面的那句顶掉。

- 纯宿主插件:不改核心包、没有客户端半、无需配置。
- 持久化:清理动作以正常的 agent/inbox/spliced 取消事件写进日志,重启后队列依然干净。
- 幂等、保守:只删除能证明来自 fork 父会话的待执行项。

它解决什么问题

DSH 的分支会话是一个 fork 子会话:它的日志以父会话"已完成轮次的前缀"作为种子,而这个前缀里可能包含
父会话尚未投递的 agent/inbox/spliced 事件 —— 也就是父会话还在忙时你排队进去的提问。

在 DSH 0.1.5 上,agent 的 inbox 是一个折叠全量日志的 session 投影,于是这些被回放的 splice
变成了子会话的待执行队列。你在分支里新输入的问题被追加到它们后面,分支的第一轮取走的是父会话排队的那句 ——
你自己输入的问题看起来"消失了"。

而在 DSH 0.1.1-rc.2 上,inbox 只用 fork 切点之后的日志重建队列,同一份种子得到的是空队列。
本插件用公开接口恢复了这个行为,不需要改任何核心包。

父会话                              分支会话(fork 子会话)
turn 10 ─ 已完成                    种子 = 父会话前缀
队列: [A] [B]  ← 未投递             队列: [A] [B]   ← 0.1.5 会从种子里回放出来
turn 11 执行 A                      你输入 C → 队列 [A] [B] [C]
第一轮执行 A   ← C 在排队,看起来像是丢了
装本插件后: 队列 [C] → 第一轮执行 C

它做什么

每次 agent/created 时检查待执行队列,只删除那些插入位置落在本会话继承前缀之内的项
(即插入事件 seq  或重启应用)并刷新 Web GUI。它是一个宿主侧 bundle row,
profile 的 dsh.profile.bundles 里列出它就会在启动时加载。

验证是否生效

每次清理都会在 DSH 日志里留一行:

[branch-inbox-guard] session-xxxxxxxx: dropped 5 inherited prompt(s) from its fork parent

端到端验证:在智能体运行中往某个会话排一条消息 → 从某个已完成轮次末尾"在新对话中分支" →
新分支的排队区应当是空的,在分支里输入的问题应当立刻开始执行。

卸载

dsh plugin --profile web remove dsh-branch-inbox-guard
docker restart

不会留下任何残留:插件不往自己的包之外写文件,也不修改会话历史 —— 它唯一追加的就是去除继承项的那个取消事件。

兼容性

已在 DSH 0.1.5-rc.1 与 0.1.5-rc.2 上验证(这两个版本的 inbox 投影会折叠 fork 继承前缀)。
在 0.1.1-rc.2 上,fork 时队列本来就是空的,插件是 no-op。

只用公开接口:agent/created 事件、agent.inbox(nextTurn/nextStep/clear/remove)、
session.inheritedEventCount、session.snapshotEvents()、session.id。
如果未来的 DSH 版本让 inbox 投影重新跳过继承前缀(即上游修复了这个问题),插件会发现"没有可删的项",
可以直接卸载。

测试

npm test        # 等价于: node test/guard.test.mjs

自包含单元测试(无依赖、无 fixture、不含任何会话数据):混合队列只删继承项保留自有项、纯 fork 子会话只写一次
持久化 clear()、继承的插话输入(next-step)同样被删、未 seed 会话不受影响、空队列不写事件、
重复执行是 no-op、来源不可追溯的项被保留。

许可

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群