# Bark 单向通知 在伙伴的「渠道」中配置 Bark,或通过「添加渠道 → Bark」添加更多服务器。每个服务器可配置多个设备,保存启用后对之后的最终结果自动推送,不需要微信配对,也不依赖「通知与交付」的联系人选择。 服务器地址填写根地址或反向代理前缀,插件会追加 `/push`,使用 POST JSON。每个目标填写 Device Key;也可以在 Key 输入框粘贴 `https://服务器/设备Key` 自动拆分。保存后 Key 不回显,编辑时留空表示保留。 服务器必须能从 **DSH 所在服务端** 访问,而不是只从浏览器或手机访问。Docker 内的 `127.0.0.1` 指容器自身;同一网络里的自建 Bark 可填写 `http://bark-server:8080`(以实际服务名和端口为准)。支持内网地址,不跳过 HTTPS 证书校验,不跟随重定向。HTTP 会明文传输凭据,只适合可信网络。 ## 发送范围 - 普通会话的最终答复、需求最终完成总结、独立长任务最终结果、普通定时任务结束结果。 - 不逐条推送工具过程、子任务、验收过程和被动心跳检查。 - 默认只通知完成;高级选项可开启最终失败、需处理的需求受阻通知。 - 默认标题加最多 500 字符的简短摘要,不额外调用模型;可改为仅标题。附件仍由原渠道交付,Bark 不重复上传附件。 - 保存不会补发历史对话。修改/停用渠道会取消旧配置中尚未发送的记录;已提交到网络的请求无法撤回。 ## 队列与重试 通知异步持久化,不阻塞伙伴回答。每个设备独立记录状态;已经收到 Bark 成功响应的目标不因其他目标失败而重发。服务启动后恢复未确认的记录。网络错误、408、429 和服务端错误自动退避,最多尝试 5 次;超出 24 小时停止自动补发。其他拒绝响应直接标记失败,可在「发送记录」手动重试,手动重试重新开启 24 小时窗口。 「服务端已接受」只表示 Bark API 返回成功,**不是手机已收到的回执**。若 Bark 已发送但 HTTP 回执丢失,重试仍可能产生重复通知,不能保证端到端恰好一次。 配置存在伙伴私有存储中;Key 单独交给 DSH 凭据服务保存。记录包含简短通知正文,可用「清理已结束记录」删除已接受/取消的记录。最多保留 1,000 条投递记录,满额时先清理超过 7 天的成功/取消记录;不能清理时停止接收新通知并记录告警。清理后不再保留那些事件的去重凭据。 ## 扩展边界 `notifications/push-domain.ts` 定义单向通知事件和适配器契约;`push-service.ts` 负责凭据配置、持久队列、扇出、重试;`push-observer.ts` 只将业务终态转成通知事件;`bark-adapter.ts` 只实现 Bark 协议。后续第三方通知可增加适配器和对应配置解析,无需混入双向聊天配对流程。