前言¶
在 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
典型用法¶
- 添加 Tab:在 DSH Web 会话页签中添加「时间统计」tab。
- 配置界面:使用二级菜单切换概览/日历/会话/设置,并在设置中调整空闲阈值、时区或数据范围。
- 验证回填:运行
node tools/projcache-probe.mjs对比回填前后的数据覆盖率。 - 查看数据:在日历页查看跨会话求和的今日/本周/本月数据,或在会话页查看具体的工作区时间分布。
适用场景与注意¶
- P1 与 P2 状态:P1 状态仅支持当前会话,数据全部来自现有通道;P2 功能(日历、会话页)需宿主半边注册
usageDaily投影单元,冷会话回填在启动 5 秒后执行。 - 数据空态:当拿不到投影数据时,界面保持空态(值一律
—)。 - 清单限制:会话清单上限为
SESSION_LIST_LIMIT = 40,超过该数量的会话在特定视图下会被截断。 - 重启生效:宿主半边 (
lib/index.mjs) 与客户端半边 (lib/client.js) 的改动均需重启桌面版 App 才能生效。 - 依赖要求:依赖 DSH 版本 >= 0.1.0。
结语¶
该插件通过本地计算和投影数据读取,为 DSH 用户提供了精细化的会话时间分析能力。对于需要监控开发效率或分析 AI 行为模式的场景,它提供了直接的度量手段。