dsh-coding-time:本地记录 DSH 项目编码活动时长与行数变动

前言

在 DeepSeek Harness(DSH)里用智能体改代码,墙钟时间往往分散在多次会话、多个工作目录之间。若想事后按项目回顾「这波 AI 一共活跃了多久、动了哪些文件、增删了多少行」,常见做法是翻日志或凭印象估算,既难对齐真实 diff,也容易把未采集的数据当成零。

dsh-coding-time 是维护者 Dclef 发布的 DSH 插件,归类为「记忆」类扩展。它在本地按项目(cwd)记录 AI 活跃的墙钟区间、基于工具返回的真实 diff 元数据统计增删行,并可选择性地统计人类编辑时长;数据落在本机 ~/.dsh 下,不经第三方账号或上报。下面介绍其能力、安装方式与使用时的注意点。

这是什么

dsh-coding-time 面向已在运行 Harness 且具备 dsh CLI 的环境,提供编码活动计时与汇总 Web 面板。插件复用 Harness 既有 webServer 挂载仪表盘,不单独开端口;存储为 JSONL,并支持 CSV 导出。

当前版本在 package 中为 0.1.0,许可证 MIT。项目状态为实验性、仅本地使用,以源码形式发布供审阅与自托管。

核心功能

下列能力均来自项目 README 的说明。

按项目的活跃时间

记录 AI 活动(工具调用与助手事件)的墙钟区间,按工作目录分组。重叠区间会做并集合并,总时长不是简单相加。

真实行数统计

增删行仅来自工具显式返回的 diff 元数据;缺少元数据时保持为未知,不会填成 0。

可选的人类编辑计时

默认关闭;仅在编辑器集成能提供明确「真实输入」证据时才会启用。

时间与文件维度展示

活跃区间会分摊到涉及文件,以环形图等形式展示占比;项目按并集活跃时长排序,带进度条与相对领先项目的百分比。

日程与近期活动

按日展示 AI(及在已连接时的人类)活跃时间的柱状图;另有近期事件时间线,以及各项目当前 Git 工作树的只读快照。

设置与导出

在 Host 为插件暴露可写配置命名空间时,可在设置页调整心跳、空闲与刷盘间隔、采集开关、本地存储目录及存储统计等。支持将汇总下载为 CSV,未知值与零值区分显示。

本地与隐私

无第三方 API、无出站统计、UI 不读写凭证。运行时核心逻辑仅使用 Node 内置模块;设置表单依赖 Host 提供的 @deepseek-ai/schemastery 作为 peer。未采集或未连接项在界面上标明(如 “not collected” / “not connected”),不伪造为 0。

安装与启用

环境要求:Node >=22.14.0(package 中亦为 ^22.14.0 || >=24.0.0),Harness 运行中且 dsh 在 PATH 上;与 dsh 版本需满足 >=0.2.1-rc.2 <0.3.0-0。

从 npm 安装并加入 web profile:

npm install dsh-coding-time@0.1.0
dsh plugin --profile web add dsh-coding-time

或直接从 GitHub 仓库添加:

dsh plugin --profile web add 'https://github.com/Dclef/dsh-coding-time'

更细的安装说明见仓库内 docs/INSTALL.md。

配置要点

默认配置摘录如下(完整校验规则见 README):无效字段、凭证字段、非法数字、非法时区或非绝对路径会被拒绝,而非静默截断。idleThresholdSeconds 不得小于 heartbeatIntervalSeconds。

字段 默认值
enabled true
heartbeatIntervalSeconds 60
idleThresholdSeconds 180
flushIntervalSeconds 10
trackAgentActivity true
trackAiLines true
humanTracking.enabled false
storageDirectory ~/.dsh/coding-time
timezone 本机 IANA 时区
weekStartsOn 1(周一)
exclude 常见构建、版本控制与敏感路径

若 Host 未暴露本插件的可写 Config 命名空间,客户端会处于只读状态,不会发起保存请求。

典型用法

  1. 按上文完成安装后,通过 Harness 自带的 Web 入口打开 coding-time 仪表盘(会话头可查看当日 AI 活跃时长摘要)。
  2. 在日常智能体开发中保持插件 enabled;按需调整心跳与空闲阈值,避免长时间无操作仍计为活跃。
  3. 需要归档或外部分析时,在面板使用 CSV 导出;注意导出中未知行数与时间会与零值区分。
  4. 若要统计人类编写时长,需具备能上报真实输入证据的编辑器集成,并将 humanTracking.enabled 设为 true(默认仍为关闭)。

中文说明另见仓库 README.zh.md。

适用场景与注意

适合希望在 本机 追溯各仓库 AI 编码投入、对比项目间活跃时长、并结合真实 diff 行数做回顾的 DSH 用户。不适合需要云端多人协作统计或官方 SLA 的场景;项目自述为实验性,自动化测试通过并不等同于已在所有浏览器环境做过人工验收。

插件以当前 dsh 进程权限运行,可读工作区与 Git 状态;安装前建议通读 GitHub 仓库 源码与 MIT 许可证,确认 exclude 与存储路径符合本机安全策略。DSH 生态采用「一切皆插件」思路,社区目录站点 SkillHub 上的条目 与 DeepSeek / 幻方无官方从属关系,本文不因目录分类「记忆」而暗示官方背书。

结尾

dsh-coding-time 把项目级 AI 活跃时长、diff 行数与可选的人类编辑计时收拢到本地 JSONL 与可视化面板,强调未知即未知、数据不出本机。若要查看简介与安装入口,可访问 SkillHub 目录页 或 GitHub:Dclef/dsh-coding-time。

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

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

小夜