前言¶
DeepSeek Harness(DSH)把会话界面拆成可插拔的 slot,常见做法是改服务端逻辑或加工具链。若你只想在聊天输入区上方加一块轻量装饰、又不占宿主控件位置,自己写定位脚本容易和主题、布局打架。下面介绍社区插件 dsh-retirement-countdown:在官方推荐的 conversation.composer.dock 位常驻显示距退休还剩多少天、时、分、秒,点铅笔即可改目标日期,属于「趣味换装」类 UI 扩展。
这是什么¶
dsh-retirement-countdown 是一个 UI 插件:渲染全在浏览器侧,Host 端 index.js 的 apply() 为空。维护者 GitHub 账号为 hiyouzheng;package.json 作者署名为 Ghost Zhou。npm 包名与插件 id 一致,当前公开版本为 0.1.0(MIT)。社区目录页:https://www.skillhub.cn/plugins/hiyouzheng/dsh-retirement-countdown;源码:https://github.com/hiyouzheng/dsh-retirement-countdown。
显示位置与行为¶
插件注册到 slot conversation.composer.dock——输入框上方、界面已分配好空间的 list 区域,不必自行算定位,也不挡住宿主控件。
- 有消息的会话界面里常驻;切换会话不会消失。
- 欢迎页(尚无消息的空会话)不显示:该屏走另一 variant,不渲染 composer dock。
- 颜色使用
--dsw-alias-*或currentColor,明暗主题随 DSH 切换。
核心功能¶
- 倒计时展示:天 +
hh:mm:ss实时递减(具体文案含中英文 locale:locale/en.json、locale/zh.json)。 - 改退休日期:点倒计时旁的
✎,选日期并保存。 - 本地持久化:目标日期存在浏览器
localStorage,不写 Profile、不改服务端配置、无需重启 DSH。
| key | 值 |
|---|---|
dsh.retirement-countdown.target |
YYYY-MM-DD,例如 2029-06-30 |
只影响当前浏览器、当前机器。清除该 key 或整段 localStorage 后,回到 client.js 里的默认值 DEFAULT_TARGET。已退休时的展示分支在作者的 smoke 测试里已覆盖。
安装与启用¶
包已发布到 npm:dsh-retirement-countdown@0.1.0。package.json 要求 Node ^22.19.0 || >=24.0.0,DSH >=0.2.1-rc.2。
装到 desktop Profile 的常用命令如下(与 README 原文一致):
# 任何人(装到自己的 Profile 里)
dsh plugin --profile desktop add dsh-retirement-countdown
# 仓库地址直装
dsh plugin --profile desktop add github:hiyouzheng/dsh-retirement-countdown
本地开发可用 link: 指向工作区(README 示例路径为 Windows 盘符,按本机目录替换):
dsh plugin --profile desktop add link:D:\AITools\sdh\dsh-retirement-countdown
装完后刷新页面(Ctrl+R / Cmd+R),让浏览器加载新的客户端模块。若同时跑 pnpm run dev:web,客户端插件热更新时可不刷新。
卸载:
dsh plugin --profile desktop remove dsh-retirement-countdown
组合成功后,dsh --profile desktop --dump-config 中应能看到 - id: retirement-countdown。
典型用法¶
- 按上一节命令安装并刷新 DSH Web 界面。
- 打开任意已有消息的会话,在输入框上方查看倒计时。
- 点
✎→ 选择目标退休日 → 保存;必要时在开发者工具 Application → Local Storage 中确认dsh.retirement-countdown.target。 - 若要从零恢复默认日期,删除上述 localStorage 项即可。
除 npm 外,作者提供了自建索引源(format 1,经 DSH 官方校验器验证):https://hiyouzheng.github.io/dsh-retirement-countdown/index.json。在 DSH「插件市场」添加该 URL 可分发;marketInstallTarget 解析为 dsh-retirement-countdown@0.1.0。仓库已打 dsh-plugin 等 topic,按 dshfind 规则可被每日同步收录。
实现要点(二次开发时)¶
| 文件 | 作用 |
|---|---|
package.json |
dsh.bundle.patch + dsh.client(platform: web、immediately、inject 排序) |
cordis.patch.yml |
插入插件行 |
index.js |
Host 侧,空 apply() |
client.js |
经 window.__ModuleLoader__.load 注册 slot、渲染 React 组件 |
locale/*.json、icon.svg |
插件页文案与图标 |
若要改成别的装饰:在 client.js 把 slot 换成例如 conversation.session.header.actions、sidebar.footer.action、shell.overlay;Countdown 为普通 React 函数组件,可改 UI。注意 README 中的硬约束:不要 require('@deepseek-ai/dsh-client-ui-primitives');不要在组件里往 document.body 追加节点。
适用场景与注意¶
适合:长期在 DSH desktop Profile 里写代码、跑智能体,希望输入区上方有一个轻量、不侵入逻辑的倒计时提醒;或需要参考「composer dock 装饰插件」最小实现的开发者。
注意:
- 插件随 DSH 客户端加载,以你当前 DSH 进程与浏览器环境为准;安装前建议阅读源码与 MIT 许可证,确认无多余网络或敏感权限需求(本插件目标日期仅存 localStorage)。
- 社区目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;星标、观感以你本地刷新后的界面为准——作者 README 标明浏览器内实际间距与明暗对比度尚未在文档中逐项验收。
- DSH 生态理念是「一切皆插件」;本插件归类为趣味换装,不替代工时统计、人事系统或任何合规退休计算。
结尾¶
dsh-retirement-countdown 把退休倒计时固定在 composer dock,改日期只动浏览器 localStorage,安装命令清晰、体量小(npm 0.1.0 tarball 约 15.3 KB、9 个文件)。需要条目说明时见 SkillHub:https://www.skillhub.cn/plugins/hiyouzheng/dsh-retirement-countdown;问题与改造见 GitHub:https://github.com/hiyouzheng/dsh-retirement-countdown。