Bundle
@dsh-external/dsh-approval-reminder
当任一会话出现需要点击批准的权限申请或需要回答的问题时,右下角弹出常驻系统气泡(点击前往对应会话)+ Web 提醒卡。随 dsh web profile 自动挂载,长期生效。
- Source
- BHX-WL
- License
- MIT
- Updated
- Updated 14 hours ago
Readme
# dsh-approval-reminder
Persistent **approval / question reminder** for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Web GUI.
Whenever any session lands a permission request (approval) or a question that needs you to click, a **persistent bottom-right system bubble** appears (click it to jump to that conversation), plus an in-page reminder card. The bubble does not steal focus and stays until resolved — you will never silently wait on a stalled waterfall again.
> 中文版见 [README.zh.md](README.zh.md)。
## Screenshots

## How it works
Dual-face plugin mounted on every `dsh web` start via a profile bundle layer:
- **Host half** (`lib/index.js`) — two loopback-only routes under `/api/dsh-approval-reminder/*`; renders the toast with a hidden PowerShell/WinForms process (borderless, rounded, topmost, click-to-close, never activates).
- **Browser half** (`lib/client.js`) — subscribes to the authoritative per-session `useSessionPendingInteraction` hook (`uiSession.pendingInteractions` registry); on a NEW pending key it POSTs `/notify`, when everything is resolved it POSTs `/notify { clear: true }`; bubble clicks are drained through `/poll-open` and the page navigates to the conversation that needs attention. A small self-test badge (bottom-left) mirrors the pending registry for liveness.
CJK is lossless: bubble text travels through environment variables, no base64/EncodedCommand.
## Install
DSH loads this plugin as a profile bundle (see `cordis.patch.yml`). Easiest:
1. Put this repo under your DSH `plugin-src/local/` (or any path your host loads plugins from).
2. Ensure the profile bundle row is applied:
```yaml
- insert:
- id: dsh-approval-reminder
name: '@dsh-external/dsh-approval-reminder'
```
3. Restart `dsh web`. The reminder is persistent across sessions — no per-session `cordis_define` needed.
## Requirements
- Windows (bubble uses PowerShell + WinForms)
- DeepSeek Harness host + Web GUI
## Support
If this plugin saves you from silently waiting on approvals again, you can say thanks:
- [爱发电 (ifdian) — 微信/支付宝](https://ifdian.net/a/bhx-wl2) (recommended for CN)
- GitHub Sponsor button (if enabled)
## Custom development / commissioning
I build DSH-ecosystem tooling on a commissioned basis (paid). Typical asks:
- **DSH Web GUI plugins** — host/client dual-face plugins, skins & themes, reminder/board/notification widgets
- **Electron desktop client customization** — built on the official DeepSeek Harness client
- **Windows automation** — PowerShell/WinForms system toasts, tray/overlay UX, local OCR & vision pipelines (Ollama + qwen2.5vl, multi-frame video recognition)
- **TypeScript / Node tooling & plugins**
Start a [Discussion](https://github.com/BHX-WL/dsh-approval-reminder/discussions) or open an [Issue](https://github.com/BHX-WL/dsh-approval-reminder/issues) describing what you need — quotes are free. Larger jobs can go through an escrow/escrow-style platform (e.g. 程序员客栈/Upwork) if both sides prefer.
## License
MIT
Install
dsh plugin --profile web add github:BHX-WL/dsh-approval-reminder
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-external-dsh-approval-reminder from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.