DeepSHPlugins
dsh-notification 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-notification

工具與整合JavaScriptMIT

回合完成桌面通知,按結果分控 + 關鍵詞過濾。

82 Starsomdsh-dev 更新時間 2026-09-01
訪問 GitHub 倉庫
dsh-notification 專案預覽

專案介紹

中文

回合完成桌面通知,按結果分控 + 關鍵詞過濾。

English

Desktop notifications for turn completions, with per-outcome controls and keyword rules.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
omdsh-dev
倉庫
omdsh-dev/dsh-notification
GitHub Stars
82
Forks
10
開發語言
JavaScript
許可證
MIT
最近推送
2026-09-01
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

86/ 100
維護活躍
94
文件與實用資訊
85
生態關注度
65
安裝便捷訊號
100
專案宣告訊號
100

近 10 天仍在更新;README 含完整安裝與使用說明;標準命令一鍵安裝。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

dsh plugin add github:omdsh-dev/dsh-notification

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

dsh-notification

Desktop notifications for the DeepSeek Harness web GUI. When a session finishes a turn, the browser shows a system notification (via the Notification API), so you can switch tabs and still know when DSH is done. Per-outcome toggles and include/exclude keyword rules control exactly which completions notify.

No harness change is needed: the host contributes a session projection (a bounded summary of each session's last completed turn), and the client watches the session list's completion reminder and applies its own persisted preferences.

host:  notification projection (last turn's reason/text/tools) --session/projection--> browser
client: session list completion reminder (live, dedup) + persisted settings
        -> permission + current-session visibility gate
        -> new Notification("DSH finished", { body: "deploy done" })

Install

dsh plugin --profile web add https://github.com/omdsh-dev/dsh-notification/archive/refs/tags/v0.1.4.tar.gz

Restart the web server so the host half and the served client bundle pick up the plugin. The default dsh web profile has the required client composition (the session list, the settings shell, and locale).

Version 0.1.4 supports both the 0.1.1 and 0.1.2 Harness client package layouts and projection contracts.

The settings section lives under Settings > Notifications.

Settings

SettingDefaultEffect
Enable notificationsonMaster switch; off stops every notification while keeping rules.
Notify on completed / error / aborted / blocked / token limitcompleted + error on, rest offWhich turn-end reasons notify (the host projection reports the reason).
Keyword rulesnoneInclude/exclude filters matched against the session title, the turn's reply text, and its tool names. Include rules: at least one must match. Exclude rules: a match suppresses. Rules support literal or regex matching with an optional case-sensitive flag.
Require manual dismissoffThe notification stays until dismissed.
Only notify when the task is out of viewonSuppress a notification only when its session is currently in view. A completion still notifies while the page is hidden or while another session/workspace is open. Turn it off to notify even for the session being watched. Notifications for the same session replace each other.

Preferences persist in the browser (localStorage). The section also grants browser permission and sends a test notification.

Configuration

Host-side tunables live on the plugin row in cordis.yml:

- id: dsh-notification
  name: dsh-notification
  config:
    maxBodyChars: 400      # projection body budget; longer replies are ellipsized host-side

Model experience

AspectEffect
Token costNone — notifications are UI-only and never enter a request.
Tool callsNone — the model gets no new tool.
Session logUnchanged — the projection reads the existing log and adds no events.
PromptUnchanged — no system-prompt section is registered.

Permission boundary

  • The host folds a pure projection over the session log (turn reason, bounded reply text, tool names) and the projection seam delivers it to the browser; the plugin writes nothing to the log and registers no model-facing tools.
  • The client watches the session list's completion reminder (a live "finished while not selected" edge the runtime already computes) and shows a notification only when the user has granted Notification permission.
  • Rule matching runs client-side against the projected content; the reply body never exceeds maxBodyChars.

Development

pnpm install            # links the sibling dsh checkout for build and tests
pnpm run check          # typecheck + tests + build
pnpm run test           # vitest (host projection + composition, client decision/runner/helpers/section)
pnpm run build          # esbuild host/client/invariant bundles + tsc declarations

The repo expects the harness checkout at ../dsh for the dev-time link: resolutions. The composition spec boots the real SessionStore and SessionProjectionRegistry and proves the fold.

Known limitations

  • Notifications require the page to be open (the browser shows them while it is hidden, but not after the tab is closed) and Notification permission granted; a denied site permission cannot be overridden from inside the page.
  • Notifications fire once per finished turn (a running→idle edge on any session); a completion that happened while the page was disconnected is not re-notified on reconnect.
  • The rule subject is the session title plus the last turn's reply text and tool names — earlier turns are not matched.
  • Notification body is a flat text snippet; the click action only focuses the window (no deep link to the turn).

License

MIT

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案