편집자 노트

pc439527/dsh-notify-bark

A Bark push-notification plugin for DeepSeek Harness (DSH): the DSH Host listens for events such as turn completion, waiting for your answer, and waiting for approval, and pushes notifications to your iPhone through a Bark Server.

이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.

dsh-notify-bark

awesome · DSH plugin

License: MIT · Requires: Node ^22.19 · Platform: DSH Host + Web 设置页

English · 简体中文

DeepSeek Harness(DSH)的 Bark 推送通知插件:DSH Host 端监听回合结束、等待回答、等待授权等事件,通过 Bark Server 把通知推送到 iPhone。通知完全在 Host 发送——浏览器关掉、页面刷新、电脑休眠都不影响推送。

  • Host 半端src/index.ts + lib/*.js):session/event 监听 + Bark HTTP 发送 + bark 设置命名空间(ctx.settingssettings.yaml,热更新)+ /dsh-notify-bark loopback RPC。
  • 浏览器半端src/client/ + lib/client.js):注册 settings.section 插槽,表单经 RPC 读写 Host 配置;Bark 地址永不下发到浏览器,只显示脱敏状态(已配置:••••••••3F82)。

image

dsh-notify-bark

Bark notification

通知事件(9 个开关)

事件触发条件默认Bark level
✅ 任务完成turn/end reason completedactive
❌ 执行失败turn/end reason errortimeSensitive
🚫 执行被阻塞turn/end reason blockedtimeSensitive
⏹ 已中止turn/end reason abortedpassive
⚠️ Token 达到上限turn/end reason max-tokenstimeSensitive
⏸ 异常中断turn/end reason interruptedtimeSensitive
❓ 等待你的回答tool/call ask_user_questiontimeSensitive
🔐 等待你的授权approval/askedtimeSensitive
📋 计划待确认tool/call exit_plan_modetimeSensitive

标题固定为工作区名(session.header.cwd 最后一级),状态放在 body 第一行;可选附带 AI 最后一段回复、body 长度上限、Bark Group。

安装

从 GitHub 直接安装(仓库内置编译产物,克隆即可用,无需先构建):

dsh plugin --profile web add https://github.com/pc439527/dsh-notify-bark.git

或本地路径:

dsh plugin --profile web add /path/to/dsh-notify-bark

dsh plugin add 会执行 pnpm add(写入依赖 + dsh.profile.bundles),插件包自带的 cordis.patch.yml 插入 bark-notify 行。当前已在运行的 dsh web 通过 Cordis HMR 监听 profile 的 cordis.patch.yml——在用户层追加同一插入行即可热加载,无需重启服务:

# $DSH_HOME/profiles/web/cordis.patch.yml
- insert:
    - id: bark-notify
      name: 'dsh-notify-bark'

浏览器刷新设置页(齿轮 → Bark 通知)即可看到配置表单。

安全与隐私

  • 无内置密钥barkUrl 默认值为空,由每个部署者自行在设置页填写自己的 Bark 地址(https://api.day.app/你的key);本仓库不含任何真实凭据(测试仅用假 key testkey)。
  • 凭据不进浏览器barkUrl 在 schema 中声明为 role('secret'),RPC 只回传脱敏状态(已配置:••••••••3F82),日志只输出 configured: true/false
  • 配置只存 Host:写入 Host 端 settings.yaml,不会上传到任何第三方;通知仅发送到你配置的 Bark 地址。

开发

pnpm install        # typescript / @types/node(锁文件 pnpm-lock.yaml)
pnpm run build      # tsc 编译 Host 半端到 lib/;client bundle 直接维护在 lib/client.js
pnpm test           # node:test 单元测试(发送层 / 事件映射 / 默认值 / 去重 / 脱敏)

结构

dsh-notify-bark/
├── package.json          # dsh.client 声明 + bundle patch 声明 + 仓库元信息
├── pnpm-lock.yaml        # pnpm 锁文件
├── cordis.patch.yml      # 插件行插入
├── LICENSE               # MIT
├── src/
│   ├── index.ts          # Host 入口:settings 注册 + 事件监听 + RPC
│   ├── bark-service.ts   # Bark HTTP 发送(超时 / 错误分类)
│   ├── event-listener.ts # session/event → 通知意图(去重 / 标题 / 内容)
│   ├── settings-store.ts # 设置模型 / schema / 默认值 / 脱敏
│   ├── rpc-contract.ts   # /dsh-notify-bark 通道契约
│   ├── rpc.ts            # Host RPC(get 脱敏 / set / test)
│   └── client/           # 浏览器半端源码(lib/client.js 为其 bundle 镜像)
├── lib/                  # 部署产物(tsc 编译的 Host + 手写 module-loader bundle)
└── tests/                # node:test 单元测试

设计要点

  • 通知走 Hostctx.on('session/event') 直接监听(与 dsh-im-bridge 同路径),浏览器只是配置面板。
  • 配置存 Hostbark 命名空间注册进 ctx.settings,持久化到 settings.yaml;DSH 的 Web 设置 wire 有命名空间白名单(WEB_SETTINGS_NAMESPACES),第三方命名空间走 settings-not-exposed,所以设置页用专用 RPC(同 dsh-codex-auth 架构)读写。
  • 凭据不进浏览器barkUrl 声明为 role('secret') 且 RPC 只回传脱敏状态(已配置:••••••••3F82);日志只输出 configured: true/false
  • 事件去重sessionId + event.seq 键 + 有界台账,重连/重放不会重复推送。

参考与致谢

  • 架构模式参考(仅借鉴设计,未复制代码):
    • dsh-im-bridge——session/event 监听路径(DeepSeek 内部插件,未公开);
    • dsh-codex-auth——设置页经专用 RPC 读写 Host 配置的模式(DeepSeek 内部插件,未公开)。
  • 插件运行平台:DeepSeek Harness(MIT)。
  • 推送服务:Bark(开源 iOS 推送服务)——本插件只向用户自行配置的 Bark 地址发送 HTTP 请求,不包含或分发 Bark 代码。

许可证

MIT。按现状提供,无任何明示或暗示的担保;因使用本插件造成的任何损失由使用者自行承担。贡献者提交代码即视为同意以 MIT 许可授权。

REPOSITORY SIGNALS

보안 및 설치 증거

이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.

출처 추적 가능

공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.

라이선스

저장소가 MIT 라이선스를 선언했습니다.

유지보수 활동

최근 180일 내 코드 업데이트가 있습니다.

설치 증거

재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.

설치 라이프사이클 스크립트

검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.