Skip to content
dsh.fish
Bundle

dsh-approval-notify

DeepSeek Harness plugin: Windows toast notification with sound when a session requests elevation approval — shows which session, why, and what is being elevated

Source
Uknown-wang
stars
1 stars
License
MIT
Updated
Updated 14 days ago

Readme

# dsh-approval-notify

DeepSeek Harness 插件:任意会话请求提权(审批)时,弹出 **Windows 原生 toast 通知并播放系统提示音**,告知是哪个会话、为什么、提权什么。

A DeepSeek Harness plugin: pops a **native Windows toast with sound** whenever a session requests elevation approval, showing which session, why, and what is being elevated.

## 通知内容 / Toast layout

```
需要提权审批 — <会话名> (<会话ID前8位>) [· 子代理#N]
路径: D:\your\workspace
工具 pwsh · 提权至 danger-full-access — 原因: <justification>
```

- 会话名优先显示标题,无标题时退回工作目录名;ID 放括号里作唯一标识
- 路径独立一行,不与会话名挤在一起换行
- 点击通知可跳转 Web UI(需配置 `launchUrl`)
- toast 不可用(如非交互会话)时退化为系统提示音

## 安装 / Install

```bash
dsh plugin --profile <profile> add dsh-approval-notify
```

包声明了 `dsh.bundle.patch`,`dsh plugin add` 会自动把它并入 profile 的 bundle 层栈;重启 `dsh` 后生效(或由 HMR 热加载)。

手动挂载(等价写法,加到 profile 的 `cordis.patch.yml`):

```yaml
- insert:
    - id: approval-notify-windows
      name: dsh-approval-notify
      config: {}
```

## 配置 / Config

| 项 | 默认 | 说明 |
|---|---|---|
| `dedupeMs` | `1500` | 同一会话的去重窗口(毫秒) |
| `sound` | `ms-winsoundevent:Notification.Default` | Windows 通知音事件名;置 `null` 静音(仍弹 toast) |
| `launchUrl` | 环境变量 `DSH_WEB_URL` | 点击通知跳转的地址;置 `null` 关闭跳转 |
| `titlePrefix` | `需要提权审批` | 通知标题前缀(可改为英文等) |
| `disabled` | `false` | 置 `true` 临时停用 |
| `appId` / `powershell` | PowerShell 经典 toast AppId / `powershell.exe` | 高级项,一般无需改动 |

注意:DSH 组合补丁按行整段替换 `config`(不深合并),覆盖配置时请重写完整字段。

## 工作原理 / How it works

监听提交后的 `session/event` 事件流里的 `approval/asked` 审计事件(emit 模式、与注册顺序无关)。刻意**不**挂在 `approval/request` waterfall 上:UI 应答器先注册并认领请求(不调用 `next()`),后注册的监听器收不到事件;而 firehose 与顺序无关,且通知故障绝不会影响审批链路本身。toast 由 `powershell.exe` 经 WinRT `ToastNotificationManager` 发出,无需安装任何额外模块。

## 要求 / Requirements

- Windows 10 / 11(非 Windows 平台自动禁用)
- 任意官方 DeepSeek Harness profile(需要 `approval` 与 `sessionTitle` 服务,官方 profile 均提供)

## 社区市场 / Community marketplaces

本仓库若放在 GitHub 上并打上 `dsh-plugin` topic,会被 [AwesomeHou/dsh-plugin-marketplace](https://github.com/AwesomeHou/dsh-plugin-marketplace) 等社区插件市场自动收录。

## License

[MIT](./LICENSE)

Install

dsh plugin --profile web add github:Uknown-wang/dsh-approval-notify

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source