dsh-hub:DSH 里的 TODO / Note / Prompt 悬浮面板

前言

在 DSH(DeepSeek Harness)里跑智能体或长对话时,待办、随手记和常用 Prompt 往往散落在聊天窗口、外部笔记或剪贴板里。换会话或换机器后很难对齐,也不适合当成结构化数据长期维护。社区插件 @hanmaxiao/dsh-hub(仓库 HanMaXiao/dsh-hub)把三类条目收进同一个悬浮面板:一个面板、三块标签、完整增删改查,数据落在宿主进程的一份 JSON 里,不依赖浏览器 localStorage,也不做联网同步或多用户协作。下面介绍它是什么、能做什么,以及如何在 DSH 里安装和使用。

这是什么

  • 包名:@hanmaxiao/dsh-hub(1.0.0 起由 @local/dsh-hub 更名,属破坏性变更,需先卸旧 bundle 再装新包)
  • 维护者:HanMaXiao
  • 分类:客户端(DSH 社区目录 skillhub 插件页)
  • 许可证:MIT
  • 定位:浮动 TODO、Note、Prompt 统一管理面板;四边停靠、网格与列表视图、排序与分组可配

插件刻意不做三件事:不联网同步、不做多用户协作、不把数据塞进浏览器 localStorage。

核心功能

四边停靠与自动收展

面板可停靠在窗口上、右、下、左四条边。收起时只留一条窄把手,不挡内容;把手是唯一的开合入口。展开方式:悬停把手或点击把手。指针离开面板后,空闲一段时间会自动收起。上次选的停靠边会被记住。

三个标签页与两种视图

底部胶囊标签:TODO / NOTE / PROMPT,同一时间只编辑当前类型。

视图 说明
网格 卡片铺排,列数随窗口宽度自动重排
条目列表 一行一条,适合条目多、需要扫读

视图选择会被记住。空态仅保留添加按钮;创建、删除确认、详情三个弹窗;详情右上角可复制与关闭。界面中英双语,走应用 locale,控件为内联 SVG 并带 aria-label。

三类条目的字段

TODO Note Prompt
标题 title title title
正文 description + note text text
归类 category — —
标记 priority:low / normal / high / urgent — —
状态 status(可自定义清单) — —
图片 attachments images images
时间 createdAt、updatedAt 同左 同左

标题单独存储;列表显示名优先用标题,空则退回正文第一行。标题与正文可同时为空会被拦截;仅填标题即可保存短 TODO。宿主校验 kind、priority、status 等字段,非法值会点名拒绝。

TODO 的完成状态是可编辑枚举(待处理、处理中、已完成等六项出厂配置),不是简单复选框;可通过「管理状态」增删改序与颜色。列表按状态分区展示;旧数据里的 done 布尔会映射为「已完成」或「待处理」。

排序与分组

排序为一个字段 + 一个方向 + 可选分组,不是多级比较器链。可选字段包括名称、修改日期、创建日期、大小(由标题、正文、备注与附件字节现算)、类别(TODO)、优先级(TODO)等;并列时以 createdAt、id 升序收尾。分组:TODO 可按类别或优先级;Note / Prompt 可按含图片或纯文字。完成状态不作为排序或分组项,它本身就是 TODO 列表的区划框架。

数据存放

全部数据在:

$dataDir/store.json

默认 dataDir 为空时:$DSH_HOME/plugin-data/dsh-hub,未设置 DSH_HOME 时为 ~/.dsh/plugin-data/dsh-hub。可在 hub-core 的 config.dataDir 改为绝对路径(例如同步盘)。写入采用临时文件再 rename;文件损坏会明确报错,不会静默清空。图片以 base64 data URL 内联在 JSON 中(单文件备份方便,体积约增三分之一;整库每次改写)。maxImageBytes 默认 2097152(2 MiB,按解码前字节计)。

安装与启用

DSH 插件安装统一使用 spec,与侧栏 Plugins → Add plugin 或 plugin_manager 的 install_bundle 一致。

方式 A:GitHub(推荐)

plugin_manager { action: "install_bundle", target: "https://github.com/HanMaXiao/dsh-hub" }

页面上等价于粘贴 https://github.com/HanMaXiao/dsh-hub 后回车。

方式 B:npm(包已配置 publishConfig.access = public,发布后可用)

plugin_manager { action: "install_bundle", target: "@hanmaxiao/dsh-hub" }
plugin_manager { action: "install_bundle", target: "@hanmaxiao/dsh-hub@1.0.0" }

方式 C:本地绝对路径(开发)

plugin_manager { action: "install_bundle", target: "D:\\path\\to\\dsh-hub" }

须为绝对路径;勿在 profile 目录手写 package.json 或 cordis.patch.yml,勿在 profile 里跑 pnpm。安装后确认 list_bundles 可见本 bundle、list_plugins 中 @hanmaxiao/dsh-hub 非 failed、详情标题为「Hub · 统一管理面板」。已装插件不会自动升级,需卸后再装新版本。

若报 incompatible-version,与本包钉死的 @deepseek-ai/dsh-typert-protocol 0.1.7-rc.2 及 DSH peer 有关;多数情况应先重启进程再排查,必要时再按 README 用 set_version_exemption(需 acceptRisk: true)。

生效规则:

  • Host 侧(host.js、lib/、remote.js):改代码后须重启 DSH 进程
  • Client 侧(client.js):刷新页面即可

从 @local/dsh-hub 迁移:先 remove_bundle,再按上述方式安装;数据在 $dataDir/store.json,卸载不删库。

典型用法

  1. 安装并确认 bundle 与插件状态正常后,在 DSH 客户端界面通过靠边把手打开面板。
  2. 在 TODO / NOTE / PROMPT 标签间切换,用网格或列表查看条目;通过排序菜单调整字段、方向与分组。
  3. 创建条目:填标题与正文(至少一项非空);TODO 可设类别、优先级与状态;需要时在表单中加图片(注意单张 2 MiB 默认上限)。
  4. 备份或迁移:复制 store.json 即可;改 hub-core 的 dataDir 可把库放到指定目录。

包依赖 Node >=24,与 DSH 运行时同进程加载;具体 Typert / remote 能力以仓库 exports 与 cordis.patch.yml 为准。

适用场景与注意

适合:希望在 DSH 窗口内就地管理待办、笔记与 Prompt 模板;需要单文件 JSON 库、可 diff、可手工备份;接受不做云同步与多人协作的单用户工作流。

注意:

  • 插件以当前 DSH 进程权限运行,安装前请阅读 GitHub 源码 与 MIT 许可证,自行评估信任边界。
  • 大图或多图会让 store.json 变大,每次保存重写整文件,性能会下降。
  • 社区目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系;DSH 生态是「一切皆插件」,目录为独立社区站点。

结尾

@hanmaxiao/dsh-hub 把 TODO、Note、Prompt 收敛到一个可停靠、可排序的悬浮面板,数据落在宿主侧的 store.json,适合在 Harness 里长期维护个人工作集。安装用官方 spec(如 GitHub URL 或 @hanmaxiao/dsh-hub),勿凭包名臆造 CLI。更多信息见社区目录页与仓库 README。

  • 目录页:https://www.skillhub.cn/plugins/HanMaXiao/dsh-hub
  • GitHub:https://github.com/HanMaXiao/dsh-hub
羽毛球分组比赛记分
小程序二维码

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

小夜