Skip to content

Releases: ZYar-er/dsh-notify-bell

v0.12.0

Choose a tag to compare

@ZYar-er ZYar-er released this 16 Aug 06:55

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: backend plays on the host (BEL or WAV via soundPack); none keeps logs only.

Migration

  • Default playback changed to browser. Deployments upgrading from v0.11.x without an explicit playback now 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.json or 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.inject declares @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

Choose a tag to compare

@ZYar-er ZYar-er released this 16 Aug 04:13

Added

  • /notify-bell HTTP 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

Choose a tag to compare

@ZYar-er ZYar-er released this 16 Aug 04:02

Highlights

  • Strict final-answer completion: the complete notification now fires only when the last assistant/message carries a non-empty text block with no tool/call after 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)

  • completedone: user input → turn/start → agent work → final assistant text → turn/end (reason.kind = completed), main session only (delegationDepth ?? 0 === 0), minimum duration guard.
  • approval/askedpermission, ask_user_questionquestion, 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

Choose a tag to compare

@ZYar-er ZYar-er released this 16 Aug 01:55

dsh-notify-bell v0.11.0

Developer Preview release.

Highlights

  • Complete notifications now trigger when the final assistant turn finishes.
  • turn/end with reason.kind = completed is the authoritative completion signal.
  • Goal completion no longer produces a duplicate done notification.
  • Completion duration is measured from turn/start to turn/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-bell

Sound 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

Choose a tag to compare

@ZYar-er ZYar-er released this 16 Aug 00:35

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-bell

Published 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

Credits

Sound assets are derived from react-sounds.

Icons are from Phosphor Icons.