鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-win-notify

真正的 Windows 系统 Toast(通知中心持久、DeepSeek 品牌鲸鱼图标):任务完成 / 需要输入 / 需要审批时提醒。仅支持 Windows,零运行时依赖。

通知集成
访问 GitHub
文档README

dsh-win-notify

DSH(DeepSeek Harness)宿主端插件:任务完成 / 需要用户输入 / 需要审批时,弹出真正的 Windows 系统 Toast(进入通知中心、来源显示 DeepSeek Harness、黑底白鲸鱼图标)。

⚠️ 仅支持 Windows(Windows 10/11)——通过 WinRT Toast Notification API 实现,非 Windows 系统安装后自动空转(不报错、不注册任何事件)。

A DSH host plugin that raises real Windows toasts — persisting in Notification Center under "DeepSeek Harness" with the black whale icon — when a task finishes, the agent needs user input, or an approval is pending. Windows-only (Windows 10/11).

功能 Features

  • 🔔 任务完成:用户可见根代理 running → idle 时弹出,正文优先带真实会话标题(已完成:「<会话标题>」)
  • ✋ 需要您的输入:ask_user_question 提问真正呈现给您的瞬间弹出(不是回答之后),含问题摘要与数量
  • 🛡️ 需要您的审批:Agent 请求操作审批时弹出,含工具名与原因
  • 🐋 品牌化:来源名称 DeepSeek Harness + 黑底白鲸鱼图标(多帧 16–256px notify.ico,标题行小图标正确显示)
  • 🧠 噪音控制:子代理 / AgentTeams 成员 / workflow worker 的完成、提问、审批一律不打扰;同一代理两次“任务完成”至少间隔 10 秒
  • 📋 通知中心持久:toast 进入系统通知中心,不随横幅消失
  • ⚡ 零依赖:宿主端事件直出,重活由自编译 .NET 4 助手 EXE 完成(系统自带 csc.exe,无需安装任何运行时)

安装 Install

通过插件市场(推荐)

打开 设置 → 插件市场,搜索 dsh-win-notify 一键安装;安装后重启 dsh web(或点击市场的重启按钮)生效。

命令行安装(官方插件管理)

▼
bash
复制代码
dsh plugin --profile web add dsh-win-notify

该命令会安装到 ~/.dsh/profiles/web,并因为本包声明了 dsh.bundle.patch,自动把 dsh-win-notify 追加进 dsh.profile.bundles。重启 dsh web 生效。

若 pnpm ≥11 报 minimumReleaseAge(安全等待期),是新发布的包触发的策略,可一次性放行:

▼
bash
复制代码
dsh plugin --profile web add dsh-win-notify --config.minimumReleaseAge=0

开发模式(本地 link)

▼
bash
复制代码
git clone https://github.com/kongdexu/dsh-win-notify cd ~/.dsh/profiles/web dsh plugin --profile web add link:D:\Project\dsh_notify

系统要求 Requirements

  • Windows 10 / 11(x64;通知中心 + WinRT Toast 必需)
  • Node.js ≥ 20(DSH 宿主环境自带)
  • 无其他依赖:toast 由随包预编译的 DshToast.exe 发出;EXE 丢失时插件会用系统 csc.exe(.NET Framework 4.x,所有 Win10/11 自带)自动重建

非 Windows 平台(Linux/macOS)可以安装本包:package.json 声明了 "os": ["win32"],插件在启动时检测平台并在非 Windows 上仅打印一条警告、不注册任何事件,不影响宿主。

文件结构 Layout

▼
text
复制代码
src/ core.ts # 纯逻辑:截断/平台判定/根代理判定/标题与问题摘要解析/审批摘要解析(无 ctx,可单测) index.ts # 插件入口:name/inject/apply,事件接线 + helper 管理 + 平台守卫 types/index.d.ts # 声明文件,构建时拷入 lib/types lib/ # esbuild 构建产物(index.js + .dsh-notify/ 助手资产 + types),发布与加载用 .dsh-notify/ # DshToast.cs / DshToast.exe / notify.ico / whale-black-bg.png(由 build.mjs 拷入) .dsh-notify/ # 助手资产源(唯一真源,构建时复制进 lib/.dsh-notify) build.mjs # esbuild 构建 + 助手资产复制 tsconfig.json # tsc 类型检查 vitest.config.ts # vitest(node 环境行为测试) test/ core.test.ts # 纯逻辑单测 plugin.test.ts # apply() 接线测试(mock ctx,不触碰真实进程/Windows API) smoke.mjs # 构建产物加载契约 + 助手资产完整性断言 cordis.patch.yml # Cordis profile patch,把插件插入 bundle 树 package.json # 包元信息,含 dsh.bundle / os / files 字段

