linanbuan/dsh-system-notify ↗★ 1

@local/dsh-system-notify

系统弹窗 · System notification — DeepSeek Harness 宿主插件:在 agent 运行时层检测「会话要求授权 / 电脑操控请求 / 会话终止 / 任务结束」,通过 Windows App SDK 弹出系统通知。检测点独立于 LLM 输出,规则与发送解耦,支持开关与节流。

包名
@local/dsh-system-notify
兼容性
待验证
Cordis 依赖范围
^4.0.1
版本
1.0.0
许可证
MIT
最近更新
2026年11月6日

安装

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

首次使用:编译原生助手

通知真正的发送端是 native/ 下的 Windows App SDK 小助手(Node 自己弹不出系统通知)。有两种情况:

  • 自动:sink.autoBuild 默认开启。第一次要发通知时,插件会自己跑 native/build.ps1(没有这个脚本就退到 dotnet build native/*.csproj -c Release),构建期间的通知会排队等它;

  • 手动:自己先编一次,之后启动零延迟:

    需要 .NET SDK 10(原生侧目标 net10.0-windows10.0.19041.0)

    pwsh -NoProfile -File native/build.ps1

构建产物落在 native/bin/Release/(已被 .gitignore 排除)。想确认发送端是否通,用诊断接口的 /test(见下),或直接跑助手自检:

nativeinReleaseDshNotificationSink.exe --selftest

配置

写在 profile 的 cordis.patch.yml 里,按 id 覆盖:

- id: system-notify
  config:
    enabled: true

    sink:
      provider: windows          # windows | log | none
      helperPath: ''             # 留空=自动在 native/bin 下找
      appName: DeepSeek Harness
      appIconPath: ''            # 留空=用 native/assets 里的图标
      timeoutMs: 5000
      autoBuild: true
      fallbackProvider: log      # windows 发送失败后降级到哪

    throttle:
      dedupeWindowMs: 8000       # 同一件事的重复通知窗口
      minIntervalMs: 1000        # 同一类事件的最小间隔
      maxPerMinute: 15           # 全局每分钟上限
      quietHours:
        start: ''                # 'HH:mm',留空=不启用
        end: ''
        allowHighSeverity: false # 静音时段内高优先级是否仍放行

    scope:
      includeChildSessions: false      # 子 agent 会话要不要弹
      approvalGraceMs: 1500            # 授权通知的等待时间,0 = 立刻弹

    limits:
      maxTitleChars: 72
      maxBodyChars: 220
      queueLimit: 32

所有字段都有默认值,写错的值会被夹回合法范围并在日志里留一条 系统弹窗配置:… 说明——配置写错不会让插件挂不上,但也不会悄悄生效。