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字段)。 - 浏览器系统通知:调用
NotificationAPI,需授予浏览器权限。注意:依赖标签页处于打开状态(不能关闭)。 - Tab 标题闪烁:后台标签标题在“⚠ / ✅”前缀与原标题间交替,最多 30 秒冷却一次。
- favicon 红点:后台标签的 favicon 显示红点。
- 原生 Windows Toast:由 DSH Host 进程直接弹出。优势:浏览器整个关掉也能收到。零依赖 WinRT 实现,若安装了 BurntToast 模块则自动使用以获得更美观的样式。
- 设置页:提供双语文案(zh/en),支持逐项开关与配置,设置是持久化的正式模块设置。
安装与启用¶
- 编辑
~/.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"
]
}
}
}
- 在该 profile 目录下执行
pnpm install。 - 重启 dsh。新增插件集合只在重启后生效。
重启后,进入 设置 → 通知 即可看到全部开关并逐项配置(启用通知 / 等待批准 / 回合完成 / 出错 / 浏览器系统通知 / 原生系统通知 / Tab 标题闪烁 / favicon 红点 / 声音 / 冷却)。
注意事项¶
- 权限依赖:使用浏览器系统通知前,需在浏览器设置中授予网站通知权限。
- 运行环境:原生 Toast 功能由 DSH Host 进程提供,依赖 DSH 的宿主环境。
- 错误检测:错误通知依赖会话快照中的
lastAgentError字段。 - 持久化:设置页是正式模块设置,写入
~/.dsh/settings.yaml,重启不丢失。