插件目录 / Developer / dsh-tab-alert
dsh-tab-alert
未验证 Suef-666
功能简介
Developer 类别的 DeepSeek Harness 插件。
未验证 — 尚未实测
Developer 类别的 DeepSeek Harness 插件。 尚未验证——请自行安装测试。
「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
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
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-tab-alert」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:Suef-666/dsh-tab-alert Headless(CLI)profile:
dsh plugin --profile headless add github:Suef-666/dsh-tab-alert 实测报告
尚未 L3 验证——若已跑过,见下方失败备注。