dsh-session-notify:会话停止通知与跳转插件

在 DSH 环境下开发智能体时,会话状态的变化(如运行结束或等待人工审批)需要开发者及时感知。如果开发者切换了窗口或最小化了 DSH,这些状态变化可能会被忽略。dsh-session-notify 插件通过桌面通知、提示音和标题闪烁,解决了后台任务状态遗漏的问题。

插件定位

这是一个 DSH web 插件,由 huaiyuWangh 维护。它通过监听会话状态变化,在会话停止(无论是自然完成还是等待人工干预)时触发警报。该插件基于纯插件层实现,不修改 DSH 源码。

核心功能

  1. 多模态提醒:当会话停止时,根据页面状态(后台或前台)触发桌面通知、提示音(chime)和浏览器标题闪烁。
  2. 状态监听:插件监视 ctx.sessions.list store,与侧边栏的状态点使用相同的数据源。
  3. 点击跳转:通知是可点击的,点击后会将窗口聚焦并切换到对应的会话。
  4. 本地持久化:用户的偏好设置保存在 localStorage 中,无需额外的服务层支持。

安装与启用

使用官方命令安装并挂载插件:

dsh plugin --profile web add dsh-session-notify

安装完成后,重启 dsh web 服务,并在浏览器中刷新页面。

典型用法

  1. 授权通知:在浏览器设置中授予该页面通知权限。
  2. 状态感知:当会话进入“等待人工输入”或“已完成”状态时,插件会在后台或前台发送通知。
  3. 快速定位:点击通知,系统会自动聚焦窗口并切换到对应的会话页面。

适用场景与限制

该插件适合需要长时间运行任务或需要人工介入审批的场景。

需要注意的是:
* 权限要求:必须授予浏览器通知权限才能生效。
* 标签页限制:如果浏览器标签页被关闭,插件无法发送通知。
* 系统级静音:macOS 的系统设置(通知中心)、Focus 模式或勿扰模式可能会静音或吞掉通知。插件无法检测到这些系统级的静音状态。
* 通知来源:浏览器强制显示页面源作为通知来源(如 127.0.0.1:3080),无法在代码中修改这一显示内容。

结语

dsh-session-notify 通过轻量级的通知机制,帮助开发者保持对智能体会话状态的掌控。更多技术细节可参考 GitHub 仓库。

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

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

小夜