前言¶
在 DSH 里跑长任务时,浏览器标签页未必一直在前台;会话从 running 变为 idle 后,若只靠侧边栏绿点,很容易漏看。社区里已有基于 UIA 在任务栏 DSH 图标上叠角标的方案(如 dsh-badge-notify),但缺少声音、角标配色也与侧边栏语义不完全一致。下面介绍 dsh-done-alert:在 Windows 桌面上本地完成「提示音 + 任务栏角标」,不联网,语义与 DSH 侧边栏小圆点对齐。
这是什么¶
dsh-done-alert 是 DeepSeek Harness 的桌面侧插件,维护者为 P1gG0dG0d,仓库 P1gG0dG0d/dsh-done-alert。它在 dthcle/dsh-badge-notify(MIT)基础上二次开发:保留任务栏徽标与未读计数逻辑,增加微信式提示音,并把角标/提示点配色改成与 DSH 侧边栏一致的绿/橙语义。当前 package 版本为 1.2.1,仅支持 Windows(os: win32)。
核心功能¶
两个能力均在 Windows 桌面本地完成,不依赖浏览器标签页是否打开。
提示音¶
宿主半端经 Media.SoundPlayer 播放 WAV,标签页未开也会响。
- 任意会话一轮跑完(running → idle)时播放
done.wav(微信式「叮咚」)。 - 出现提问待回答或权限申请待批准时播放更亮的
attention.wav。 - 同类提示音有最小间隔(默认
sound.minGapMs: 1500),避免连续完成时连响。
任务栏角标¶
在任务栏 DSH 图标上叠画鼠标穿透浮层:
- 带数字的圆角小方块(图标右上角):表示未读的已完成会话数。「未读」与侧边栏绿点同义——跑完时你正在看该会话则不计数;打开会话即已读、计数减掉。可通过
badge.unreadOnly: false改为统计全部完成。 - 颜色:绿
#22c55e表示有未读完成;橙#f59e0b表示有提问/权限待处理。两者同时存在时默认优先橙色(badge.colorByAttention,默认开)。 - 左边缘提示点(可选):橙点=提问,黄点=权限申请(
dots.group: "kind"时每类一个)。
v1.1.0 起支持 badge.unreadTtlMs(默认 24 小时)对仍未读的完成自动过期,避免隐藏会话把角标卡死;并提供 /chime 试听与 logs/chime.log 播放错误记录。v1.2.0 将 UIA 调用移入独立 MTA 探针线程,避免任务栏 provider 阻塞拖死整个浮层。
安装与启用¶
在插件源码所在目录的绝对路径下,用 desktop profile 安装(命令来自官方 README,勿自行拼接 GitHub 短名):
dsh plugin --profile desktop add <本目录的绝对路径>
装完一般无需重启 DSH:宿主半端会把浮层载荷部署到 %LOCALAPPDATA%\DshDoneAlert\ 并拉起,数秒内任务栏 DSH 图标上可见徽标;首个相关事件触发提示音。设置 → 插件 → 完成提醒 中可查看状态、启停与清零。
配置¶
编辑 %LOCALAPPDATA%\DshDoneAlert\config.json,改完约 2 秒自动生效。常用键如下:
| 键 | 默认 | 说明 |
|---|---|---|
sound.enabled |
true |
提示音总开关 |
sound.onCompletion |
true |
完成时 done.wav |
sound.onAttention |
true |
提问/权限时 attention.wav |
sound.minGapMs |
1500 |
同类提示音最小间隔 |
badge.colorByAttention |
true |
有待处理时角标变橙 |
badge.bgGreen / badge.bgOrange |
#22c55e / #f59e0b |
角标绿/橙 |
badge.unreadOnly |
true |
只统计未读完成 |
badge.unreadTtlMs |
(v1.1.0,默认 24h) | 未读完成 TTL,0 为永不过期 |
dots.question / dots.approval |
#f59e0b / #eab308 |
提示点颜色 |
uia.stuckMs |
20000 |
UIA 探针无进展判定卡死 |
uia.maxStuck |
3 |
同时弃置卡死探针上限 |
锚点、尺寸等其余键与上游 dsh-badge-notify 相同,见其 README。
调参与管理¶
数据目录为 %LOCALAPPDATA%\DshDoneAlert\:
- 预览角标位置:写入
preview.json,例如{"enabled": true, "count": 8, "dots": ["question", "approval"]}固定画面调位置。 - Loopback API(仅本机 POST):
/api/dsh-done-alert/status|start|stop|clear|read;v1.1.0 另有/chime试听。
与其他插件的兼容¶
dsh-study-ask(学习提问):提问标签用 studyAsk 保留标签挂在右侧栏,行在左侧列表被隐藏,无法靠「打开左侧会话」标记已读。v1.1.0 起,提问标签页开着时(retainedBy.studyAsk > 0)视为正在看,完成不计数不响铃;关标签后照常提醒,再打开对应提问标签即已读并清计数。
适用场景与注意¶
适合在 Windows 上长时间挂 DSH、希望任务结束或待审批时有声音且任务栏一眼可见的开发者。插件以当前 DSH 进程权限运行,安装前请自行查看源码与 MIT LICENSE。非 Windows 平台不在支持范围内。
DSH 生态强调「一切皆插件」;社区目录 SkillHub 上的 dsh-done-alert 页 为独立站点收录,与 DeepSeek / 幻方无官方从属关系。
结尾¶
经过上面的步骤,你可以在 Windows 任务栏上获得与侧边栏语义一致的绿/橙角标,并在完成或需要关注时听到本地提示音。详情与 issue 见 GitHub:https://github.com/P1gG0dG0d/dsh-done-alert;目录页:https://www.skillhub.cn/plugins/P1gG0dG0d/dsh-done-alert。