前言¶
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 插件页。