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。

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

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

小夜