dsh-notify
baka-world
DeepSeek Harness desktop notification plugin (notify-send / D-Bus)
PROJECT TOPICS
PROJECT README
English | 中文
在 DeepSeek Harness(DSH)中,每次对话回合结束时,通过腾讯官方 QQ Bot API 向你的 QQ 私聊推送一条提醒通知。支持 5 个自定义预设、占位变量、内置扫码绑定。
零外部依赖:发送与绑定全部使用系统自带的 curl + 内置的纯 JS AES-256-GCM 实现,无需 Python、Node 包或任何第三方库;AppSecret 存入 DSH 凭据库,不落盘明文。
agent/turn-stopping(对话回合结束)自动推送通知{workspace} {project} {time} {request} {result} {model} {provider} {sessionTitle} {sessionId} {turn}仓库已发布为 dsh 插件包(dsh-qq-notify,含 dsh.bundle 声明),一条命令安装:
dsh plugin --profile web add github:sq8161/dsh-qq-notify#v1.0.1
安装后发生了什么(用户视角):
v1.0.1 tag 对应的仓库 tarball,安装到 profile 的 node_modules/dsh-qq-notifydsh plugin 的 reconcile 检查到该包 manifest 声明了 dsh.bundle.patch,自动把它追加进 profile 的 dsh.profile.bundles 层cordis.patch.yml 把插件注册为宿主组合的一行(qq-notify),宿主逻辑激活——监听回合结束、注册 /qq-notify RPC 通道;dsh.client 声明让浏览器模块表加载 lib/client.js,设置页出现「QQ 通知」区块升级版本:dsh plugin --profile web update dsh-qq-notify → 重启。
| 变量 | 说明 |
|---|---|
{workspace} |
会话工作区完整路径 |
{project} |
工作区目录名(项目名) |
{time} |
对话结束时间(本地时间 YYYY-MM-DD HH:mm:ss) |
{request} |
本次对话最近一条用户输入(截断至 200 字) |
{result} |
最近一条助手回复(截断至 300 字) |
{model} |
当前使用的模型 |
{provider} |
当前使用的模型提供商 |
{sessionTitle} |
当前会话标题 |
{sessionId} |
会话 ID |
{turn} |
结束的回合序号 |
默认预设:
【deepseek任务完成】
项目:{project}
时间:{time}
请返回deepseek查看执行结果
<profile>/node_modules/dsh-qq-notify/.dsh-qq-notify/dsh_qq_notify_config.json(与工作区无关,重装插件后请手动迁移)~/.dsh/.credentials.yaml),不写入配置文件{request} / {result} 会提取对话内容(含你的输入与助手回复),默认预设不使用它们;如需使用请自行评估隐私(消息仅发往你自己的 QQ 私聊)curl(Windows 10+ / macOS / Linux 均内置)POST https://bots.qq.com/app/getAppAccessToken({appId, clientSecret})获取 access tokenPOST https://api.sgroup.qq.com/v2/users/{openid}/messages({content, msg_type: 0, msg_seq, msg_id: ""},鉴权头 Authorization: QQBot <token>)POST https://q.qq.com/lite/create_bind_task(携带本地生成的 AES-256 密钥)→ task_idhttps://q.qq.com/qqbot/openclaw/connect.html?task_id=...&_wv=2POST https://q.qq.com/lite/poll_bind_result → 完成后用 AES-256-GCM 解密 bot_encrypt_secret 得到 AppSecrethttps://q.qq.com/ 预取 cookie(-c/-b cookie jar,保存在 .dsh-qq-notify/qqn_cookies.txt)再调用绑定 API,规避 JS 挑战页qrgen.js 为可独立运行的编码器副本(含 reserved 调试输出),已用 npm qrcode 库逐模块比对 + jsqr 独立解码验证(覆盖 v1/v2/v5/v7/v9,含双块交错),test-aesgcm-driver.js 与 .verify/verify-qrgen.js 为对应验证脚本aesgcm.js 是独立可运行的 AES-256-GCM 实现副本(含 CLI),已用 Python cryptography 库的 10 组随机向量(0~5000 字节)交叉验证通过,错误密钥会被 tag 校验拒绝;test-aesgcm-driver.js 为对应测试驱动CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。