前言¶
DeepSeek Harness(DSH)側欄裏,每個會話行右側都會顯示相對時間,例如「剛剛」「7小時」「1天」。對一天開很多會話的人來說,這類信息往往不會自動刷新,佔空間,還容易分散對標題的注意力。若你更習慣「只看標題、不看時間」,社區插件 dsh-hide-time(維護者 joesl3epy-cloud,分類:趣味換裝)只做一件事:在前端把側欄會話行上的這類時間戳藏掉。裝上前時間戳還在,裝上後對應區域不再顯示。本文依據倉庫 README 與 package.json(版本 0.2.1,許可證 MIT)整理安裝與行爲說明;插件爲非官方項目,與 DeepSeek、DSH 維護者無隸屬關係。
這是什麼¶
dsh-hide-time 是面向 DSH 桌面前端的極小插件:不包含 DSH 閉源代碼,僅按當前 DOM 結構做最小顯隱處理。入口通過 dsh.client.inject 掛到 @deepseek-ai/dsh-client-ui-slots,平臺爲 web,並帶有 Cordis patch 配置(cordis.patch.yml)。倉庫地址:joesl3epy-cloud/dsh-hide-time;SkillHub 目錄頁:dsh-hide-time。
核心功能¶
插件目標單一:隱藏側欄會話行右側的相對時間戳,不處理對話正文與設置頁。
識別時間戳時,三條條件須同時成立纔會隱藏,認不出則不隱藏(刻意取捨,避免誤傷):
- 節點在側欄內(
aside或[class*="sidebar"]);找不到側欄則不做任何事,不會對document.body全頁掃描。 - 元素的
class中含以_time結尾的一段(DSH 使用 CSS Modules,哈希會變,語義後綴相對穩定);例如x_timeout不會被當作時間戳。 - 元素文本符合時間格式,且該元素不是其它
_time節點的祖先。
可被識別的文本形態包括:
剛剛 | 今天 | 昨天 | 前天
N秒 N分鐘 N小時 N天 N日 N周 N星期 N個月 N年
(可帶「前」「後」「以前」「之前」等後綴)
僅看文本不夠:會話標題叫「昨天」、分組叫「3天前整理」可能誤判,因此依賴第 1、2 條收窄範圍。
節點複用與卸載:React 可能複用 DOM;插件對已標記節點會週期性校驗,不滿足上述條件時恢復 display 並去掉標記。從 bundles 移除並重啓後,stop() 會斷開 MutationObserver、清除定時器,並恢復所有被隱藏的節點。
性能:只觀察側欄子樹(childList / subtree / characterData);側欄未出現時暫觀察 documentElement,出現後立即收窄;變更 120ms 防抖,另有每 3s 一次的輕量檢查以應對側欄整體重建。
安裝與啓用¶
README 說明的是本地路徑安裝(未發佈到 npm),不能把倉庫名拼成 dsh plugin add github:... 當作官方一鍵命令。步驟如下。
1、在所用 profile 的 package.json 裏增加 file: 本地依賴(路徑換成本機絕對路徑):
cd ~/.dsh/profiles/<profile>
# 在 dependencies 中示例:
# "dsh-hide-time": "file:/絕對路徑/dsh-plugins/sidebar-hide-time"
2、用 DSH 自帶的 pnpm 在該 profile 目錄安裝:
node "/Applications/DeepSeek Harness.app/Contents/Resources/runtime/primary-runtime/dependencies/pnpm/bin/pnpm.mjs" install --dir .
3、在同一 package.json 的 dsh.profile.bundles 中登記 "dsh-hide-time"。
4、重啓 DSH。前端插件在啓動時一次性組裝,改代碼後刷新頁面無效,必須重啓。
若修改源碼後 node_modules 內副本未更新(file: 目錄依賴的常見情況),可先移走 node_modules/dsh-hide-time,再執行 pnpm install --force。
安裝前建議通讀倉庫源碼與 MIT 許可證;插件隨當前 DSH 進程在前端運行,權限與主應用一致。
典型用法與驗證¶
啓用後無需額外配置項:登記 bundle 並重啓,側欄符合條件的會話行時間戳即被隱藏。
開發者可在克隆後的倉庫根目錄跑自檢(不依賴正在使用的 DSH 實例):
node --test test/ # 8 項行爲測試
node check.mjs # 靜態契約 + 加載器判定重放
測試在 vm 中加載真實 client.js,使用極簡 DOM 樁(含 MutationObserver 與節點複用場景),覆蓋:會話行內時間被隱藏、同名標題不被隱藏、無 _time class 不處理、不在側欄內不處理、無側欄不全頁掃描、複用後恢復、停用後全部恢復、factory 無副作用等。
適用場景與注意¶
適合:長期在 DSH 側欄管理大量會話、希望界面更乾淨、且不依賴側欄相對時間的用戶。
已知限制(來自 README):
- 依賴 DSH 繼續保留
_time語義類名後綴;上游若重命名,插件會停止隱藏(不會亂藏其它元素)。 - 僅處理側欄會話行。
- 實測環境爲 DSH 0.2.1-rc.5(Electron 44.7.0,內嵌 Node 24.21.0),macOS(Apple Silicon);Windows / Linux 未測試。
package.json要求 Node >=20(跑測試曾用 24.21.0 / 26.11.1)。
結尾¶
dsh-hide-time 用嚴格的側欄 + _time + 文本三重判定,在儘量不誤傷標題的前提下去掉側欄會話行右側的相對時間戳;停用可完全恢復 DOM。更多信息見 SkillHub 目錄頁 與 GitHub 倉庫。