dsh-hide-time:隐藏 DSH 侧栏会话行的相对时间戳

前言

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。

核心功能

插件目标单一:隐藏侧栏会话行右侧的相对时间戳,不处理对话正文与设置页。

识别时间戳时,三条条件须同时成立才会隐藏,认不出则不隐藏(刻意取舍,避免误伤):

  1. 节点在侧栏内(aside 或 [class*="sidebar"]);找不到侧栏则不做任何事,不会对 document.body 全页扫描。
  2. 元素的 class 中含以 _time 结尾的一段(DSH 使用 CSS Modules,哈希会变,语义后缀相对稳定);例如 x_timeout 不会被当作时间戳。
  3. 元素文本符合时间格式,且该元素不是其它 _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 仓库。

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

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

小夜