前言¶
DeepSeek Harness(DSH)桌面客戶端左側欄會列出歷史會話,每條旁邊通常是相對時間:剛剛、3小時、1天、2個月。對需要對照具體時刻、或習慣微信聊天列表展示方式的開發者來說,相對標籤要心算一遍,效率不高。內核裏這類文案由 @deepseek-ai/dsh-client-ui-workspace 的 timeLabel() 直接渲染,側欄又沒有單獨替換時間文本的插槽,所以不能指望改一行配置就換展示規則。社區插件 dsh-plugin-session-clock(維護者 msongw-design,分類:客戶端)在客戶端側用最小侵入的方式,把會話行第三列改寫成絕對時間格式。
這是什麼¶
dsh-plugin-session-clock 是 DeepSeek Harness 客戶端插件(dsh.client.platform: web),版本 0.1.0,MIT 許可證。它只做一件事:把左側欄會話列表裏的相對時間改成微信式的絕對時間,並同樣接管英文界面下內核原本的 now / 5min / 3h / 1d / 2mo / 2y 等相對標籤。
顯示規則¶
改寫後的格式如下(資料中的對照表):
| 時間範圍 | 顯示示例 |
|---|---|
| 今天 | 21:12(24 小時制,補零) |
| 昨天 | 昨天21:12 |
| 今年更早 | 10/27 |
| 往年 | 25/12/31(兩位年份) |
未來時間(例如時鐘偏差)按「今天」處理,只顯示 HH:MM。英文界面下「昨天」顯示爲 Yesterday。格式跟隨時區與系統時鐘;跨過零點後每 30 秒自動刷新一次,因此列表裏的 21:12 會在午夜變成類似 10/29 的日期形式。
實現方式與代價¶
README 說明:側欄 sidebar.workspaces 是單值插槽,若整體替換等於重寫整個會話瀏覽器(搜索、分組、拖拽、重命名等),成本過高。本插件因此走 DOM 級補丁:
- 註冊不可見的
shell.overlay座位(組件只返回null),從標準useSessions快照讀取updatedAt。 - 用
MutationObserver跟蹤內核已渲染的[data-row-key="session:<id>"]行,只改寫第三列時間文本。 - 僅處理兩類文本:內核剛寫下的相對標籤,或本插件上一次寫下的文本;單元格出現「進行中」等狀態文案時不改動。
- 改寫時直接修改文本節點的
nodeValue,保留 React 持有的節點;觀察器將連續變更合併爲每 100ms 至多一次重繪,流式回答時避免按幀空轉。
這是 DOM 補丁,不是插槽擴展。若內核改掉 data-row-key 或調整行子元素順序,插件會靜默失效——列表退回相對時間,不報錯、也不破壞列表。開發與使用環境在資料中寫明爲 DSH 0.2.1-rc.3(macOS desktop profile);行結構按該版本 SessionRow 覈對:第三個子元素爲時間單元格。升級 DSH 後建議看一眼列表時間是否仍爲絕對格式。
已知邊界¶
- 只改會話列表行;懸停卡片裏的「創建於 …」及相對時間不改。
- 只改左側欄會話行;搜索結果元信息行不含時間。
- 日期順序固定爲
MM/DD(月/日),不隨語言切換。 - 不接管「進行中」等狀態文案,也不插入或隱藏行。
安裝與啓用¶
插件以當前 DSH 進程權限運行;安裝前請自行查看 GitHub 倉庫 源碼與 MIT 許可證。
方式一:Plugins 頁(推薦)¶
- 左側欄點 Plugins。
- 點 Add plugin。
- 填寫 Git 地址
https://github.com/msongw-design/dsh-plugin-session-clock,或本倉庫克隆後的本地絕對路徑。 - 安裝完成後在 Installed 組裏啓用。
方式二:寫進 profile¶
在 profile 目錄(~/.dsh/profiles/desktop)裏執行:
pnpm add /path/to/dsh-plugin-session-clock
將包名加入該 profile 下 package.json 的 dsh.profile.bundles,重啓應用。
社區插件目錄頁:skillhub.cn/plugins/msongw-design/dsh-plugin-session-clock。該站點爲獨立社區目錄,與 DeepSeek / 幻方無官方從屬關係。
開發與驗證¶
倉庫提供無頭冒煙測試,可在插件根目錄執行:
node test/smoke.mjs
測試覆蓋 clockLabel 的四種時間分支、中英文相對標籤的接管與誤判防護、狀態文案保護、已繪製行的重繪、槽位註冊等;React 默認從 DSH 的 ~/.dsh/profiles/node_modules 加載,可用環境變量 DSH_PROFILE_MODULES 覆蓋。
結尾¶
若你希望 DSH 側欄會話時間與微信列表一致、又不願接管整個 workspaces 插槽,dsh-plugin-session-clock 提供一條已文檔化的客戶端補丁路徑。啓用後留意 DSH 升級是否仍匹配行結構;失效時表現僅爲恢復相對時間。源碼與說明見 GitHub,目錄介紹見 SkillHub 插件頁。