dsh-notify-bridge:DSH 桌面通知与 Discord 转发

前言

在 DeepSeek Harness(DSH)里跑长任务时,审批卡片、定时提醒和任务完成往往发生在当前标签页之外:窗口失焦、切到其他应用,或者整页关掉后,只靠页面内提示很容易漏掉。社区里另有独立通知类插件;dsh-notify-bridge 走另一条路——自带通知引擎,并把审批、日程、待办和 Token 用量桥接到 Discord Bot,便于离席时仍能处理与汇总。

下面按定位、能力、安装配置和注意点介绍该插件。事实以 GitHub 仓库 README 为准;维护者为 harienlook,SkillHub 分类为客户端。

这是什么

dsh-notify-bridge 是 DSH 的通知与 Discord 转发插件:在客户端侧提供桌面通知、提示音、标签页标题标记和审批快捷按钮;在宿主侧把审批、定时任务提醒、待办摘要、/goal 开始提示等转发到 Discord,并在已执行任务的提醒末尾附上本次任务的 Token 用量。

README 明确写:完全独立实现,不依赖 dsh-notify-me;两者可共存,互不影响。 许可证 MIT,当前包版本 0.1.0。运行要求:DSH Desktop 0.2.2-rc.1(桌面/Web 均可)、Node ≥ 20;使用 Discord 转发时需自行准备 Bot Token、频道 ID 与用户 ID。

独立通知引擎

设置 → 通知设置 → 通知提醒 由插件自带引擎驱动,无需再装其他通知插件。配置存在 localStorage[dshNotifyBridge.config],与 dsh-notify-me 的配置隔离。

触发源来自 DSH uiSession 的待处理交互(审批、提问、计划复核)以及 sessionStatus.completionUnread 完成标记;插件订阅会话列表快照做去重与标题解析。

提醒方式包括:右上角页内 toast(审批类带「同意 / 拒绝」,直接调用 DSH answer('allowed-once' | 'rejected'))、系统通知(Windows 通知中心)、WebAudio 双音提示。标签页标题用 ● 表示待处理、✓ 表示完成未读,读后恢复。

离席策略可按配置选择:background 仅在离开时提醒,smart 跳过当前会话,always 总是提醒。默认忽略子代理会话的完成提醒。通知语言支持 auto、简体中文与 English。

审批桥与 Discord 转发

审批桥:页面有实时客户端时走 DSH 原生审批卡片;页面关闭时发 Discord 卡片,点击后真实结算为 allowed-once / rejected;超时为 unavailable,中断为 cancelled。审批模式可设为 auto(在线原生、离线 Discord)或 always(总是 Discord)。

定时任务:转发 DSH 原生 schedule 的单条与批量提醒(提醒本身不附 Token,任务尚未执行)。

任务完成:turn/end 推送完成摘要并附本次任务 Token;定时任务执行完成后同样附 Token。

待办摘要:每天固定时间读取 dsh-memory-evolve 的待办文件,只发未完成项;空列表不发。

Goal:检测 goal/change 的 create,发送「任务开始执行」提示(不附 Token)。

Token 用量:每条已执行提醒末尾追加「本次任务 / 会话累计 / 本日」,数据来自 assistant/message.usage,并用 DSH tokenUsage 投影校正;未执行的定时任务、待办摘要与 goal 开始提示不附 Token。

除 Discord Bot 外,README 还列出多通道:Discord webhook、Bark、Gotify、飞书、ServerChan、WxPusher、自定义 webhook(HMAC 签名)。Bot 就绪后会在频道发一条按钮控制面板(状态 / Tokens / 任务 / 记忆包),默认不注册斜杠命令。

安装与启用

安装后必须把 dsh-notify-bridge 加入 dsh.profile.bundles,并完整重启 DSH Desktop(含托盘退出)。

方式一:从 GitHub 安装(推荐)

在 desktop profile 的 package.json 中增加依赖与 bundle:

{
  "dependencies": {
    "dsh-notify-bridge": "git+https://github.com/harienlook/dsh-notify-bridge.git"
  },
  "dsh": {
    "profile": {
      "bundles": ["...", "dsh-notify-bridge"]
    }
  }
}

