前言¶
用 DeepSeek Harness(DSH)跑多会话时,模型回复往往要几十秒甚至更久。窗口切到别的标签或别的应用后,很难凭肉眼判断「哪条会话已经跑完」或「哪条在等你审批、审计划、回答问题」。反复切回 DSH 看状态,会打断手头工作;完全不管,又容易漏掉需要人工介入的节点。
下面介绍社区插件 dsh-session-attention(维护者 renjianbuchai):在浏览器 Web profile 里,当你不在 DSH 窗口时,用系统通知、标签标题红点和 PWA 任务栏徽标三种方式提醒你;回到窗口后自动清除。它是纯客户端插件,不修改 DSH 核心文件,行为源自 DSH 0.1.x 内置的完成提醒逻辑,在 0.2.x 上通过公开平台 API 重建为可安装插件。
这是什么¶
dsh-session-attention 是面向 DeepSeek Harness 的后台提醒插件,分类为客户端插件。当前 package 版本为 0.1.0,许可证 MIT。
插件只做一件事:在合适时机提醒你「该看 DSH 了」,且仅在你已经不在窗口前时触发(document.hidden || !document.hasFocus()),避免你正盯着界面时被打扰。
核心功能¶
会话需要你注意时,三处信号会同时生效(各 API 在浏览器不支持时会单独 no-op,其余仍可用):
| 信号 | 说明 |
|---|---|
| 系统通知 | 桌面通知;标题带 DSH · 前缀(如 DSH · 回复已完成 / 英文 DSH · Reply finished),正文写出会话名,图标用页面声明的图标 |
| 标签标题红点 | 在浏览器标签 document.title 前加 ● 前缀;由 MutationObserver 维护,不接管 shell 对标题的改写 |
| PWA 任务栏徽标 | 调用 navigator.setAppBadge(n),适用于已安装的 PWA(Chromium 系) |
只在两个时刻触发(且窗口在后台):
- 回复完成:某会话的
running从true变为false。 - 会话在等你:某会话出现
pendingInteraction,类型为approval(审批)、plan-review(计划审阅)或question(提问)。
回到窗口时,上述三处信号会立刻清除。子代理(subagent)会话按设计跳过,不由你直接回应。
实现上,客户端订阅宿主公开 observable:uiSession.sessionStatus 与 sessions.list,据此推导上述边沿;宿主侧 lib/index.js 仅声明插件,不写文件、不开 socket。通知按会话用稳定 tag(done:<id> / pending:<id>)去重,重复事件会 renotify 重新提醒。
安装与启用¶
在已配置 DSH web profile 的环境中执行(命令同时写入依赖并在 profile 中启用插件,无需额外开关):
pnpm dsh plugin --profile web add github:renjianbuchai/dsh-session-attention
dsh plugin 是对 pnpm 的薄封装,也可使用本地目录 <dir>、github:<用户>/<仓库> 等 pnpm 写法。插件进入 awesome-dsh-plugin 目录后,也可在 DSH 插件市场一键安装(社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系)。
常见卡点:
- 若 pnpm 报
ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION,可在同一条命令后加--config.minimumReleaseAge=0(pnpm 发布冷却策略,与插件本身无关)。 - 浏览器弹出通知权限时请允许。未授权时标签红点和 PWA 徽标仍可用,桌面通知不会工作;插件不会在无用户手势的后台事件里再弹权限框(浏览器会忽略)。
环境要求¶
- DSH:
>= 0.2.1-alpha.1 < 0.3.0-0(README 注明在0.2.1-alpha.1上开发验证) - Node:
>= 22.19.0(与 DSH 对 Node 的要求一致) - 使用浏览器 web profile;桌面通知依赖
NotificationAPI;任务栏徽标依赖navigator.setAppBadge(已安装 PWA、Chromium 系)
调试与自测¶
插件加载后,浏览器控制台可访问:
__DSH_ATTENTION__.permission // 当前 Notification 权限
__DSH_ATTENTION__.log // 近期决策:notified / skipped / failed 及原因
__DSH_ATTENTION__.test() // 走插件同一路径发一条测试通知
若真实会话从未弹 toast,但 test() 能弹,多半是插件未触发;若 log 显示 notified 仍无 toast,需查 OS 专注助手、勿扰或 per-app 通知开关(Windows Focus Assist 等)。
适用场景与注意¶
适合:长时间用 DSH Web 跑任务、经常切标签或切应用、希望「后台跑完或等人操作时」有明确提醒的开发者。
注意:
- 插件以当前 DSH 进程及浏览器上下文运行;安装前请自行查看 源码 与 MIT 许可证,确认符合你的安全与合规要求。
- 桌面 toast 由浏览器与 OS 绘制;无
Notification或通知被系统屏蔽时,只能依赖标题红点与 PWA 徽标。 - 行为从 DSH 0.1.x 内置
completion-attention移植而来,在 0.2.x 不 patch renderer 的前提下保持同类体验。