Chuyển đến nội dung chính

dsh-plugin-completion-notify

Đã xác minh

dsh-plugin-completion-notify · v0.6.2 · MIT · Giao diện web

Desktop notifications for dsh web: when a session finishes, or a popup is waiting for your approval, plan review, or answer, while you are not looking at it

Cài đặt

dsh plugin add dsh-plugin-completion-notify

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.

Thẻ

Tác giả

Readme

dsh-plugin-completion-notify

任务完成、或弹窗等待用户确认时弹出系统桌面通知的 dsh web 插件(dsh-plugin 社区插件)。

功能

  • 非当前会话完成 → 弹出系统通知(无论页面在前台还是后台)
  • 当前会话在后台完成(用户切走/最小化,document.hidden)→ 弹出系统通知
  • 当前会话在前台完成 → 不打扰(你看得到)
  • 弹窗等待用户处理时也通知,规则与完成时一致:
    • 审批(工具/权限等执行确认)、计划审阅(计划批准)、提问(等待回答)都会触发;正文按类型区分(「等待审批 / 计划待审 / 等待回答」)
    • 信号来自会话 UI 层的 ui-session pending-interactions feed(会话弹窗注册的会话级等待);非当前会话出现等待弹窗 → 弹出系统通知(无论页面前后台)
    • 当前会话的弹窗在页面后台打开 → 弹出系统通知;前台打开则不打扰(弹窗已在你眼前)
    • 同一等待只通知一次;等待被应答/会话移除后再次等待可再通知
  • General 设置页提供启用开关(默认开启,一个开关同时管完成与等待确认通知)
  • 权限在用户首次交互或开启开关时请求(浏览器要求手势)
  • 通知显示时长由系统设置控制(设置行内已写明入口),插件不做强制常驻,见已知限制

依赖

peer 依赖(npm 已发布):

  • @deepseek-ai/cordis
  • @deepseek-ai/dsh-client-locale
  • @deepseek-ai/dsh-client-runtime
  • @deepseek-ai/dsh-client-ui-settings
  • @deepseek-ai/dsh-client-ui-slots
  • @deepseek-ai/dsh-settings(host 半注册 settings 命名空间)
  • @deepseek-ai/schemastery(host 半 settings schema)
  • react

构建

pnpm install
pnpm run build

产物:lib/index.js(host 半,注册 ui-completion-notify settings 命名空间)、lib/client.js(浏览器半)。

安装

插件是 dsh.bundle 形态(声明配置层),一条命令即可安装进 profile:

dsh plugin --profile web add dsh-plugin-completion-notify

dsh plugin add 自动把包加入 dsh.profile.bundles 配置层并安装依赖。完成后重启 profile 生效:

dsh web   # 或 dsh --profile <name>

手动挂载(不通过 dsh plugin add)时在 profile 的 cordis.patch.yml 加:

- insert:
    - id: completion-notify
      name: dsh-plugin-completion-notify

发布

npm publish

GitHub 仓库添加 dsh-plugin 话题。

已知限制

  • 浏览器通知权限必须授予:首次交互时请求;被拒则静默
  • 通知显示的时长由系统控制,插件不强制常驻:Notifications API 没有时长参数。Windows 默认仅约 5 秒,可在「设置 → 辅助功能 → 视觉效果 → 在以下时间后关闭通知」调长(等价注册表值 HKCU\Control Panel\Accessibility\MessageDuration,本机实测为 5);macOS 在「系统设置 → 通知 → 浏览器」把提醒样式设为「提醒」即可保持到手动处理。系统的"勿扰/专注助手"也可能抑制横幅
  • 页面关闭后无通知(无 service worker push);页面级通知在页面关闭/刷新后即消失,无法跨页面常驻
  • 去重是页面生命周期内的内存态:刷新后,仍处于「已完成」或「等待确认」状态的会话可能补弹一次
  • 断线重连可能补弹一次:等待 feed 在重连/会话卸载时清空并由会话重建,无法区分「新等待」与「仍在等待的重现」
  • 等待通知在出现时判定一次:当前会话的弹窗若在前台出现(未通知),之后切到后台不会补发——与完成通知的规则一致
  • 等待信号依赖 ui-session pending 交互 feed(当前 dsh web 架构):运行时没有该 feed 的版本会自动退化为只保留完成通知