DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Composer Hold — DeepSeek Harness 插件(DSH Plugin)
← Plugins
C

dsh-composer-hold

Composer Hold

发送键与停止键分离,并带一道注入闸门:锁定期间后台任务、子代理汇报、定时提醒全被扣住,直到你发消息时一起送进模型。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:baldovinmarques391-design/dsh-composer-hold#b94cad176ab52bae20f9e7286d339745ce36fb8c
README兼容性版本

兼容性与来源证明

Composer Hold 以 dsh-composer-hold 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/17

版本

0.1.0stable
2026/10/17

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
未声明
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/17
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 security-access 分类下经过校验的插件。

Experimental Auto Review@deepseek-ai/dsh-experimental-auto-review针对每个工具的 LLM 授权审查,适用于 DeepSeek Harness Auto 权限预设Cc Safety Netcc-safety-net编码代理 CLI 钩子——阻止破坏性命令和访问机密文件Doctor@linxin666/dsh-doctorDSH 配置档案的事务性救援模式,配备受监督的启动器、隔离的恢复容器、确定性修复、健康监控以及本地 Web 恢复控制台Codex Subscriptiondsh-codex-subscription在 DeepSeek Harness 中通过 OAuth 使用 ChatGPT 和 Codex 订阅,支持配额、安全重置、网络搜索、图像和快速模式,并可通过 ChatGPT 移动应用(Beta)控制 DSH

README

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 装进 profile(这样插件页才会列出它,并带开关):

// profiles/<name>/package.json
{
  "dependencies": { "dsh-composer-hold": "link:D:/…/dsh-composer-hold" },
  "dsh": { "profile": { "bundles": [ /* … */ "dsh-composer-hold" ] } }
}

不要再在 profile 的 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 等)不经过本键,因此不会进入 ▶ 模式(当前行为,未接)。