bigfurma-bot/dsh-attention ↗★ 0

@deepseek-ai/dsh-attention

Approval attention watcher for DSH: plays the owner's bell recording and flashes the tab title whenever an approval request needs their decision (durable-log asks automatically; plugin activations via agent-side attn_ring). Includes a synthesized struck-bell fallback and attn_ring/attn_clear/attn_debug agent tools. 适合常离开键盘、怕错过审批的用户,需安装并重启

Package
@deepseek-ai/dsh-attention
Compatibility
Unverified
Version
1.1.0
License
NOASSERTION
Last updated
Aug 23, 2026

Install

This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗

dsh-attention

Approval attention watcher for DeepSeek Harness (DSH): when anything needs the owner's decision — folder-access escalation, tool approval, plugin activation — the browser plays a bell and flashes the tab title, so an away-from-keyboard owner always knows their agent is blocked.

What rings the bell

Ask typeDetectionAutomatic?
Sandbox / folder-access escalationsdurable approval/asked session-log eventsyes
Tool approvals (any session or subagent)same log channelyes
Plugin activations (cordis_run client packages)private host-runner registry, invisible on the bus — your agent calls attn_ring when a run returns "awaiting approval"agent-side; the ring auto-clears itself when the verdict lands (v1.1.0)

Behavior: chime on first sighting → repeat every 20 s while unanswered → title flashes 🔔 N approvals waiting → restored on resolution. Sub-second auto-granted asks stay silent by design (no false alarms). Audio unlocks on your first interaction with the page (browser autoplay policy); asks that arrive earlier still flash the title and chime on first click.

Flashing tab title and approval card

The sound

Ships with a bell recording embedded at build time, plus a fully synthesized Web Audio struck-bell fallback (noise-burst clink + inharmonic partials + room tail) if decoding ever fails.

Bell recording from Mixkit under the Mixkit Sound Effects Free License.

Swap in your own notification sound

# 1. transcode any wav/mp3 to compact opus and base64 it
ffmpeg -y -i my-chime.wav -ac 1 -ar 48000 -c:a libopus -b:a 32k my-chime.ogg
base64 -w0 my-chime.ogg > my-chime.b64

# 2. inject into client.js (byte-exact, no hand editing)
node scripts/embed-chime.mjs my-chime.b64 /path/to/this/repo/client.js

Then reinstall and restart.

Install

cd ~/.dsh/profiles/web
rm -rf node_modules/@deepseek-ai/dsh-attention        # drop any stale copy
pnpm add --force "file:/path/to/this/repo"

Add the composition row to ~/.dsh/profiles/web/cordis.patch.yml:

- insert:
    - id: attention
      name: '@deepseek-ai/dsh-attention'

Restart DSH web. Verify:

curl -s http://127.0.0.1:3080/attention/state   # -> {"ok":true,"pending":[],...}

The host half declares inject: ['webServer']; keep that if you fork, or the polling route silently skips at boot.

Agent tools

Registered for every session:

ToolPurpose
attn_ringring manually — use right after any "awaiting user approval" result; auto-expires (default 30 min), and since v1.1.0 also auto-clears the moment any cordis activation verdict (approve / reject / cancel / fail) lands
attn_clearhush courtesy rings once answered (e.g. one rung before ask_user_question); activation rings no longer need it
attn_debugcounters: waterfall vs durable-log sightings, cordis resolutions seen, active rings

No config keys.

License

MIT — see LICENSE. The bundled bell recording is subject to the Mixkit Sound Effects Free License.