dsh-dafeiyu-notice:DSH Web 任务完成与待办提醒(大肥鱼队列)

前言

在 DSH Web 里同时开多个会话时,任务跑完、模型在等你回答或等你点确认,往往只能靠扫列表或偶尔弹一下的 toast。toast 会自动消失,多个会话叠在一起时也分不清该先处理哪一个。下面介绍社区插件 dsh-dafeiyu-notice(npm 包名 @local/dsh-plugin-task-notify):用右下角「大肥鱼」把完成、等待回答、等待确认放进同一条 FIFO 队列,点一次切回一个会话,并可选钉钉风格提示音与点击回应动画。

这是什么

维护者 Trisia,仓库 Trisia/dsh-dafeiyu-notice,简介为「大肥鱼你做完了就叫我」。插件面向 DSH Web,在客户端注入会话 UI,监听会话从运行中变为空闲、以及新的问答/审批请求,用统一队列做视觉与声音提醒。代码采用 MIT 许可(Copyright (c) 2026 Quan Guanyu);社区目录页见 skillhub.cn/plugins/Trisia/dsh-dafeiyu-notice。DSH 生态是「一切皆插件」;SkillHub 等为独立社区站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

任务完成提醒

任意 DSH 会话从「运行中」变为「空闲」,且不是空白会话、也没有待回答/待确认请求时,右下角出现大肥鱼:待机动画循环,气泡显示「任务完成啦!」和会话标题。多个会话先后完成时排成 FIFO 队列,界面上只出现一只大肥鱼,气泡可显示「还有 N 个」。同一会话重复触发只更新队列条目,不重复占位。用户主动停止生成(点击「停止生成」或连按两次 Esc)不会触发完成提醒。

等待回答 / 等待确认

新的问答或审批请求与任务完成共用同一条大肥鱼队列,不是会自动消失的 toast。队首标题为「等你回答」或「等你确认」,气泡里可显示「还有 N 个」。用户点一次打开一个会话;问答和审批按发生顺序排队,不会被后来的任务完成插队。

点击切换与回应动画

点击大肥鱼(或聚焦后按 Enter / 空格)会:打开队首会话并从队列移除;播放一段随机「点击回应」动画(共 9 段,随机且避免与上一次连续重复);队列未空时动画结束后回到待机,队列清空时最后一帧播完直接收起。气泡右上角 × 可清空整个队列并收起大肥鱼。

九段点击回应动画 id 与名称:wave(元气挥手)、happy(开心跃动)、shy(害羞惊讶)、tickle(挠痒咯咯笑)、angry(傲娇生气)、scared(被吓一跳)、meet(头顶开光)、wake(惊醒)、tumble(原地左转奔跑)。

提示音

任务完成使用内嵌钉钉提示音;等待回答/确认使用另一段三音提示。浏览器需先有一次用户手势(点击或按键)才能稳定发声;MP3 被拦截时会退回 WebAudio 合成音。大肥鱼已显示时,新提醒只入队,不重复响铃。

子智能体

子智能体(subagent、子智能体 fork、AgentTeams 成员等)默认不在任务完成时提醒,依据是会话元数据 origin 为 subagent 或存在 parentId。等待回答/确认仍会提醒。可在设置中打开「子智能体完成」开关。

其它

大肥鱼可拖动,位置写入 localStorage;颜色跟随宿主 --dsw-alias-* 主题令牌;文案跟随宿主语言(zh / en);元素为 role="button",支持键盘与读屏。

安装与启用

前置条件:可运行的 DSH Web 环境,以及 Node.js 与 pnpm。官方 README 未提供 dsh plugin add github:... 一类命令,需本地构建后 link 到 Web profile。

先在插件源码目录构建:

cd /absolute/path/to/notify-plugin
pnpm install
pnpm build

构建生成 Host 入口 index.js 与客户端包 lib/client.js;类型检查可用 pnpm typecheck。

再挂到 DSH Web profile:

cd ~/.dsh/profiles/web
pnpm add link:/absolute/path/to/notify-plugin

把包名加入该 profile 的 dsh.profile.bundles(保留原有条目,在末尾追加):

{
  "dependencies": {
    "@local/dsh-plugin-task-notify": "link:/absolute/path/to/notify-plugin"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@local/dsh-plugin-task-notify"
      ]
    }
  }
}

插件包内 cordis.patch.yml 会自动把 task-notify 条目插入 profile。重启 DSH Web 服务并刷新页面即可。安装前建议通读仓库源码与 LICENSE;插件随当前 DSH Web 进程与浏览器上下文运行,权限与宿主一致。

典型用法

完成、等待回答、等待确认共用一条队列,消费顺序即入队顺序:

会话 A 完成   ─┐
会话 B 等你回答 ─┼─▶ 队列 [A完成, B回答, C确认] ──点击──▶ 打开 A,队列 [B, C]
会话 C 等你确认 ─┘                                ──点击──▶ 打开 B,队列 [C]
                                                  ──点击──▶ 打开 C,队列 []
操作 效果
点击大肥鱼 打开队首会话,播放随机点击回应动画
点击气泡 × 清空提醒队列并收起大肥鱼
拖动大肥鱼 移动位置,松手后保存
聚焦后 Enter / 空格 等同于点击

设置与存储

在 设置 → 通用 → 任务完成提醒 中可调整:

设置 默认 说明
提醒 开启 总开关;关闭后不再产生新提醒
声音 开启 完成与等待提示音;打开时会试听一次
子智能体完成 关闭 打开后子智能体完成也显示大肥鱼

localStorage 键:

键 内容
dsh.taskNotify.settings.v1 {"enabled": true, "sound": true, "notifySubagent": false}
dsh.taskNotify.spritePos.v1 {"left": number, "top": number},单位像素

提醒队列仅在内存中,刷新页面会清空;位置与设置会保留。重置可在控制台删除对应键后刷新。

适用场景与注意

适合在 DSH Web 里长时间跑多会话、需要明确知道「哪一个刚跑完」或「哪一个在等你点确认/回答」的开发者。若点击大肥鱼无法切换会话,需确认当前 DSH 提供 uiWorkspace 服务,且队列内会话仍存在。没有大肥鱼时可按 README 常见问题顺序检查:提醒总开关、是否手动停止、空白会话、子智能体完成开关、是否重新 pnpm build 并刷新、控制台加载错误。没有声音时先给页面一次用户手势,并检查设置与标签页静音。

点击回应动画素材来自 PC2005-cloud/dsh-pet,再分发须遵循原仓库许可;钉钉提示音来自 assets/dingtalk.mp3,仅用于本插件提示。

结尾

dsh-dafeiyu-notice 把 DSH Web 上的任务完成、等待回答、等待确认收敛到同一条大肥鱼队列,用一次点击回到对应会话,并区分完成音与待办音。详情与构建说明见 GitHub README 与 docs/DEVELOPMENT.md;目录页:https://www.skillhub.cn/plugins/Trisia/dsh-dafeiyu-notice;源码:https://github.com/Trisia/dsh-dafeiyu-notice。

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

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

Xiaoye