dsh-session-alerts:DSH 会话未读角标与工作区未读筛选

前言

在 DeepSeek Harness Desktop 里并行多个主会话时,模型完成、出错或等待审批往往发生在当前未聚焦的会话上。仅靠窗口标题或侧栏滚动,很难快速知道「还有几个会话需要回看」,也不容易在列表里只列出「原生标记为未读」的主会话。社区插件 dsh-session-alerts(技术包名仍为 dsh-native-taskbar-badge)面向这类场景:在 Windows 任务栏用安静的原生数字角标汇总未读主会话,并在工作区标题栏提供基于原生 completionUnread 的铃铛筛选。下面介绍它的定位、能力与安装要点。

这是什么

DSH Session Alerts / DSH 会话提醒 由 O-OII 维护,分类为客户端插件。仓库:github.com/O-OII/dsh-session-alerts;社区目录页:skillhub.cn/plugins/O-OII/dsh-session-alerts(独立社区站点,与 DeepSeek / 幻方无官方从属关系)。

一句话:为 DSH Desktop 增加逐会话未读 / 待处理交互的 Windows 任务栏角标,以及只显示未读主会话的工作区筛选。铃铛筛的是未读会话,不是「已完成任务」列表;产品改名不会迁移或重置既有设置与未读状态。

当前 npm 包版本 0.3.0(MIT 许可)。

核心功能

Windows 任务栏数字角标

角标行为在 README 里概括为「一个会话只计一次,查看一个只减一」:

  • 安静:不弹 toast、不响铃、不抢焦点,不修改 ASAR 或应用身份。
  • 按主会话去重:重复完成/出错事件、多个待处理请求不会重复加数;子代理不计。
  • 计数范围:主会话的完成、出错、阻塞、输出超限等终态结果;配置 notifyOnWaiting 时,未解决的审批/问题也会保留该会话计数,直到实际回答或决定(没有「仅查看待回答问题即已读」)。
  • 显示:1~99,超过为 99+。角标数字不等于侧栏未读行数,也可能与角标因待处理交互、旧终态未读保留而与侧栏总数不一致。
  • 已读路径(两条,均带 CAS / revision 校验):官方 Chat 结果页脚可确认进入视口的精确结果;另有一条「当前选中、目录 ready、主视图 retained 的主会话」在页面可见且有焦点时,与原生 completionUnread === false 同步。正在看 A 时 B 完成仍会计入;五个未读读一个是 5 → 4,不会一次全局清零。
  • 状态持久性:未读角标状态保存在 Host 内存,可跨浏览器断线、页面刷新、helper 重启;不跨 Host 重启或插件停用/重启用。用户取消、历史恢复不新增角标;默认过滤活动目标成功的中间回合。

运行要求(角标):Windows 10/11、资源管理器与可见 DSH 任务栏按钮,以及本机可信的 Python 3.10+(通过 COM 调用原生 shell 绘制;0.2.2 起使用自绘贝塞尔数字 ICO,不依赖系统字体)。

工作区「未读过滤」铃铛

在工作区标题栏右侧、原生搜索/视图/新建控件旁点击铃铛,列表仅保留 ctx.uiSession.sessionStatus 里 completionUnread === true 的主会话。成功/completed、waiting、running、goal 或角标总数不能推断未读;子代理与缺失未读标记不匹配。

  • 未开启时无障碍文案为 「未读过滤」,开启后为 「重置条件」;与搜索、归档可见性等筛选取交集,原生状态变化时实时更新。
  • 空结果提示:「当前条件下没有未读会话。」 「重置条件」只关闭本铃铛筛选,不清搜索、不确认未读、不归档会话。
  • 依赖:需要工作区扩展 API v1,stock rc.3 不自带;仓库内 workspace SDK 兼容工程 基于 SHA-256 固定的本地 rc.3 基线提供标题栏槽位,缺 API 时会保守报错,不显示假按钮。侧栏功能不依赖 Python/Windows。
  • 不要与仓库内独立侧栏小包同时启用完整客户端,二者共用同一筛选 ID。

安装与启用

DeepSeek Harness 生态主张「一切皆插件」;从目录页可将插件标识 O-OII/dsh-session-alerts 交给 Harness 安装流程处理。若从克隆后的源码目录手动安装,README 要求使用当前 Desktop 安装自带的官方 CLI(示例为 PowerShell):

$DshCli = Read-Host '本次 DSH 安装中 resources\runtime\cli\bin\dsh.cmd 的完整路径'
$Project = (Resolve-Path .).Path
& $DshCli plugin --profile desktop add --ignore-scripts $Project

安装前宜阅读源码与 MIT 许可:插件以当前 dsh 进程权限运行。启用前先停用其他角标提供者;安装或更新客户端贡献后,若页面未加载新贡献,需刷新原 DSH 页面。若使用本地链接,需保留源码目录。

环境摘要(来自 README):Node 22+;DSH >=0.2.1-rc.2 <0.3.0,需官方 subprocess、sessionProjections、connection、webServer 及客户端 Chat/Session/Conversation/Slot 服务。

典型用法

  1. 看任务栏数字:DSH 在任务栏可见时,角标反映当前 eligible 的未读主会话数;读掉一个会话的终态结果(页脚确认或满足条件的当前主会话同步)后,数字应逐条减少而非一次清零。
  2. 筛未读列表:侧栏工作区点铃铛开启「未读过滤」,在已有搜索/归档条件下只看待处理未读主会话;处理完或原生标记已读后,行会从筛选结果中消失;点「重置条件」恢复全列表视图。
  3. 可选配置:默认界面语言为简体中文;language: en 切英文,仅显式 auto 跟随环境。角标需时配置精确 desktopExecutable 与可信 pythonPath;待审批计数可配合 notifyOnWaiting。详见仓库 configuration 文档。

开发构建与测试(不依赖已安装插件运行 Pillow):

npm run build
npm test
npm run test:python
npm run test:pack

适用场景与注意

适合:在 Windows 上长时间开 DSH、多主会话并行,希望不打扰地知道还有几路需要回看,并能在侧栏一键收窄到原生未读主会话的开发者。

注意:

  • 角标与铃铛依赖不同的运行时条件;仅想要侧栏筛选时,可评估独立侧栏包,但不要与完整客户端重复启用筛选。
  • 工作区铃铛需要兼容后的 workspace API v1;升级 DSH 或替换 client 包时应按文档原子替换修复包,避免只改 node_modules 一次就当升级完成。
  • 无窗口级批量已读、无历史重放式持久未读;Host 重启后角标未读状态不保留,与侧栏 browser 生命周期行为不同,属设计边界而非疏漏。

结尾

dsh-session-alerts 把「还有几个主会话未读」落到 Windows 任务栏数字,并把「只看未读主会话」接到工作区原生状态上,且刻意保持安静、逐会话计数的语义。进一步了解与安装入口见 SkillHub 目录页 与 GitHub 仓库。

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

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

Xiaoye