AhYi8/dsh-gotify-notify ↗★ 0

dsh-gotify-notify

DSH 会话轮次结束 Gotify 通知插件:可在设置界面配置的宿主 + 浏览器插件包 适合需要在任务完成或异常结束时,通过Gotify接收实时推送通知的用户。

패키지
dsh-gotify-notify
호환성
미검증
Harness peer 범위
>=0.1.7-rc.1
Cordis peer 범위
^4.0.1
버전
2.2.0
최근 업데이트
2026. 10. 10.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:AhYi8/dsh-gotify-notify

配置

打开 设置 → 插件 → 找到 dsh-gotify-notify → 配置(插件管理页的行内配置卡)。

字段说明默认
urlGotify 服务器地址,必须以 http:// 或 https:// 开头https://gotify.21zys.com
userGotify 用户名(用于自动创建/复用名为 DSH 的应用并换取 token);留空则读启动环境变量 GOTIFY_USER空
passwordEnv口令的凭据引用名:口令存在凭据库的哪个名字下(同时是环境变量名)GOTIFY_PASSWORD
token直接指定应用 token,填了就不再需要账号密码空
titleCompleted正常结束时的通知标题模板DSH 任务完成
titleOther非正常结束时的标题模板DSH 轮次结束({reason})
message通知正文模板见下
priority优先级,0–10 的整数5
notifyOnErrorOnly只在非正常结束时通知关
includeSubagents连子 Agent 的轮次结束也通知关

凭据

口令不写进配置文件。插件管理页里的口令控件走 ctx.remote.credentials.set(ref, value) 把值写进 DSH 的凭据库 ($DSH_HOME/.credentials.yaml,与模型 API Key 同一个库),配置文件里只留下 passwordEnv 这个引用名。是否已配置由 describe() 回读判定 —— 值永不回传。

插件求值时按下面的顺序找口令,前一条拿到就用前一条:

  1. 凭据域按 passwordEnv(默认 GOTIFY_PASSWORD)解析 —— 凭据库与启动环境都走这一条;
  2. 凭据域缺席、拒绝解析、或未命中该引用时,直接读启动环境里与 passwordEnv 同名的变量。

凭据域是软探测的:profile 没组合凭据服务时插件照常工作,直接从启动环境读, 不会因为缺一个服务就起不来。

默认正文:

会话 {title} 第 {turn} 轮已结束
结果:{reason}
目录:{cwd}
时间:{time}

模板里的换行怎么写? 设置面板是单行输入框,换行请写成两个字符 \n,插件会还原成真正的换行。

{reason} 输出中文标签,{reasonRaw} 输出 DSH 的原始标识:

原始标识{reason}
completed成功
error失败
aborted已中止
interrupted已中断
blocked被阻断
max-tokens超出长度上限
forked分支继承

turn/end 的原因集合在 DSH 里是可扩展的(TurnEndReasonMap 允许后端新增取值),未收录的标识会原样显示,不会编造中文。

{error} 只在 error 结束时才有内容:它取自 DSH 的失败快照 reason.error(@deepseek-ai/dsh-llm 的 LlmFailure,含非空的 message 与 code),优先用 message,消息为空时回落到 code;其余结束原因渲染成空串,所以像 结果:{reason}\n{error} 这样的正文在成功时是干净的,不会残留 {error} 字面量。

配置保存在当前 profile 的 cordis.patch.yml 中,由 DSH 的配置编辑器自动维护;本包的 cordis.patch.yml 不预置 config:,避免出现两份互相覆盖的配置。