@hmilyld/dsh-beacon
v0.3.0
Published
DSH (DeepSeek Harness) webhook beacon: POST a JSON payload with variable substitution when a task completes or the agent needs user questions, plan confirmation, or approval.
Maintainers
Readme
@hmilyld/dsh-beacon
English | 中文
DeepSeek Harness (DSH) notification plugin: POST a JSON webhook when a task completes, or when the agent needs a question answered, a plan confirmed, or a tool approved. Works with WeCom, DingTalk, Slack, Bark, ntfy, or any HTTP receiver.
- Four event types:
task_completed,user_question,plan_confirmation,approval_request. - Fire-and-forget: receiver failures never affect the agent.
- Settings save live; no restart required.
Events
| eventType | When |
| --- | --- |
| task_completed | A turn finishes and the agent goes idle. |
| user_question | The agent asks the user to choose or answer. |
| plan_confirmation | The agent submits a plan for confirmation. |
| approval_request | A tool call needs human approval. |
Requirements
- DSH
>=0.2.0-rc.2 <0.3.0 - Node
^22.19.0 || >=24.0.0when building from source
Install
# npm
dsh plugin --profile web add @hmilyld/dsh-beacon
# local monorepo (build first)
pnpm --filter @hmilyld/dsh-beacon run build
dsh plugin --profile web add /absolute/path/to/DSHPlugins/packages/dsh-beaconRestart dsh web once after install. Remove with dsh plugin --profile web remove @hmilyld/dsh-beacon.
Configure
Open Plugins → @hmilyld/dsh-beacon. Settings are staged and written only when you press Save.
| Field | Meaning |
| --- | --- |
| Webhook URL | POST target. Leave blank to disable sending. |
| Payload template | JSON template with {{eventType}}, {{summary}}, {{sessionId}}, {{time}}. |
| Headers | JSON object of extra request headers. |
| Notify on questions | Send for user_question; plan confirmation and approvals are unaffected. |
| Skip subagents | Do not send completion/tool fallbacks for subagent sessions. |
| Dedup window (ms) | One send per session and event type inside the window. |
The default payload is:
{"event":"{{eventType}}","success":true,"msg":"{{summary}}","sessionId":"{{sessionId}}","time":"{{time}}"}Update detection
The settings page checks npm's latest dist-tag through @hmilyld/dsh-plugin-kit (six-hour cache, silent failure). When a newer release exists it shows the version comparison and a View release notes link. Release notes live in CHANGELOG.md and are generated by Changesets.
Troubleshooting
No notification arrives
- Check that the webhook URL is non-empty and saved.
- Check the DSH log for
dsh-beaconwarnings. - Confirm the receiver accepts a JSON
POST.
The settings page is unavailable
The Host must be running and serving the dsh-beacon namespace. Check that the plugin entry is active under Plugins → Included components.
Templates are skipped
The rendered template must be valid JSON. Invalid templates are skipped and logged without affecting the agent.
Development
pnpm install
pnpm --filter @hmilyld/dsh-beacon run build
pnpm --filter @hmilyld/dsh-beacon run testSee the repository engineering standard.
License
MIT
