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

停止后队列续跑 evanw0211/dsh-queue-resume-on-stop

DeepSeek Harness
evanw021122 天前有提交已提供中文文档扫描:未发现敏感能力

按下停止后自动唤醒队列中排队的消息

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/11/04·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 22 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/5(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH Host 插件:Stop 按钮取消一轮对话后,继续发送排在它后面的消息。

README

由 DeepSeek 最新模型翻译生成
停止后恢复队列 一个 DSH 的小型 Host 插件,让你按下 Stop 之后,排队的消息继续流动。 问题 一轮对话运行期间,你发送的任何内容都会排进智能体的收件箱(agent.inbox.nextTurn),在下一个轮次边界被取走。 Stop 按钮会调用 agent.cancel({ kind: 'user' }, { keepInbox: true })(dsh-api-session-controller → session.cancel)。这会中止正在进行的轮次,并且刻意保留队列 —— 但之后没有任何东西重新唤醒驱动器: - 正常的轮次结束会继续循环:只要 inbox.hasPending,turn() 就返回 true,于是下一个排队的提示词立即被取走。 - 中止会从 turn() 里抛出异常,于是 kick() 展开退出,驱动器停下。排队的提示词留在收件箱里,永远不会发给模型。 循环其实已经处理了镜像的那一种情况:中止之后到达的消息会被归类为唤醒(send() → wakingAfterAbort),它会锁存 phase.wakeRequested;kick() 的退出路径会重放这个锁存。而在 Stop 之前排队的消息从不设置锁存 —— 这正是本插件要补上的缺口。 用户看到的现象:排队的消息一直卡在队列里(永远得不到回答),直到某条新消息碰巧唤醒驱动器。
展开完整文档(README 剩余 1 节)
停止后恢复队列

一个 DSH 的小型 Host 插件,让你按下 Stop 之后,排队的消息继续流动。

问题

一轮对话运行期间,你发送的任何内容都会排进智能体的收件箱(agent.inbox.nextTurn),在下一个轮次边界被取走。

Stop 按钮会调用 agent.cancel({ kind: 'user' }, { keepInbox: true })(dsh-api-session-controller → session.cancel)。这会中止正在进行的轮次,并且刻意保留队列 —— 但之后没有任何东西重新唤醒驱动器:

- 正常的轮次结束会继续循环:只要 inbox.hasPending,turn() 就返回 true,于是下一个排队的提示词立即被取走。
- 中止会从 turn() 里抛出异常,于是 kick() 展开退出,驱动器停下。排队的提示词留在收件箱里,永远不会发给模型。

循环其实已经处理了镜像的那一种情况:中止之后到达的消息会被归类为唤醒(send() → wakingAfterAbort),它会锁存 phase.wakeRequested;kick() 的退出路径会重放这个锁存。而在 Stop 之前排队的消息从不设置锁存 —— 这正是本插件要补上的缺口。

用户看到的现象:排队的消息一直卡在队列里(永远得不到回答),直到某条新消息碰巧唤醒驱动器。

它做什么

每当出现一条持久化的 turn/end,其原因是 aborted、诱因是 user(Stop 按钮)或 parent(父级打断子级),只要同一个智能体仍有待处理的 nextTurn 提示词,插件就请求循环再唤醒一次 —— 与你在 Stop 之后片刻输入一条消息的效果完全一样。下一轮随即取走排队的提示词,发给模型。

disposed(拆除)和 hook(凭据/会话失效)导致的中止会被忽略:在那里重启工作会与拆除过程相冲突。next-step 输入(agent.inject())刻意不唤醒,也不会被恢复。

安装

它是一个普通的 Host bundle:没有依赖,没有构建步骤。把 DSH 的插件管理器指向这个目录(绝对路径),它就会安装包、把 bundle 加进配置档,并通过 HMR 激活:

plugin_manager install_bundle <path-to-this-directory>

等价地,从命令行执行:dsh plugin --profile <name> add <path-to-this-directory>。

需要 DSH 0.2.0-rc.2。bundle 从正在运行的安装中解析每一个 Harness 包,因此它自己不声明任何依赖。

配置

cordis.patch.yml 插入一行;在你的配置档补丁里覆盖它:

- id: queue-resume-on-stop
config:
enabled: false # turn the behavior off without uninstalling

文件

| 文件 | 作用 |
| index.js | Host 插件:session/event 触发器和唤醒逻辑 |
| cordis.patch.yml | 插入 queue-resume-on-stop 行 |
| package.json | bundle 清单(dsh.bundle.patch) |
| locale/*.json | 插件管理器的显示文本 |
| dev/scan-stranded-queue.mjs | 扫描已存储的会话日志,找出「停止让队列搁浅」的发生 |
| dev/dump-session.mjs | 导出某段 session.v4.jsonl.zstd 日志 |

关于唤醒的说明

公开的 Agent 接口(followup/steer/inject/cancel/inbox)没有唤醒原语。要重新排队一条待处理的提示词,得用 inbox.remove(id) + followup(message),这会写入一条持久化的「已取消」收件箱拼接记录并重新插入——而 Session.append() 在 session/event 观察者运行期间拒绝重入,这个监听器恰好就在那里执行。

所以插件在 wakeDriver(true) 存在时直接调用它:它只改动内存里的阶段闩锁(send() 在终止后路径上发起的调用完全一样),不向会话日志追加任何内容。如果将来的循环改了它的名字,插件就退回公开的 remove + followup() 路径,并推迟到追加之后执行。
预览分享卡片长什么样 ↓evanw0211/dsh-queue-resume-on-stop
分享 · DeepSeek Harness Hub
evanw0211/dsh-queue-resume-on-stop

按下停止后自动唤醒队列中排队的消息

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部