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

任务通知 BoyangL04/dsh-task-notify

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

DeepSeek Harness 插件:会话完成一轮或卡在你这儿(工具审批、提问、计划评审)时,弹出应用内提示和 macOS 通知。

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

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

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add BoyangL04/dsh-task-notify
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

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

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

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

展开查看检查明细 ↓

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

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/13 14:49:25

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

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

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

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

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

功能亮点

  • 会话完成轮次提醒
  • 等待审批时通知
  • macOS系统通知

README

由 DeepSeek 最新模型翻译生成
任务通知(dsh-plugin-task-notify) 两种值得打断你的事件,各自给出两个提示: - 任务完成:智能体从 running 变回 idle; - 会话卡在你身上:出现了待处理的交互——工具越权授权(approval)、提问(question)、计划待确认(plan-review)。 两个提示分别是: - 应用内提示(toast):出现在页面顶部正中,和 Harness 自带 toast 同一位置与色调; - 系统通知(macOS 横幅):走渲染进程的 Notification API,由 DeepSeek Harness 应用本身发出,点一下即可把 Harness 拉到前台并打开对应会话。
展开完整文档(README 剩余 1 节)
任务通知(dsh-plugin-task-notify)

两种值得打断你的事件,各自给出两个提示:

- 任务完成:智能体从 running 变回 idle;
- 会话卡在你身上:出现了待处理的交互——工具越权授权(approval)、提问(question)、计划待确认(plan-review)。

两个提示分别是:

- 应用内提示(toast):出现在页面顶部正中,和 Harness 自带 toast 同一位置与色调;
- 系统通知(macOS 横幅):走渲染进程的 Notification API,由 DeepSeek Harness 应用本身发出,点一下即可把 Harness 拉到前台并打开对应会话。

安装方式

已经装进 desktop 配置档,重启后仍然有效:

- ~/.dsh/profiles/desktop/package.json:依赖 "dsh-plugin-task-notify": "link:/Users/maerceci/dsh-plugins/dsh-task-notify",并把 dsh-plugin-task-notify 追加进 dsh.profile.bundles;
- ~/.dsh/profiles/desktop/node_modules/dsh-plugin-task-notify 是指向本目录的软链接;
- 因此不要移动或删除本目录,否则配置档会加载失败(在 插件 页面取消勾选即可解除)。

本目录就是包的实体,改完保存即生效(Host 会监听 client.js 并热重载;必要时刷新页面 ⌘R)。

换到另一台 Mac:见 MIGRATION.md。三种方式(GitHub / 拷目录 ./install.sh / 手动),包含前置运行时版本要求、三层验证方法和卸载回滚。

文件

| 文件 | 作用 |
| package.json | 清单:dsh.bundle.patch 指向本包的补丁,dsh.client 声明浏览器半边与加载顺序 |
| cordis.patch.yml | 向配置档插入一行插件条目(id task-notify) |
| index.js | Host 半边,空实现——只在 Loader 里占一行,让 Client 扫描器发现本包 |
| client.js | 全部功能:读会话状态投影、判定完成与待处理交互、渲染 toast、发系统通知 |
| install.sh | 在另一台 Mac 上安置并安装(--check 只体检;--profile 指定配置档) |
| test/notify.test.mjs | 回归校验台:用桩 React + 假时钟跑真 client.js,47 项断言覆盖两条路径与应静默的情形(npm test) |
| MIGRATION.md | 迁移到另一台 Mac 的完整步骤、验证方法、卸载回滚 |

判定规则

在客户端订阅 ui-session 提供的 useSessionStatus(即 api-session/status 的会话状态投影)。每行状态形如 { running, pendingInteraction, completionUnread },本插件只读前两个字段。

任务完成——只认 running: true → false 这个跳变:

- 首次拿到的快照只当基线,不通知(否则每次刷新页面都会炸一堆旧会话);
- 变回 idle 后再等 SETTLE_MS(1.2 秒)才通知;期间若又变回 running(goal 自动续跑、重试、用户又发了一条),则取消,不会一个任务响好几次;
- 跳过子代理会话(origin: 'subagent' / 带 parentId)和空白会话(blank)——子代理频繁结束,不是「你的任务」。

等待你处理——只认 pendingInteraction 从无到有(它带一个稳定的 key):

