DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

lllcccwww /

lllcccwww/dsh-answer-notify

Verified

回答完成后的桌面通知:窗口最小化或不在前台时,DeepSeek Harness 回答结束发送系统通知。DSH Web/Desktop plugin.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@7d210270

答完提醒 · dsh-answer-notify

DeepSeek Harness(DSH)Web / Desktop 的一个小插件:你切走或最小化窗口后,一轮回答结束时会收到一条系统通知。点通知直接回到对应会话。零配置、零依赖。

功能

  • 回答结束且窗口不在前台时,发送桌面通知:「回答完成 · <会话标题>」。
  • 点击通知 → 聚焦窗口并打开该会话。
  • 窗口在前台且聚焦时保持安静,不打扰。
  • 子代理(subagent)结束不单独通知,由父会话通知一次。
  • 设置里有总开关和一键「测试」。

安装

桌面版(DeepSeek Harness App)

  1. 打开侧栏 插件 → 添加插件。

  2. 输入下面的 Git 安装地址(也接受 release 的 .tar.gz 链接,或下载 zip 后用「本地目录」):

    github:lllcccwww/dsh-answer-notify#v1.0.0
    
  3. 按提示安装,点 立即启用,然后完全退出并重新打开应用。

也可以直接下载 https://github.com/lllcccwww/dsh-answer-notify/archive/refs/tags/v1.0.0.tar.gz,在「添加插件」里粘贴这个地址。

命令行(Web profile)

dsh plugin --profile web add github:lllcccwww/dsh-answer-notify#v1.0.0

桌面端的 desktop profile 由 Electron 应用管理,请用上面的桌面步骤安装,不要用 CLI 改它。

npm 包 dsh-answer-notify 目前尚未发布(npmjs 暂时无法访问),发布后可直接用包名安装,上面的 Git 写法仍然可用。

使用

设置 → 通用 会出现「回答完成通知」一行:

  • 开关:即时生效;状态存在 localStorage(键 dsh.turn-notify.enabled),默认开启。
  • 测试:立刻弹一条通知,用来确认系统通知权限和展示效果。测试会绕过「窗口在后台」的判断,所以窗口在前台时也能弹。

平时不需要任何操作:发完消息、切到别的窗口或最小化,回答结束就会收到通知。

点击通知

点击通知会把窗口从最小化恢复、置前,并切换到对应会话。

最小化时 Electron 的 window.focus() 会直接返回(窗口不可见时 NativeWindowViews::Focus() 不做任何事),页面也没有 restore() 权限,所以这一步由 Host 半边完成:点击后页面向 POST /turn-notify/focus 发一个同源请求,Host 启动 focus-window.ps1,用 ShowWindow(SW_RESTORE) 恢复窗口、用一个 Alt 轻敲获得前台权限,再 SetForegroundWindow。

  • Windows:由上面的脚本处理(恢复 + 置前)。
  • macOS / Linux:交给系统与窗口管理器(点击通知通常已会激活应用),Host 路由在这些平台上不做额外动作。

兼容性

  • 实测运行于 DSH 0.2.1-rc.5(桌面端)。
  • 包内声明 engines.dsh: ">=0.2.1-rc.5 <0.3.0-0";安装器会在安装前检查,不满足时报 incompatible-version 并拒绝安装,不会下载任何东西。
  • 如果你的 DSH 版本不在范围内但想试,可在 profile 的 compatibility.json 里加版本豁免(插件管理器 / dsh plugin allow-version),风险自负。

卸载

插件页里对 dsh-answer-notify 选择卸载,然后重启应用。卸载不会清除 localStorage 里的开关状态。

限制

  • 通知由页面内的浏览器 Notification API 发出,因此页面必须还活着:最小化、隐藏到托盘都可以;退出应用则不会通知。
  • Windows 的 Toast 标签上限为 64 字符,Chromium 会先把 tag 拼成 n#<来源>#<tag> 再交给系统。因此 tag 使用会话 ID 的短哈希而不是原始 UUID:超长 tag 会被系统静默丢弃,JS 端不报错。
  • 通知的图标、声音、是否显示横幅由操作系统决定。

开发

node --check client.js       # 语法
node test/client.test.mjs    # 用假的 ctx / DOM / Notification 跑状态机

插件结构:

  • index.js:Host 半边,注册 POST /turn-notify/focus 并在点击时启动 focus-window.ps1。
  • client.js:浏览器半边,注册设置行、监听 api-session/status、发出通知并处理点击。
  • focus-window.ps1:Windows 上恢复并置前主窗口的脚本(只在 win32 上启动)。
  • cordis.patch.yml:向 profile 插入一行 dsh-answer-notify。
  • locale/*.json:插件在插件列表里的标题与描述。

License: MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 7d210270e1c0

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout