Releases: ZYar-er/dsh-notify-bell
Releases · ZYar-er/dsh-notify-bell
Release list
v0.12.0
Highlights
- Web Playback Selector: the header bell now opens a compact notification settings popover — a Notifications On/Off switch plus a Playback radio group (Browser / Backend / None). Changes apply immediately and persist atomically to
~/.config/dsh/notify-bell.json(no restart); the backend config is the single source of truth. - Browser playback (default): the backend classifies events and pushes the semantic sound over SSE (
GET /notify-bell/events); the DSH Web UI plays the matching WAV (/notify-bell/sounds/*.wav, served from the package) via Web Audio. Autoplay unlock takes one user gesture. - Backend / None:
backendplays on the host (BEL or WAV viasoundPack);nonekeeps logs only.
Migration
- Default playback changed to
browser. Deployments upgrading from v0.11.x without an explicitplaybacknow play in the DSH Web browser instead of the host. Terminal-only setups: set"playback": "backend"(or"none"for logs only) in~/.config/dsh/notify-bell.jsonor via the popover.
API
GET /notify-bell→{ ok, value: { enabled, playback }, version }POST /notify-bell/setEnabled/POST /notify-bell/setPlayback(invalid 400, write failure 500 with runtime unchanged) /POST /notify-bell/toggle
Quality
- Locale dictionary registered inside
ctx.effect(HMR-safe); official DSH locale service for zh/en;dsh.client.injectdeclares@deepseek-ai/dsh-client-locale. - Browser sound map covers
default(→ done.wav); SSE heartbeat stops when idle, connection cap (8) with 503; client GET failure has a retry path via the popover. - Tests: 6 node:test cases (179 assertion checks in the unit script + 5 session-layer integration), all passing; 30 files packed.
v0.11.2
Added
-
/notify-bellHTTP API 的成功响应新增version字段(来自 package.json,PLUGIN_VERSION),可在运行时确认安装的插件版本:{ "ok": true, "value": { "enabled": true }, "version": "0.11.2" }
Verification
- Full test suite passes (incl. Y4/Y5 assertions that the API response carries the version).
- Session-layer integration tests pass (5/5).
- Published to npm as
dsh-notify-bell@0.11.2(latest).
v0.11.1
Highlights
- Strict final-answer completion: the complete notification now fires only when the last
assistant/messagecarries a non-emptytextblock with notool/callafter it. Tool-call-only, concludes-turn, and empty no-op turns stay fully silent. - Bounded dedupe state: notification dedupe uses FIFO-bounded containers per session and reclaims state on
session/disposed, preventing unbounded memory growth in long-running sessions. - Session-layer integration test against a real DSH
SessionStore(src/session-layer.test.js).
Notification semantics (v0.11.x)
complete→done: user input →turn/start→ agent work → final assistant text →turn/end(reason.kind = completed), main session only (delegationDepth ?? 0 === 0), minimum duration guard.approval/asked→permission,ask_user_question→question, goal block →block, agent errors →error— each with its own semantic sound (WAV pack or BEL fallback).
Verification
- 140+ tests pass, including strict final-answer gating, bounded dedupe (FIFO), session dispose reclamation, and abnormal
delegationDepth/turn-number rejection. - Published to npm as
dsh-notify-bell@0.11.1(latest).
v0.11.0 — Developer Preview
dsh-notify-bell v0.11.0
Developer Preview release.
Highlights
- Complete notifications now trigger when the final assistant turn finishes.
turn/endwithreason.kind = completedis the authoritative completion signal.- Goal completion no longer produces a duplicate done notification.
- Completion duration is measured from
turn/starttoturn/end. - Sub-agent turns are excluded using
delegationDepth. - User request summaries are shown in completion logs.
- Approval, question, block and error notifications retain their existing semantics.
Notification semantics
- ✓ Complete → final assistant answer completed
- 🔐 Approval → tool approval requested
- ❓ Question → agent waiting for an answer
- ⚠ Blocked → goal blocked
- ✗ Error → agent-level error
Install
dsh plugin --profile web add dsh-notify-bellSound Preview
https://zyar-er.github.io/dsh-notify-bell/sound-showcase/
Verification
- 115/115 automated tests passing
- Real DSH Web short-turn verification
- Real long-turn verification
- Real approval + completion verification
- Question verification
- Sub-agent filtering verification
DSH remains in Developer Preview, so upstream plugin/event APIs may change.
v0.10.0 — Developer Preview
dsh-notify-bell v0.10.0
Community plugin for DeepSeek Harness (DSH).
Developer Preview release.
dsh-notify-bell provides semantic audio notifications for important agent attention events:
- ✓ Complete — task finished
- 🔐 Approval — a tool operation needs user approval
- ❓ Question — the agent is waiting for an answer
- ⚠ Blocked — the goal cannot continue
- ✗ Error — an agent-level error occurred
Install
Install from npm:
dsh plugin --profile web add dsh-notify-bellPublished package:
npm: dsh-notify-bell@0.10.0
Sound Preview
🎧 Listen to the notification sounds
Highlights
- Semantic notification sounds
- WAV sound pack
- Windows / WSL audio playback
- Native Linux audio playback
- Automatic BEL fallback
- Runtime mute/unmute from the DSH Web UI
- Light/dark theme support
- Phosphor
bell/bell-slash - Configurable notification behavior
- Zero third-party runtime dependencies
Verification
- 85/85 automated tests passing
- Real DSH Web verification
- Real approval notification verification
- Real question notification verification
- Real WSL → Windows WAV playback verification
- npm tarball installation independently verified
Compatibility
DSH is still in Developer Preview, so upstream plugin APIs may change.
This release is intended for community testing and feedback.
Links
- Repository: https://github.com/ZYar-er/dsh-notify-bell
- Sound Preview: https://zyar-er.github.io/dsh-notify-bell/sound-showcase/
- npm: https://www.npmjs.com/package/dsh-notify-bell
Credits
Sound assets are derived from react-sounds.
Icons are from Phosphor Icons.