🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

完成提醒 P1gG0dG0d/dsh-done-alert

DeepSeek Harness
P1gG0dG0d6 天前有提交已提供中文文档扫描:含敏感能力

会话跑完响提示音,任务栏角标标未读与待办

29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add P1gG0dG0d/dsh-done-alert
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 6 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 30 处,展示前 18 条)
  • 写入本地文件
    lib/index.js:68
    mkdirSync(dir, { recursive: true });
  • 删除本地文件
    lib/index.js:71
    if (statSync(file).size > LOG_MAX_BYTES) rmSync(file, { force: true });
  • 读取本地文件
    lib/index.js:71
    if (statSync(file).size > LOG_MAX_BYTES) rmSync(file, { force: true });
  • 写入本地文件
    lib/index.js:75
    appendFileSync(file, `${new Date().toISOString()} [${process.pid}] ${message}\n`, "utf8");
  • 读取本地文件
    lib/index.js:143
    if (!existsSync(file)) {
  • 执行外部命令来自配置/变量
    lib/index.js:158
    const child = spawn(ps, ["-NoProfile", "-NonInteractive", "-Command", cmd], {
  • 写入本地文件
    lib/index.js:376
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    lib/index.js:378
    writeFileSync(tmp, JSON.stringify(snapshotState(), null, 2), "utf8");
  • 写入本地文件
    lib/index.js:379
    renameSync(tmp, STATE_FILE());
  • 读取本地文件
    lib/index.js:401
    await readFile(STOP_FLAG(), "utf8");
  • 写入本地文件
    lib/index.js:410
    await mkdir(deployDir(), { recursive: true });
  • 删除本地文件
    lib/index.js:419
    await rm(STOP_FLAG(), { force: true });
  • 读取本地文件
    lib/index.js:500
    if (!existsSync(src)) throw new Error(`asset missing: ${file} (resolved: ${src})`);
  • 读取本地文件
    lib/index.js:513
    if (!existsSync(src)) return;
  • 读取本地文件
    lib/index.js:515
    let stale = !existsSync(dst);
  • 执行外部命令来自配置/变量
    lib/index.js:599
    const child = spawn(
  • 删除本地文件
    lib/index.js:747
    await rm(flag, { force: true });
  • 发起网络请求
    lib/client.js:73
    const r = await fetch('/api/dsh-done-alert/' + action, init)
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-done-alert 任务完成提醒插件(基于 dthcle/dsh-badge-notify 二次开发,MIT——在它的任务栏徽标之上加了提示音,并把徽标配色改成绿/橙语义,与 DSH 侧边栏小圆点同义)。 两个能力,全部在 Windows 桌面上本地完成,不联网: - 提示音:任意会话一轮跑完(running → idle)时,电脑播放微信式「叮咚」提示音(done.wav);出现提问待回答或权限申请待批准时,播放更亮的提示音(attention.wav)。声音由宿主半端经 Media.SoundPlayer 播放,浏览器标签页没开也会响。 - 任务栏角标:在任务栏的 DSH 图标上叠画一个鼠标穿透的浮层: - 带数字的圆角小方块(图标右上角)=未读的已完成会话数。「未读」与 DSH 侧边栏的绿点同义:会话跑完时你正在看它,就不计数;打开该会话即视为已读,计数自动减掉(badge.unreadOnly: false 可改成全部计数)。 - 颜色语义与侧边栏小圆点一致:绿 #22c55e=有未读完成;橙 #f59e0b=有提问待回答/权限待批准。既有完成又有待处理时优先显示橙色(badge.colorByAttention,默认开)。 - 图标左边缘可另配提示点(橙点=提问,黄点=权限申请,dots.group: "kind" 每类一个)。
展开完整文档(README 剩余 1 节)
dsh-done-alert

任务完成提醒插件(基于 dthcle/dsh-badge-notify 二次开发,MIT——在它的任务栏徽标之上加了提示音,并把徽标配色改成绿/橙语义,与 DSH 侧边栏小圆点同义)。

两个能力,全部在 Windows 桌面上本地完成,不联网:

- 提示音:任意会话一轮跑完(running → idle)时,电脑播放微信式「叮咚」提示音(done.wav);出现提问待回答或权限申请待批准时,播放更亮的提示音(attention.wav)。声音由宿主半端经 Media.SoundPlayer 播放,浏览器标签页没开也会响。
- 任务栏角标:在任务栏的 DSH 图标上叠画一个鼠标穿透的浮层:
- 带数字的圆角小方块(图标右上角)=未读的已完成会话数。「未读」与 DSH 侧边栏的绿点同义:会话跑完时你正在看它,就不计数;打开该会话即视为已读,计数自动减掉(badge.unreadOnly: false 可改成全部计数)。
- 颜色语义与侧边栏小圆点一致:绿 #22c55e=有未读完成;橙 #f59e0b=有提问待回答/权限待批准。既有完成又有待处理时优先显示橙色(badge.colorByAttention,默认开)。
- 图标左边缘可另配提示点(橙点=提问,黄点=权限申请,dots.group: "kind" 每类一个)。

安装

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 | 角标绿/橙颜色(可改成 DSH 主题色) |
| badge.bg | #0d0d0d | colorByAttention: false 时的底色(原版黑底) |
| badge.unreadOnly | true | 只统计未读完成(与绿点同义) |
| dots.question / dots.approval | #f59e0b / #eab308 | 提示点颜色 |
| uia.stuckMs | 20000 | 后台 UIA 探针多久没有进展就判定为卡死并弃置(至少为刷新/重试间隔的 2 倍) |
| uia.maxStuck | 3 | 最多同时弃置几个卡死探针;到上限后冷却 60 秒再重试(徽标期间按最后已知位置继续绘制) |
| 其余锚点/尺寸键 | — | 与上游 dsh-badge-notify 相同,见其 README |

手动调参 / 管理 API

与上游一致,数据目录换成 %LOCALAPPDATA%\DshDoneAlert\:

- preview.json:{"enabled": true, "count": 8, "dots": ["question", "approval"]} 固定画面用于调位置。
- 管理(仅 loopback POST):/api/dsh-done-alert/status|start|stop|clear|read。

与上游的差异(fork changelog)

1. 新增提示音(宿主半端 Media.SoundPlayer,assets/.wav 随载荷部署,sound. 配置)。
2. 角标配色从固定黑底改为绿/橙状态色(badge.colorByAttention、badge.bgGreen/bgOrange),语义对齐 DSH 侧边栏小圆点,橙优先。
3. 提示点默认配色改为 橙(提问)/ 黄(权限)。
4. 包名、数据目录(DshDoneAlert)、管理路由(/api/dsh-done-alert/*)、互斥量与设置页文案相应改名;设置页标题「完成提醒」。
5. v1.1.0:兼容 dsh-study-ask 的 studyAsk 保留标签(视为已读信号)+ 未读完成 TTL 自动过期(badge.unreadTtlMs)+ /chime 试听路由与播放错误落盘(logs/chime.log)。
6. v1.2.0:修复 UIA 卡死——原先所有 UIA 调用(含「找不到任务栏按钮」时的搜索)都在 WinForms UI 线程上,任务栏 provider 一旦阻塞就会把整个浮层钉死(实测单次调用卡死 9.6 小时 / 5.3 小时,期间徽标不刷新、任务栏发涩)。现在全部 UIA 调用移入独立的 MTA 后台探针线程,UI 线程只读快照;探针超过 uia.stuckMs 无进展即弃置并换新,至多 uia.maxStuck 个,之后冷却 60 秒——UI 线程从此永不等待 UIA。-TestInstance 与 DSH_DONE_ALERT_UIA_STUCK_TEST=1 仅供测试。

与其他插件的兼容

- dsh-study-ask(学习提问):它的提问标签页用独立的 studyAsk 保留标签挂在右侧栏,行被 CSS 隐藏、不出现在左侧会话列表——因此永远走不通「打开会话=已读」的规则。v1.1.0 起,done-alert 把 retainedBy.studyAsk > 0 也视为「正在看」:提问标签页开着时问题跑完不计数不响铃;标签页关着时跑完照常响铃计数,之后打开对应提问标签即视为已读、计数清掉。
- 兜底 TTL:仍未读的完成超过 badge.unreadTtlMs(默认 24 小时,0=永不过期)会自动过期,任何「永远无法已读」的隐藏会话都不会再把角标卡死。

致谢与许可

上游 dsh-badge-notify(MIT, © 2026 dthcle)完成了最难的部分:UIA 任务栏定位、像素级图标测量、分层窗口叠画与未读语义镜像。本仓库沿用 MIT(见 LICENSE)。
预览分享卡片长什么样 ↓P1gG0dG0d/dsh-done-alert
分享 · DeepSeek Harness Hub
P1gG0dG0d/dsh-done-alert

会话跑完响提示音,任务栏角标标未读与待办

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部