验证 Verify

一键跑完整校验(类型检查 → 构建 → 行为测试 → 加载契约):

▼
bash
复制代码
npm run check
  • npm run typecheck:tsc --noEmit 类型检查 src/
  • npm run build:esbuild 产出 lib/,并把 .dsh-notify/ 助手资产复制进 lib/.dsh-notify/
  • npm test:vitest 覆盖截断/平台判定/根代理过滤/摘要解析,以及 apply() 的事件接线(任务完成、输入、审批、冷却、子代理不打扰、平台守卫)
  • npm run test:smoke:不依赖浏览器/Windows API,加载构建产物 lib/index.js,断言导出 { name, inject, apply }、三个事件监听注册、助手资产(EXE/CS/ICO/PNG)齐备

实现说明 Implementation

  • 事件挂接(均为 DSH 宿主既有事件):
    • agent/status:running → idle 视为任务完成(仅用户可见根代理;见下「噪音控制」)
    • tools/execute:ask_user_question 弹提问的当刻发「需要您的输入」(挂 tools/result 会迟到——那是用户回答之后)
    • approval/request:待审批时发「需要您的审批」
  • 噪音控制:origin === 'subagent'(含 delegationDepth > 0)的会话一律跳过;逐代理 WeakMap 状态机;10 秒完成冷却
  • toast 图标链路:AUMID(DeepSeekHarness.Notify)→ 开始菜单快捷方式(IPersistFile.Save 必须在 IPropertyStore.Commit 之后再执行一次才会把 AUMID 落盘)→ 注册表 IconUri → 多帧 notify.ico
  • DshToast.exe 由 DshToast.cs 预编译并随包分发;运行期缺失时自动用 csc.exe 现场重建(fire-and-forget,本轮通知跳过,下一轮生效)

更多细节见 docs/DEVELOPMENT.md,变更记录见 CHANGELOG.md。

故障排查 Troubleshooting

  • 安装时 ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION:新包在 pnpm 24h 安全等待期内,用上文一次性放行参数重试即可。
  • 重启后无通知:确认 dsh.profile.bundles 含 dsh-win-notify(dsh plugin 自动处理);确认系统「通知和操作 → 通知」未被全局关闭;与参考项目一致,宿主插件改动需重启 dsh web 生效。
  • 新通知标题行没有小图标:Windows 对 toast 应用身份(图标)有缓存,注销再登录(或重启)一次即刷新;通知中心里旧通知的图标不会变,属正常现象。
  • Linux/macOS 上装了没反应:预期行为——本插件仅支持 Windows,会在控制台打一条 Windows-only plugin: refusing to start 警告后空转。
  • 更多细节(含历史修复过程)见 docs/DEVELOPMENT.md。

License

MIT

通知集成

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:kongdexu/dsh-win-notify

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题
dsh 插件推荐
dsh-approval-voice
DSH Web GUI 中出现审批、提问或计划审批弹窗时,播放提示音并中文语音播报,避免漏看待处理请求。
dsh-plugin-oauth-subs
通过 OAuth 和本地代理,将 ChatGPT Codex、xAI Grok、智谱 GLM、AWS Kiro、Google Antigravity 与 Cursor 订阅接入 DeepSeek Harness。
dsh-task-watcher-plugin
Windows 托盘任务监视器:部署并管理独立监视程序——四态托盘图标(灰=未连接、绿=空闲、橙=运行中、红=有待处理)、逐任务实时面板(时长/速度/token)、完成与结局通知。设置→插件内启停开关;监视器独立进程运行,DSH 重启不影响。
dsh-notify-xc
DSH 浏览器通知插件 - 任务完成 / 运行出错 / 需要你回答、批准、审阅计划时弹系统级通知,点击气泡直达会话,三类通知独立开关,主会话等子代理期间不误报完成。
dsh-session-notify
会话轮次结束时推送浏览器系统通知与页内提示,内置 5 种语言模板与自定义预设。