dsh-done-badge
DeepSeek Harness (DSH) task completion badge: native Windows taskbar counter (ITaskbarList3) while the window is away, auto-clears on return. Subagent sessions excluded.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 24, 2026
- Updated
- Aug 24, 2026
Introduction
dsh-done-badge
DSH 任务完成角标插件(ChatGPT/Codex 风格):窗口最小化/离开期间,每完成一个顶层任务(一轮对话/任务完成),Windows 任务栏 DSH 图标右下角显示红色数字角标(1、2、3…实时累积);切回主界面后角标短暂保留 2 秒即消失清零。窗口内右上角 DOM 角标作为兜底(浏览器版/macOS 可用)。

平台:Windows(任务栏角标走 Windows 原生 ITaskbarList3::SetOverlayIcon);macOS 暂不支持原生角标,仅窗口内 DOM 角标。
特性
- 离开期间任务完成 → 任务栏角标持续显示,数量实时累积;
- 子代理会话不计入:一个任务启动多个子代理只 +1;
- 切回主界面 → 角标保留 2 秒让人看清,然后消失,不再冒出;
- 串行更新队列:角标不会因 PowerShell 完成乱序而留下旧值;
- 零依赖:只使用系统自带 PowerShell,无需安装任何运行时。
install
# 本地源码安装(推荐开发用):
dsh plugin --profile web add link:<无空格路径>/dsh-done-badge
# 或 npm 发布后:
dsh plugin --profile web add dsh-done-badge
重启 dsh web / 桌面应用后生效。
usage
- 发消息 → 最小化/切走 DSH;
- 后台每完成一个任务,任务栏 DSH 图标出现红色数字角标(完成几个显示几,持续显示);
- 切回主界面 → 角标保留约 2 秒后消失、计数清零。
how it works
- 服务端:监听
session/event的turn/end,只统计顶层会话(header.parentSession存在即子代理,跳过);离开期间每完成一轮,经串行队列调用assets/badge.ps1(PowerShell,零依赖)通过ITaskbarList3::SetOverlayIcon更新任务栏角标; - 客户端:
blur/hidden→ 进入角标模式(服务端状态迁移,重复事件不重复清零);focus/visible→ 2 秒后清除 + 清零; - 窗口定位:按窗口标题
Deepseek Harness Desktop枚举定位主窗口(最小化时MainWindowHandle会误选内部窗口,不能依赖); - 兜底:窗口内右上角 DOM 红色数字角标(1.2s 轮询),浏览器版 / macOS 同样可用。
诊断
任务栏角标未出现时,查看:
%TEMP%\dsh-done-badge-helper.log # 助手调用记录(含成功/失败/窗口句柄)
%TEMP%\dsh-done-badge-events.log # 事件链日志(away/epoch/sid/isSub/count*,自动轮转 1MB)
files
lib/index.js # 服务端(事件监听 + 路由)+ 客户端(角标 UI)
assets/badge.ps1 # Windows 任务栏角标助手(ITaskbarList3)
cordis.patch.yml # bundle 挂载声明