前言¶
DeepSeek Harness (DSH) 采用插件化架构,允许开发者根据需求扩展功能。在智能体开发场景中,用户常因切换标签页或窗口而错过会话状态更新(如任务完成、报错、等待审批等)。dsh-away-notify 旨在解决这一问题,仅在用户离开当前页面时触发桌面通知。
安装¶
该插件依赖 Node.js >= 22.5。安装命令如下:
dsh plugin --profile web add github:s11phere/dsh-away-notify
注意事项:
* Windows 跨盘符问题:如果 $DSH_HOME 与插件检出目录不在同一盘符,直接安装可能导致静默失败(退出码 0 但插件无效)。Windows 用户需使用仓库提供的安装脚本或确保路径在同一盘符。
* 重启生效:安装后需重启 dsh web 并刷新浏览器页面,新增 bundle 才会被加载。
配置¶
配置文件位于 profile 的 cordis.patch.yml。该文件支持热监视,但新增 bundle 后首次仍需重启。关键配置项包括:
- id: dsh-away-notify
config:
onTurnComplete: true
onTurnError: true
onTurnAborted: true
onTurnMaxTokens: true
onApproval: true
onQuestion: true
onGoalComplete: true
suppressGoalRounds: true
rootsOnly: true
cooldownMs: 10000
openOnClick: true
persistent: true
dismissOnReturn: true
验证安装:
dsh --profile web --dump-config | grep -A2 dsh-away-notify
功能¶
- 原生通知支持:原生 Windows Toast(支持 WSL 环境)或 Linux
notify-send(缺失则仅记录日志),支持系统提示音。 - 点击回跳:点击通知可回跳至对应会话,支持多 DSH 实例区分,避免误伤。
- 防刷屏与抑制:具备冷却机制,同会话同类型通知替换而非叠加;支持根据在场状态抑制通知,页面失焦即视为离开。
- 插件接口:支持被其他插件接管,允许其他插件声明“这条会话别打扰”或指定点击落点。
注意事项¶
- Node.js 版本:需要 Node.js >= 22.5。
- DevTools 行为:打开浏览器 DevTools 会导致页面失焦,插件会将其判定为离开状态。
- 配置项差异:
appName配置项已声明但未实际使用;区分通知来源请修改appId。 - Token 安全:开启
includeToken会导致鉴权 Token 进入本地通知历史记录。 - 自检工具:可使用
node scripts/selftest-notify.mjs "标题" "正文"验证通知通道是否通畅。
结语¶
该插件为 DSH 用户提供了仅在离开时触发的桌面通知体验,适合需要后台运行并关注状态变更的开发场景。更多细节见 GitHub 仓库。