@dsh-external/dsh-client-ui-notifications:DSH Web 的等待与完成通知插件

DSH 理念是“一切皆插件”。在智能体开发过程中,当你切换标签页处理其他事务时,往往难以察觉 DSH 的状态变化(如等待批准、提问或出错)。本文介绍 @dsh-external/dsh-client-ui-notifications 插件,通过浏览器系统通知、Tab 标题闪烁、favicon 红点及原生 Windows Toast 等方式,解决后台任务被遗漏的问题。

这是什么

@dsh-external/dsh-client-ui-notifications 是一个 DSH Web 插件,由 huangDouP 维护。它监听 DSH 原生契约(如 approval/request、agent/status、agent/error),并在需要用户介入或状态变更时触发提醒。

核心功能

该插件提供以下功能与呈现方式:

  • 触发场景:等待批准、等待回答、回合完成、出错。这些信号来源于会话快照(pending 中的 approval / question,running 状态变更,或 lastAgentError 字段)。
  • 浏览器系统通知:调用 Notification API,需授予浏览器权限。注意:依赖标签页处于打开状态(不能关闭)。
  • Tab 标题闪烁:后台标签标题在“⚠ / ✅”前缀与原标题间交替,最多 30 秒冷却一次。
  • favicon 红点:后台标签的 favicon 显示红点。
  • 原生 Windows Toast:由 DSH Host 进程直接弹出。优势:浏览器整个关掉也能收到。零依赖 WinRT 实现,若安装了 BurntToast 模块则自动使用以获得更美观的样式。
  • 设置页:提供双语文案(zh/en),支持逐项开关与配置,设置是持久化的正式模块设置。

安装与启用

  1. 编辑 ~/.dsh/profiles/<你的profile>/package.json,添加以下内容:
    {
      "dependencies": {
        "@dsh-external/dsh-client-ui-notifications": "github:huangDouP/dsh-client-ui-notifications"
      },
      "dsh": {
        "profile": {
          "bundles": [
            "@deepseek-ai/dsh-base",
            "@deepseek-ai/dsh-web-app",
            "@dsh-external/dsh-client-ui-notifications"
          ]
        }
      }
    }
  1. 在该 profile 目录下执行 pnpm install。
  2. 重启 dsh。新增插件集合只在重启后生效。

重启后,进入 设置 → 通知 即可看到全部开关并逐项配置(启用通知 / 等待批准 / 回合完成 / 出错 / 浏览器系统通知 / 原生系统通知 / Tab 标题闪烁 / favicon 红点 / 声音 / 冷却)。

注意事项

  • 权限依赖:使用浏览器系统通知前,需在浏览器设置中授予网站通知权限。
  • 运行环境:原生 Toast 功能由 DSH Host 进程提供,依赖 DSH 的宿主环境。
  • 错误检测:错误通知依赖会话快照中的 lastAgentError 字段。
  • 持久化:设置页是正式模块设置,写入 ~/.dsh/settings.yaml,重启不丢失。

结语

该插件通过多渠道提醒机制,降低人工轮询成本。插件详情见 社区目录 与 GitHub。

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

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

小夜