在 profile 目录执行 pnpm install,再重启 DSH Desktop。

"dsh-notify-bridge": "link:<你的工作区>/dsh-notify-bridge"

方式三:Releases 的 tgz

到 Releases 下载 dsh-notify-bridge-0.1.0.tgz:

cd ~/.dsh/profiles/desktop
pnpm add ~/Downloads/dsh-notify-bridge-0.1.0.tgz

同样需把 bundle 写入 profile 并重启。

配置

重启后打开 DSH 设置 → 通知设置。通知提醒 Tab 修改后即时生效;Discord Tab 保存后需重启 DSH Desktop 才生效。配置写入 ~/.dsh/notify-bridge/config.json;Bot Token 写入 ~/.dsh/notify-bridge/discord.json,设置页不回显 Token。

通知提醒 Tab(节选)

字段 说明
启用提醒 总开关
提示音 / 音量 WebAudio 双音
审批快捷按钮 toast 上「同意 / 拒绝」
回复完成 background / smart / always
离开判定(分钟) 无输入多久算离开
测试按钮 立即弹测试通知

Discord Tab(节选)

字段 说明
Bot Token 留空表示不修改已存 Token
频道 ID 通知、控制面板、审批卡片
你的用户 ID 限制谁可点审批与查询
代理 仅 HTTP/HTTPS;示例 http://127.0.0.1:7897
审批模式 auto / always
转发开关 回复完成、审批、goal、定时任务、待办摘要
待办时间 24 小时制 HH:MM
Token 时区 本日统计与待办日期

环境变量 DSH_NOTIFY_BRIDGE_PROXY 可作代理兜底(显式配置优先)。插件不会自动读取系统代理或 HTTP_PROXY;socks5 不支持,非法代理会导致 Bot 不启动并在健康页报错。

Discord 准备(简要步骤)

  1. Discord Developer Portal 创建应用 → Bot → Reset Token。
  2. OAuth2 URL Generator:scope=bot,permissions=52224(View Channels、Send Messages、Embed Links、Attach Files),邀请到服务器。
  3. 开启 Developer Mode 后复制频道 ID、你的用户 ID。
  4. 在 DSH 设置 → 通知设置 → Discord 粘贴 Token、频道 ID、用户 ID。

健康页与自测

在 loopback 上提供诊断与日志(端口为当前 DSH Web 端口):

http://127.0.0.1:<DSH Web 端口>/__dsh-notify-bridge/
http://127.0.0.1:<DSH Web 端口>/__dsh-notify-bridge/health
http://127.0.0.1:<DSH Web 端口>/__dsh-notify-bridge/logs?limit=50

健康 JSON 中的 clientDebug 可判断设置页客户端 bundle 是否执行;stage = registered 表示设置页已注册。Proxy 卡片会标明代理来源或错误,便于排查 Discord 连不上问题。

适用场景与注意

适合谁:需要在离席或关页时仍能收到审批与任务结果、并希望把摘要汇总到 Discord(或配置的其他 webhook 通道)的 DSH 用户;本地仍想要系统通知、提示音和标题角标,且不想依赖 dsh-notify-me 的单插件方案。

运行与安全:插件以当前 DSH 进程权限运行,会读写 ~/.dsh/notify-bridge/ 下配置与状态;安装前宜自行审阅 源码与 MIT 许可证。健康路由与设置 API 仅允许 loopback;Token 不进日志与健康页。

已知边界(来自 README):Discord 侧需能访问 discord.com,国内环境常需正确配置 HTTP 代理;/goal 开始提示依赖 DSH goal/change 事件,其他插件替换 goal 命令时可能收不到;「记忆包」会把 ~/.dsh/memories 打成 ZIP 发到当前频道,公开频道勿点;系统通知上的快捷审批在页内 toast,而非 OS 通知按钮本身。

DSH 生态主张「一切皆插件」;SkillHub 插件目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-notify-bridge 把客户端提醒和 Discord(及可选 webhook)串成一条链路:就近处理审批,远端收摘要与 Token,并用健康页把 Bot、代理和客户端状态摊开。若要查看分类与简介,可打开 SkillHub 目录页;安装与细节以 GitHub 仓库 README 为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye