注入闸门 baldovinmarques391-design/dsh-composer-hold
DeepSeek Harness锁住后台汇报与定时提醒,发消息时一并送入模型
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add baldovinmarques391-design/dsh-composer-hold该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 15 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
- 发起网络请求client.js:252
const response = await fetch(`${BASE}/state?sessionId=${encodeURIComponent(sessionId)}`, { headers: { accept: 'application/json' } }) - 发起网络请求client.js:263
const response = await fetch(`${BASE}/mode`, {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
运行中按一下只停当前回合,再按一下锁住注入闸门:后台任务、子代理汇报、定时提醒全部扣住,直到你发消息时一起送进模型。
README
由 DeepSeek 最新模型翻译生成dsh-composer-hold
发送键与停止键分开,并且给「绝对停止」配一道注入闸门:你按下绝对停止之后,后台任务完成、子代理汇报、定时提醒、webhook、目标续轮、hooks 注入——全部被扣住,直到你发出下一条消息,它们与那条消息在同一次请求里送进模型。
按键的五个面
| 状态 | 图标 | 何时出现 | 点它 | 此时 Enter |
| 执行中 | 蓝 ‖ | 主回合在跑 | 软停:只中止当前回合(=原来的停止键) | 走系统的繁忙提交策略 |
| 软暂停 | 蓝 ▶ | 你按过 ‖ 之后 | 进入绝对停止(锁定) | 走系统默认提交(本机是插话模式) |
| 绝对停止 | 灰蓝 ■(不可点) | 锁定中,且还有子代理/后台任务在跑 | 无动作 | — |
| 锁定+有草稿 | 蓝 ↑ | 在 ■ 状态下打字 | 发送:本条 + 期间扣住的全部注入一次进模型 | 同左 |
| 静止 | 灰 ↑(不可点) | 空闲、无草稿、且没有子代理/后台任务在跑 | 无动作 | 发送(有字时) |
- ▶ 是「模式」:软暂停期间,注入仍可把模型唤醒继续执行,图标保持 ▶;你发消息(或回合重新开始)才回 ‖。
- ■ 没有点击出口:唯一出路是打字(例如输入「继续」)再回车。
展开完整文档(README 剩余 1 节)
dsh-composer-hold
发送键与停止键分开,并且给「绝对停止」配一道注入闸门:你按下绝对停止之后,后台任务完成、子代理汇报、定时提醒、webhook、目标续轮、hooks 注入——全部被扣住,直到你发出下一条消息,它们与那条消息在同一次请求里送进模型。
按键的五个面
| 状态 | 图标 | 何时出现 | 点它 | 此时 Enter |
| 执行中 | 蓝 ‖ | 主回合在跑 | 软停:只中止当前回合(=原来的停止键) | 走系统的繁忙提交策略 |
| 软暂停 | 蓝 ▶ | 你按过 ‖ 之后 | 进入绝对停止(锁定) | 走系统默认提交(本机是插话模式) |
| 绝对停止 | 灰蓝 ■(不可点) | 锁定中,且还有子代理/后台任务在跑 | 无动作 | — |
| 锁定+有草稿 | 蓝 ↑ | 在 ■ 状态下打字 | 发送:本条 + 期间扣住的全部注入一次进模型 | 同左 |
| 静止 | 灰 ↑(不可点) | 空闲、无草稿、且没有子代理/后台任务在跑 | 无动作 | 发送(有字时) |
- ▶ 是「模式」:软暂停期间,注入仍可把模型唤醒继续执行,图标保持 ▶;你发消息(或回合重新开始)才回 ‖。
- ■ 没有点击出口:唯一出路是打字(例如输入「继续」)再回车。
- 尘埃落定只看子代理 + 后台任务(该会话 /state 里 running 的 job 行数为 0)。
- 右上角橙色数字=此刻被扣住的注入条数。
它怎么工作
宿主半(index.js)——唤醒投递只有一个收口:Agent.send(message, target, wakeup)。
followup() / steer() / inject() 全部转发到它,所有外部生产者都经由它,所以插件只
需要在 agent 实例上覆盖一个 send:
- 锁定期间、source.kind !== 'user'、且 wakeup === true → 降级为 ('next-step', false): 消息留在收件箱,驱动不会被唤醒。
- source.kind === 'user' → 解锁并原样投递(唤醒),于是驱动的第一步在同一次请求里 claim 掉整批 next-step 加上你这条 next-turn。
浏览器半(client.js)——在 conversation.input.right 槽位渲染自己的键,并用产品图标的几何特征(上升箭头 path / 停止方块 rect 3,3,10,10)把产品那颗发送键移出布局;点击委托给那颗隐藏的键,所以发送/排队/插话/附件/斜杠命令全部沿用产品实现。
回车路径完全不受影响——这也是安全垫:按键坏了,回车照样能发。
子代理会话(subagent !== null)不接管,保留产品自己的独立停止键。
状态存哪
locked 是宿主进程内状态(globalThis[Symbol.for('dsh-composer-hold.state')],故意不放实例闭包:热重载会分叉),通过两个端点与浏览器同步:
GET /plugin/dsh-composer-hold/state?sessionId=… → { locked, parked, running, diagnostics } POST /plugin/dsh-composer-hold/mode { sessionId, mode: "lock" | "unlock" }
刻意不写进会话日志:外部插件无法写自定义持久事件——Session.append() 不接受 envelope 的
ignorable 标记,而未知的必需事件类型会让持久化读取拒绝重建整个会话。所以宿主重启后锁定不保留。
安装
作为正经 bundle 装进配置档(这样插件页才会列出它,并带开关):
// profiles/<name>/package.json
{
"dependencies": { "dsh-composer-hold": "link:D:/…/dsh-composer-hold" },
"dsh": { "profile": { "bundles": [ /* … */ "dsh-composer-hold" ] } }
}
不要再在配置档的 cordis.patch.yml 里手插同一行:bundle 自带的 cordis.patch.yml 已经插入行 id composer-hold,两行同 id 会让 id 定向补丁(插件页开关)只命中其中一个。
已实测(2026-10-16,3080 实例)
| 项 | 证据 |
| 锁定期间定时提醒被扣住 | 宿主日志 hold … <- schedule\|… (next-turn -> next-step, no wake) |
| 用户消息放行 | 日志 release … <- user\|…;parked 归零并开新回合 |
| 连续两条注入都被扣住 | 自测:schedule followup 与 plugin steer 后 parked = 2,agent 仍 idle |
| 与用户消息同批放行 | 上一条实测:提醒文本与用户消息出现在同一次请求里 |
判定闸门是否生效,只看两件事:锁定时 parked 有没有涨 + 模型有没有在用户没说话时自己开新回合。
已知边界
- 产品那颗键是靠 SVG 几何指纹识别的。产品换图标/结构时的症状是「冒出两颗键」——可见、好修,不会静默失效。
- 锁定不跨宿主重启(见上)。
- 锁定会对该会话执行 agent.cancel({kind:'user'},{keepInbox:true}),等同于一次停止; 不要对正在跑重要任务的会话上锁。
- 其他停止入口(Esc 等)不经过本键,因此不会进入 ▶ 模式(当前行为,未接)。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
baldovinmarques391-design/dsh-composer-hold
锁住后台汇报与定时提醒,发消息时一并送入模型
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,798已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,327已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,021已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 150,724已汉化DSH
71.1