dsh-plugin-session-clock:側欄會話時間改爲微信式絕對時間

前言

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 級補丁:

  1. 註冊不可見的 shell.overlay 座位(組件只返回 null),從標準 useSessions 快照讀取 updatedAt。
  2. 用 MutationObserver 跟蹤內核已渲染的 [data-row-key="session:<id>"] 行,只改寫第三列時間文本。
  3. 僅處理兩類文本:內核剛寫下的相對標籤,或本插件上一次寫下的文本;單元格出現「進行中」等狀態文案時不改動。
  4. 改寫時直接修改文本節點的 nodeValue,保留 React 持有的節點;觀察器將連續變更合併爲每 100ms 至多一次重繪,流式回答時避免按幀空轉。

這是 DOM 補丁,不是插槽擴展。若內核改掉 data-row-key 或調整行子元素順序,插件會靜默失效——列表退回相對時間,不報錯、也不破壞列表。開發與使用環境在資料中寫明爲 DSH 0.2.1-rc.3(macOS desktop profile);行結構按該版本 SessionRow 覈對:第三個子元素爲時間單元格。升級 DSH 後建議看一眼列表時間是否仍爲絕對格式。

已知邊界

  • 只改會話列表行;懸停卡片裏的「創建於 …」及相對時間不改。
  • 只改左側欄會話行;搜索結果元信息行不含時間。
  • 日期順序固定爲 MM/DD(月/日),不隨語言切換。
  • 不接管「進行中」等狀態文案,也不插入或隱藏行。

安裝與啓用

插件以當前 DSH 進程權限運行;安裝前請自行查看 GitHub 倉庫 源碼與 MIT 許可證。

方式一:Plugins 頁(推薦)

  1. 左側欄點 Plugins。
  2. 點 Add plugin。
  3. 填寫 Git 地址 https://github.com/msongw-design/dsh-plugin-session-clock,或本倉庫克隆後的本地絕對路徑。
  4. 安裝完成後在 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 插件頁。

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

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

小夜