- 交互出现后等 ATTENTION_SETTLE_MS(0.6 秒)才通知;这个窗口足够让「被委托给下一个监听者」的请求(例如 experimental-auto-review 接管)在通知前就消失——那种请求根本没轮到你;
- 按 key 去重:状态投影因任何原因重新发布(同一个请求换了新对象)都不会重复通知;
- 请求被回答 / 取消后清除该会话的去重标记,所以同一个会话的下一个请求会正常通知;
- 一次请求被回答后,running 可能仍然为 true;此时只发「等待处理」,不会顺带发一条完成通知;
- 与完成不同,子代理的授权 / 提问照发(ATTENTION_INCLUDE_SUBAGENTS):子代理卡住也就卡住了你正在等的那一轮。空白会话仍然跳过;
- 横幅正文会带上有用的上下文(工具名、提问文本,截断到 140 字符)。

系统通知在窗口可见时也照发(与 Codex 一致)。完成与等待处理用不同的 tag,所以一条完成通知不会悄悄顶掉一条还没处理的授权。

可调参数

都在 client.js 顶部:

| 常量 | 默认 | 含义 |
| SETTLE_MS | 1200 | 完成通知:idle 持续多久才通知;调大更不容易被续跑打断,调小更即时 |
| ATTENTION_SETTLE_MS | 600 | 等待处理通知:交互持续多久才通知;调大可吞掉更多「被委托掉」的请求 |
| TOAST_TTL_MS | 9000 | 完成提示停留时长 |
| ATTENTION_TTL_MS | 15000 | 等待处理提示停留时长(更长,因为它是待办的) |
| MAX_TOASTS | 3 | 同时最多堆几个提示 |
| NATIVE_ALWAYS | true | 改成 false 则只在页面不可见时才发系统通知 |
| ATTENTION_INCLUDE_SUBAGENTS | true | 改成 false 则子代理的授权 / 提问也静默 |
| NATIVE_CONTEXT_LIMIT | 140 | 横幅正文里上下文的最大字符数 |

提示点颜色区分事件类型:完成是绿色(--dsw-alias-state-success-primary),等待处理是琥珀色(--dsw-alias-state-warn-primary,缺失时回退到 error 色)。

已知限制

ATTENTION_SETTLE_MS 只能降低被委托请求误报的概率,不能消除。运行时里 PendingApproval.delegate() 之后,真正取消发布的 remove() 在瀑布消费方的 finally 里执行,而 finally 要等 await next()(例如 auto-review 那一环)跑完才轮到;同时 PendingInteractionDomain.valuesSnapshot() 返回所有已发布的值,并不过滤已委派的条目。所以当下游监听者处理超过 ATTENTION_SETTLE_MS 时,一条本该由它消化掉的授权仍会通知你。对象上的 #delegated 是私有字段,插件侧拿不到这个信号,唯一的缓解手段就是把这个窗口调大。

文案

走 Harness 的 locale 服务(命名空间 task-notify),zh / en 两套字典就在 client.js 里,跟随界面语言切换。

卸载

用 plugin_manager 的 remove_bundle(target dsh-plugin-task-notify),或在 设置 → 插件 里取消勾选 / 卸载;也可以直接删掉本目录再手动清理 profile 的 package.json。删除本目录前请先从 profile 里解除。

已验证 / 未验证

- 已验证:包被 profile 加载(Loader 条目 include:task-notify)、client.js 被实时以当前版本送到页面(改一次 rev 变一次)、shell.overlay 槽位里出现 task-notify 占用者且 active: true、槽位向该条目提供 useSessionStatus。判定逻辑由 test/notify.test.mjs 覆盖(npm test,47 项断言):结算窗口、续跑去重、子代理静默、空白会话静默、通知文案、点击打开会话、自动消失、授权 / 提问 / 计划三类交互、按 key 去重、被委托请求静默、回答后新请求重新通知、无 key 时的退化、横幅文本截断、两类 TTL 与不同 tag。
- 未验证:真实点击与系统横幅的实际观感,需要人眼确认一次。

维护者:看下载量

npm run downloads # 本包
node scripts/downloads.mjs dsh-plugin-task-notify # 也可以查别的包

数据来自 npm 官方公开 API(api.npmjs.org),不需要 token;网页版是 https://www.npmjs.com/package/<包名>(页面上直接显示 weekly downloads)。

口径提醒:凡是从 npm 官方 registry 安装的(pnpm / dsh plugin add / 应用内 Plugins 页)都会计入;镜像源(如 npmmirror)和 CDN 缓存会少计或不计。
预览分享卡片长什么样 ↓BoyangL04/dsh-task-notify
分享 · DeepSeek Harness Hub
BoyangL04/dsh-task-notify

DeepSeek Harness 插件:会话完成一轮或卡在你这儿(工具审批、提问、计划评审)时,弹出应用内提示和 macOS 通知。

回到顶部