voyager
Nagi-ovo
Enhancement suite for Gemini, AI Studio, Claude & ChatGPT — plus a prompt manager for any web UI, DeepSeek Harness included. / 面向 Gemini、AI Studio、Claude 与 ChatGPT 的增强套件;提示词管理器可用于任意 Web UI,含 DeepSeek Harness。
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:aokamoaki/dsh-notify
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
简体中文 | English
DeepSeek Harness 对话完成通知插件 —— 回合完成、出错、目标完成、提问、审批时,在你离开应用时弹出 Windows 通知(toast + 提示音),前台自动静默。零配置,会话头部铃铛即控制中心。
在 DeepSeek Harness(DSH)里跑长任务时,你常常切去别的窗口。dsh-notify 会在对话回合结束、出错、目标达成时用 Windows 原生 toast + 提示音提醒你,只在应用处于后台时打扰:页面可见或桌面壳任一窗口聚焦时,完成类通知自动静默;而「需要你回来操作」的提问 / 审批类通知始终提醒——那正是要打断你的场景。
ask_user_question、approval/asked 不因前台而静默dsh plugin --profile web add github:aokamoaki/dsh-notify
重启 dsh web 生效。
本地开发(link 方式):把仓库放到任意目录,然后在 profile 的 package.json 中以 link 引入:
"dependencies": { "dsh-notify": "link:C:/path/to/dsh-notify" }
并确保 dsh.profile.bundles 含 "dsh-notify"。
安装并重启后无需任何配置即生效。默认行为:
ask_user_question)→ 需要你选择(始终)approval/asked)→ 需要你批准 : 工具名(始终)不想被打扰?点会话头部的 🔔 铃铛即可一键静音,悬停可调音量。
配置文件:~/.dsh/dsh-notify.json(不存在时用默认值;铃铛操作实时写回)。
| 字段 | 默认 | 说明 | 控制入口 |
|---|---|---|---|
notifications |
true |
通知总开关(关 = 全部静默) | 铃铛点击 |
volume |
1 |
提示音音量 0–1 | 铃铛滑块 |
sound |
true |
提示音开关 | 配置文件 |
toast |
true |
系统弹窗(toast)开关 | 配置文件 |
serviceNotify |
true |
服务类通知开关(桌面壳读取) | 配置文件 |
| 端点 | 方法 | 说明 |
|---|---|---|
/dsh-notify/config |
GET | 读取当前配置 |
/dsh-notify/config |
POST | 局部更新配置({"volume": 0.5}),原子写盘 |
/dsh-notify/foreground |
GET | 前台状态快照({page, shell, foreground}) |
/dsh-notify/foreground |
POST | 上报前台状态({"page": bool} 页面 / {"shell": bool} 桌面壳) |
所有端点仅接受同源请求(
sec-fetch-site校验),非浏览器来源会被拒绝。
web 页面 (lib/client.js) ──visibilitychange / focus──► POST /dsh-notify/foreground {page}
桌面壳 (Electron) ──任意窗口 focus/blur──────► POST /dsh-notify/foreground {shell}
│ 合并:foreground = page || shell
宿主插件 (lib/index.js) ──notify()──┐ ▼
session/event、goal/changed 事件 │ done/error/goal 前台静默、ask 始终弹
└─► notify.ps1 ──► Windows toast + 提示音
lib/index.js):事件驱动;配置 / 前台状态 API;notify() 读取配置 → 调用 notify.ps1lib/client.js):会话头部铃铛 UI;页面可见性 / 焦点上报-SoundType done|error|ask、-Volume、-NoSound、-NoToast)dsh web),桌面壳可选(上报 shell 前台状态)>=22.13dsh-notify/
├── lib/
│ ├── index.js # 宿主入口(事件 + API;纯决策/参数逻辑可单测)
│ ├── client.js # 浏览器端(铃铛 UI + 前台上报)
│ ├── notify.ps1 # toast / 提示音执行器
│ └── activate.ps1 # toast 点击处理(仅打开本机 DSH 地址,安全校验)
├── test/notify.test.mjs # 22 个用例(node:test,零依赖,spawn 注入间谍)
├── cordis.patch.yml # bundle 注册
└── package.json
client 构建约束:lib/client.js 必须是 DSH client-bundle 产物格式——
window.__ModuleLoader__.load({ id, factory }),禁止 import / JSX。修改后保持该包装结构,否则浏览器加载会报 "loaded without registering"。
验证:
npm run check # node --check lib/index.js lib/client.js
npm test # 22 个用例(配置/决策/事件接线/HTTP 路由;不真起 powershell)
npm run pack:check # 发布包内容检查
运行时 API 自检:curl http://127.0.0.1:3080/dsh-notify/config。
| 现象 | 处理 |
|---|---|
| 完全收不到通知 | 检查 ~/.dsh/dsh-notify.json 的 notifications/sound/toast 是否被关闭;页面是否处于可见状态(前台静默是设计行为) |
| 前台也弹通知 | 上报链路可能中断(/dsh-notify/foreground 被同源校验拦截);刷新页面后应恢复 |
| 铃铛不见了 / GUI 启动异常 | 若 dsh-startup-guard 检测到本插件损坏会自动禁用并在 cordis.patch.yml 追加 disabled: true(附原因注释);修复源码后删除该条目并重启即可 |
| 通知延迟 | 回合完成类有 800ms 去抖 + 空闲判断;同会话 5 秒去重 |
DeepSeek Harness 社区插件,与 DeepSeek 官方无关。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: notification、notify。