dsh-retirement-countdown:在 DSH 输入框上方显示退休倒计时

前言

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 切换。

核心功能

  1. 倒计时展示:天 + hh:mm:ss 实时递减(具体文案含中英文 locale:locale/en.json、locale/zh.json)。
  2. 改退休日期:点倒计时旁的 ✎,选日期并保存。
  3. 本地持久化:目标日期存在浏览器 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。

典型用法

  1. 按上一节命令安装并刷新 DSH Web 界面。
  2. 打开任意已有消息的会话,在输入框上方查看倒计时。
  3. 点 ✎ → 选择目标退休日 → 保存;必要时在开发者工具 Application → Local Storage 中确认 dsh.retirement-countdown.target。
  4. 若要从零恢复默认日期,删除上述 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。

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

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

小夜