dsh-usage-tab: Time Statistics on the DSH Web Session Page

前言

在 DSH Web 的会话页签中,除了查看上下文和对话历史,往往缺乏对时间维度的直接观测。该插件在会话页签右侧(dsh-context 的「上下文」之后)增加了一个「时间统计」tab。它通过读取会话现有的三条通道(sessionStats、turnTimings、timeline),在本地进行折叠计算,将本会话的挂钟跨度、活跃与空闲状态、每轮甘特图以及每小时分布可视化地呈现出来。所有数据均来自现有通道,不扫描磁盘、不读缓存、无额外网络请求。

核心功能

插件主要提供以下数据展示能力:

  • 本会话概览:展示轮次、步数、挂钟跨度、活跃时长、空闲率及首条消息时间。
  • 使用时间线(甘特图):每轮一根条,空白处代表空闲时间。
  • 每小时分布:24 根柱状图,展示每个步骤开始时间落在哪个小时。
  • 每轮用时排行:列出最久的 5 轮。
  • 日历(P2 功能):支持今日/本周/本月累计、近 12 周热力图、近 14 天柱状图及连续使用段统计。数据来源于宿主 usageDaily 投影,跨会话求和。
  • 会话(P2 功能):提供三种视图——按工作区分组的纵向表(含行内比例条)、逐日活动带(14 列)、主从双栏(左栏清单,右栏详情)。

安装与启用

该插件通过 DSH 生态目录安装。
* 目录地址:https://www.skillhub.cn/plugins/CNyaotian-Lunar/dsh-usage-tab
* 仓库地址:https://github.com/CNyaotian-Lunar/dsh-usage-tab

典型用法

  1. 添加 Tab:在 DSH Web 会话页签中添加「时间统计」tab。
  2. 配置界面:使用二级菜单切换概览/日历/会话/设置,并在设置中调整空闲阈值、时区或数据范围。
  3. 验证回填:运行 node tools/projcache-probe.mjs 对比回填前后的数据覆盖率。
  4. 查看数据:在日历页查看跨会话求和的今日/本周/本月数据,或在会话页查看具体的工作区时间分布。

适用场景与注意

  • P1 与 P2 状态:P1 状态仅支持当前会话,数据全部来自现有通道;P2 功能(日历、会话页)需宿主半边注册 usageDaily 投影单元,冷会话回填在启动 5 秒后执行。
  • 数据空态:当拿不到投影数据时,界面保持空态(值一律 —)。
  • 清单限制:会话清单上限为 SESSION_LIST_LIMIT = 40,超过该数量的会话在特定视图下会被截断。
  • 重启生效:宿主半边 (lib/index.mjs) 与客户端半边 (lib/client.js) 的改动均需重启桌面版 App 才能生效。
  • 依赖要求:依赖 DSH 版本 >= 0.1.0。

结语

该插件通过本地计算和投影数据读取,为 DSH 用户提供了精细化的会话时间分析能力。对于需要监控开发效率或分析 AI 行为模式的场景,它提供了直接的度量手段。

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

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

Xiaoye