fuhefei/dsh-sentinel 预览 preview

fuhefei/dsh-sentinel

Plugin插件 Native原生 ⭐ 17 BSD-3-Clause Notifications & Remote通知与远程UI & Themes界面与主题

面向DeepSeek Harness的条件驱动唤醒:可靠的文件/命令/HTTP/进程/Webhook监视,可唤醒代理,并附带泊坞、侧边栏分支及全局仪表盘。

Project Overview项目介绍

dsh-sentinel is a native plugin built exclusively for DeepSeek Harness that enables condition-driven wakeup of dormant or closed DSH sessions. You install it easily via the official bundle channel with a single command: dsh plugin --profile web add dsh-sentinel, or you can pull it directly from the git repository by specifying a version tag. It supports six common sensor types out of the box: file changes, command output changes, HTTP endpoint changes, running process changes, port reachability changes, and incoming webhook events. It also comes with a built-in browser UI that adds a dock panel, a sidebar branch, and a global dashboard to view active watches.

After installation, you register a new watch using the built-in sentinel_watch tool, where you can set parameters like sensor kind, target, matching pattern, trigger interval, and maximum number of fires. The plugin runs a probe every 5 seconds by default, and all subscriptions are saved so they survive process restarts. If a condition triggers while the DSH process is offline, it will fire the first time the probe runs after the process restarts. It supports handoff of probing duties between multiple running DSH processes on the same $DSH_HOME, so you never lose track of your watches even if the original process exits unexpectedly.

dsh-sentinel is released under the permissive BSD 3-Clause open source license, and has no runtime dependencies on any @deepseek-ai/* packages. It can be installed manually by adding a configuration entry to your cordis.patch.yml if you prefer not to use the automatic command line install. The sidebar branch feature requires applying a bundled patch to your DSH source checkout and rebuilding the ui-workspace module, but core functionality works without this step. It optionally integrates with dsh-better-sidebar and dsh-notification to add extra UI and desktop notification features for a better experience. First-time users should verify the patch is applied correctly before starting DSH.

这是专为 DeepSeek Harness 开发的原生插件,提供基于条件触发的会话唤醒功能。用户注册监听后,即使 DSH 会话休眠甚至关闭,当指定条件满足时,sentinel 也会自动唤醒会话。它提供停靠面板、侧边栏分支和全局仪表盘,用于查看活跃监听、探测状态和触发历史,目前支持文件、命令、HTTP、进程、端口、Webhook 六种监听类型。

用户可以通过 sentinel_watch 工具注册自定义监听,设置触发间隔、匹配规则、最大触发次数、附加描述等参数。插件会每 5 秒进行一次心跳探测,监听内容在进程重启后依然保留,宕机期间满足条件的事件会在下次探测时触发。它支持同一 DSH 目录下多进程接管探测,适合需要监控资源变化、等待条件满足后自动执行任务的 DSH 用户使用。

本插件遵循 BSD 3-Clause 开源许可,无额外运行依赖,可通过官方包渠道一行命令安装,也可通过 git 安装或手动配置补丁安装。侧边栏分支功能需要对 DSH 源码应用补丁,还可可选集成 dsh-better-sidebar 和 dsh-notification 拓展功能,首次使用前需要确认补丁是否正确应用,避免功能异常。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 1 note1 项提示
  • 17 stars - an early-stage project星标 17,属于早期项目
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add dsh-sentinel

把 fuhefei/dsh-sentinel 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-sentinel

English | 中文

Condition-driven wakeup for DeepSeek Harness: the agent registers a watch, goes to sleep — even closes the session — and the sentinel wakes it when the condition happens. Every subscription and every fire is a user-visible session event, and the browser dock shows what is on duty.

Sentinel dock panel, expanded

How it works

The node half owns one server-lifetime runtime that folds a plugin-owned sidecar log ($DSH_HOME/sentinel.jsonl) into live subscriptions, probes every sensor on a shared 5s heartbeat, and delivers wakeups through the official followup channel — resuming a dormant session's agent first when needed. Subscriptions therefore survive process restarts, and conditions that become true while the server is down late-fire on the next probe.

Watching is a resident-process concern: probing and fire delivery only run while a long-running dsh process (typically dsh web) is up. Headless one-shot runs load the plugin and can create, list and cancel watches, but nothing probes after the process exits — those watches become active once a resident process starts.

One duty owner per $DSH_HOME: a lease file (sentinel.lease) makes the first process own probing and delivery; a second dsh process on the same home stays passive (tools work, writes persist to the shared sidecar) and takes over within one lease TTL of the owner dying. The owner re-reads the sidecar every heartbeat, so watches created on a passive instance are adopted automatically. Delivery is at-least-once: a fire logged but not delivered before a crash is requeued on the next boot from its delivered watermark.

The browser half is a dock card above the composer (the conversation.input.dock family) listing the session's active watches — sensor, target, live probe state, fire budget, next-probe countdown — plus recent fire history when expanded. It polls the read-only state route and renders nothing when the session has no watches.

Two surfaces make the server-global watch set visible. A Sentinel entry in the sidebar's global panel list (sidebar.panellist, id sentinel) opens the watch table in the central column (main, the same id) — its glyph carries a state dot while any watch is active. The dashboard is a standalone table of every watch across every session: session (active/dormant), sensor, target, pattern, fire budget, last probe state, next probe.

Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →

← 上一个 Prev pptwise 下一个 Next dsh-plugin-marketplace →