Repository navigation
Releases
Releases · haotian-lu-prog/dsh-notifications
dsh-notifications v2.0.1
A fix for the completion-banner storm.
- Finished turns no longer repeat. The completion rising edge compared the wrapper the runner stores (
{ unread }) againsttrue, which is always true, sofreshdegenerated to "still unread": every later status publish re-fired the banner for that session. DSH clearscompletionUnreadonly when a session runs again or becomes the session in view, so a subagent session nobody opens stayed unread forever — one fan-out of two read-only investigators buried the screen in banners titled with the children's own prompts, while the background-only gate stayed quiet because it only mutes the session in view. - Delegated children stay silent on completion. Rows with
origin: 'subagent'no longer raise the finished-turn banner: the parent's turn ending is the one that matters. Only that marker is trusted — a fork carries a parent too, but a fork is your own session and keeps notifying. - Approvals, questions and plan reviews still fire for child sessions: a subagent that needs your decision is exactly what this plugin is for.
- Verified: 28/28 tests, including two new regressions that both fail on the previous code; driving the running 2.0.0 bundle through 12 unrelated status publishes produced 26 notifications, this build produces 2.
dsh-notifications v2.0.0
Alerts that actually reach you.
- Approval alerts: when a tool asks for privileged execution or the sandbox needs a decision, a system notification fires and the menu bar item plays a sound, turns red and flashes until the event is handled. The previous version only painted a letter into the item, which is invisible when you are away — exactly when an approval waits.
- Also notified: questions, plan reviews, finished turns, failed turns — each on its own switch.
- Keyword rules (include / exclude / regex / case), a background-only gate, notification permission and a test button in Settings → Notifications.
- The browser half reads
uiSession.sessionStatus.pendingInteraction, the service DSH 0.2.0-rc.1 actually populates; the reference plugin it learned from reads a name that no longer exists. - Architecture: host modules under
lib/host, shared pure logic underlib/shared, client sources underlib/clientbundled into the committedclient.jsby a dependency-freescripts/build-client.mjs. Native helper protocol is now 2 (alert/attention). - Verified: 26/26 tests, and an isolated DSH 0.2.0-rc.1 boot where the bundle registers as
dsh-notificationsand is served 200.
dsh-notifications v1.0.0
Community fork of dsh-notify 0.4.0, renamed to dsh-notifications and made compatible with DSH 0.2.0-rc.1 as well as 0.1.7-rc.2.
- Package name, profile entry id, client module id and native helper name are all
dsh-notifications(the client module id matches the package name, which is what Harness keys its client module table by). - Every
@deepseek-ai/dsh-*peer is^0.1.7-rc.2 || ^0.2.0-rc.1, so both runtimes install directly with no exact-version exemption. Between those two releases the only change in the packages this plugin touches is one type-only re-export indsh-api-remotes. - Verified end-to-end on DSH 0.2.0-rc.1: installs without
allowBuilds, boots clean, the host half spawns the native helper, and the client bundle registers asdsh-notifications. Evidence indocs/evidence/. - Upstream copyright is preserved in
LICENSEandNOTICE.
Install: dsh plugin --profile <profile> add dsh-notifications (also on npm).