dsh-turn-badge:DSH 回合结束时的系统级提醒

前言

DeepSeek Harness(DSH)里常跑长任务。切到别的窗口后,任务结束往往只反映在侧边栏里一个小圆点,操作系统侧没有通知、任务栏或 Dock 角标,也不容易从标题上看出来——只能想起来再回应用里查。

dsh-turn-badge 是社区维护的客户端插件,把「一轮从 running 到 idle」处理成类似 Codex 的体验:原生通知、应用图标角标、窗口标题前的 ● 标记;回到窗口时一并清除。下面介绍它做什么、怎么装、怎么配。

这是什么

  • 名称:dsh-turn-badge(npm 包名与插件 id 相同)
  • 维护者:Drifter-yh
  • 分类:客户端(web / desktop profile)
  • 许可证:MIT
  • 归属说明:社区插件,与 DeepSeek AI 无官方从属关系;目录见 SkillHub,源码见 GitHub。

一轮结束的定义:uiSession.sessionStatus 里该会话从 running 变为 idle。插件不读消息正文或工具输出,只依赖客户端已有的会话状态与会话标题。

核心功能

  1. 原生通知 — 标题形如 Task finished — “Weekly report”(含会话标题)。在 workspace 服务可用时,点击可聚焦应用并打开对应会话。
  2. 应用图标角标 — 通过 Badging API(setAppBadge)显示未读会话数;在支持的 Chromium 载体上还有标签页角标(setClientBadge)。
  3. 标题圆点 — 在 document.title 前加 ●,作为各处都有的可见兜底。
  4. 聚焦即清 — 回到 Harness 窗口时清除角标、标题标记和相关 toast。

行为细节(资料原文):

  • 若你正在看的就是刚结束的那条会话,默认保持安静。
  • 默认忽略 subagent 会话(skipSubagents: true)。
  • 角标按不同会话计数,不是按 turn 次数。
  • 无遥测、无额外 HTTP;host 半边 intentionally 为空,只为在 Loader 中激活客户端 bundle。

安装与启用

npm 发布版本为 dsh-turn-badge@0.1.0;也可从 GitHub 安装相同源码。

# 从 npm
dsh plugin --profile <your-profile> add dsh-turn-badge

# 从 GitHub(源码一致)
dsh plugin --profile <your-profile> add github:Drifter-yh/dsh-turn-badge

部分构建在 Settings → Plugins 里也有插件注册表入口。

安装后重启 Harness 一次:host 在启动时读取 profile。

首次点击或按键会请求通知权限。macOS 上还需在 系统设置 → 通知 中允许 DeepSeek Harness。

兼容性(package.json / README):Harness >=0.2.2-rc.1 <0.2.3-0,已在 0.2.2-rc.1 desktop profile 验证;需要标准 Web 应用里的 uiSession 与 sessions 客户端服务。

配置

设置存在 localStorage,可在 DevTools 控制台修改后刷新页面:

localStorage.setItem('dsh-turn-badge.settings', JSON.stringify({
  enabled: true,                       // 总开关
  toast: true,                         // 系统通知
  badge: true,                         // 图标 / 标签角标
  titleDot: true,                      // 标题 "● " 兜底
  notifyWhenFocusedOtherSession: true, // 聚焦在别的会话时仍提醒
  skipSubagents: true                  // 忽略 subagent 回合
}))

恢复默认:localStorage.removeItem('dsh-turn-badge.settings')。

调试辅助:

__dshTurnBadge.preview()  // 触发一次示例通知 + 角标
__dshTurnBadge.clear()    // 清除角标、标记和 toast

平台与局限

能力基于标准 Web API,无 Windows / macOS 专用分支:

能力 Windows macOS
原生通知 通知中心 通知中心
应用图标角标 Badging API(PWA / 支持该 API 的 Chromium) Badging API(支持该 API 的 Chromium / Safari 载体)
标签角标 Chromium setClientBadge Chromium setClientBadge
标题圆点 各载体 各载体

README 写明:DSH 桌面端任务栏 / Dock 角标取决于 Electron 对 Badging API 的支持;页面插件无法直接调 Electron 主进程。角标不可用时,通知与标题圆点仍可用;已安装的 PWA 上角标表现通常最好。

其他限制:

  • 页面需保持活跃;浏览器标签被系统冻结可能延迟提醒。
  • running → idle 一律视为「完成」,失败与成功外观相同。
  • 标题被壳或其它插件改写时,圆点可能在导航瞬间闪一下。

排错可参考 README 表:无通知查权限与勿扰;无红点用 PWA 或依赖标题圆点;全无则重启并看控制台 [dsh-turn-badge]。

适用场景与注意

适合长期在 DSH 里跑 Agent、经常切窗口、希望用系统通知和角标收工提醒的开发者。插件在当前 DSH 客户端进程里运行,只读会话状态与标题;安装前可按习惯查看 SECURITY.md 与 MIT 许可证。

DSH 生态主张「一切皆插件」;SkillHub 等社区目录独立于 DeepSeek / 幻方,不是官方应用商店。

结尾

dsh-turn-badge 用客户端订阅 sessionStatus 的 running → idle,把回合结束推到 OS 通知、Badging 与标题标记,并在重新聚焦时清理,长任务时少漏一眼侧边栏。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye