READMESource: main@b8ac5713
dsh-tab-alert —— dsh 任务栏提醒与实时事件源插件
dsh-tab-alert 是运行于 dsh(DeepSeek Harness)宿主侧的插件,提供两项能力:
- 任务栏提醒:dsh 在后台运行并需要用户介入时,通过系统通知提醒用户。 页面失焦或隐藏时弹出静音通知,浏览器在操作系统任务栏上闪烁图标 (Windows 下为橙色闪烁,Linux 下为通知与 Dock 脉冲)。
- 实时事件源:订阅全量会话事件流,维护各会话的实时状态,并通过 WebSocket 端点对外提供统一的会话状态数据,供 dsh-pet 等外部消费方使用。
功能
任务栏提醒
仅在需要用户操作的场景触发提醒,普通回复不提醒:
| 场景 | 说明 |
|---|---|
| 模型提问 | 模型向用户提问 |
| 授权请求 | 请求用户授权 |
| 方案审查 | 请求用户审查方案 |
| 目标完成 | 目标阶段进入完成 |
| 目标失败 / 阻塞 | 目标阶段进入失败或阻塞 |
| 后台任务完成 / 失败 | 后台任务结束 |
| 会话在别处完成 | 未查看的会话已完成 |
| dsh 完成当前回合 | 普通任务执行完毕 |
提醒规则:
- 通过浏览器 Web Notification 触发系统通知与任务栏闪烁,无需修改浏览器;
- 首次触发时请求一次通知权限;用户拒绝后插件保持静默,不做页内降级;
- 同一事件只提醒一次,新事件再次提醒;
- 用户返回页面视为已处理,不再提醒;
- 插件只订阅官方快照并创建通知,不修改其它插件状态,卸载即清理;
- 事件同时发布为旁观式
tab-alert/attention(cordis 事件),供其它插件观察。
任务栏闪烁是浏览器与操作系统的行为,不同环境下表现可能有差异;
若静音模式不闪烁,可关闭 silent 对比验证。
实时事件源(中间件)
宿主侧维护各会话的状态机,把归一化的实时任务状态(会话标题、状态、等待原因、 流式文本等)通过 WebSocket 端点转发给外部消费方。一条数据流,多方复用。
- 官方搭配:dsh-pet(uTools 桌面宠物插件) 直连该事件流,将实时状态渲染为桌面状态面板;
- 第三方开发者可基于同一事件流开发自定义插件或独立客户端(状态面板、 托盘图标、播报、看板等)。
WebSocket 端点、数据格式、状态机语义、节流与重连、版本策略的完整说明, 见 protocol.md。
安装
前置:dsh CLI 可用,目标 profile(如 web)已初始化。
# 安装(link: 开发链接;改源码后重建并重启 dsh 生效)
powershell -ExecutionPolicy Bypass -File .\install.ps1
# 或手动:dsh plugin --profile web add link:<绝对路径>
# 卸载
powershell -ExecutionPolicy Bypass -File .\uninstall.ps1
# 或手动:dsh plugin --profile web remove dsh-tab-alert
# 查看已装插件
dsh plugin --profile web list
link: 为符号链接开发模式,改源码无需重新安装;file: 为拷贝安装,
适合打包分发。卸载后重启 dsh 生效。
配置
可通过 dsh 行级 config 覆盖默认值(如 cordis.patch.yml 覆盖层):
- id: dsh-tab-alert
config:
enabled: true
kinds:
question: true
approval: true
planReview: true
goalComplete: true
goalBlocked: true
jobCompleted: true
jobFailed: true
sessionCompleted: true
silent: true # 静音:只闪烁不响铃
requireInteraction: false # true = 通知常驻直到手动关闭
debug: true # 控制台调试日志
构建与测试
npm install --ignore-scripts
node build.mjs # 产出 lib/ 构建产物
node test\collector.test.mjs # 逻辑单测(边沿检测 / 去重 / 重连基线)
项目结构
src/host/index.ts 宿主侧:会话状态机 + WebSocket 事件源
src/client/index.ts 浏览器侧:插件主体(订阅快照 → 提醒 → 事件总线)
src/client/collector.ts 事件差分逻辑
src/client/notifier.ts Web Notification 提醒
src/client/status.ts 任务进度数据源
test/ 单元测试
License
MIT
No comments yet. Be the first to write one.