dsh-vibe-pack:面向 DeepSeek Harness 的事务性纯数据配置包管理器

前言

长期维护一个 DSH 实例时,$DSH_HOME 下的配置资源很容易变成一笔糊涂账:文件是手工复制进去的,改坏了不知道动了哪里,两份配置包先后写入同一个文件时互相覆盖,出问题之后既查不到来源也回不去。DSH 的理念是「一切皆插件」,但把数据型配置资源的分发和卸载做成可审计的事务,此前并没有现成工具。

下面介绍的 dsh-vibe-pack 就是针对这个问题:把资源的安装做成先预览、再安装、可回滚的事务,并在全过程追踪文件归属。

这是什么

dsh-vibe-pack 是一个面向 DeepSeek Harness 的事务性、纯数据配置包管理器,由 LeemanCheung 维护,许可证为 MIT。它围绕 $DSH_HOME 提供预览、安装、Diff、导出、卸载五类操作,配套完整性校验、所有权追踪与失败回滚。

当前版本 1.0.1,声明兼容 DSH 0.1.2-rc.1 的 web profile(>=0.1.2-rc.1 <0.1.3-0),经 Windows QA 验证。

核心功能

纯数据包格式

一个包的来源是本地目录,或包含 dshpack.yaml 与清单所列全部载荷的 .dshpack/.zip 归档。严格的 v1 清单包含 id、版本、兼容范围、1–10000 个文件、每文件 SHA-256、create/replace/merge 模式与所有权元数据。

接受的载荷只有数据:JSON/YAML/.dshskin、Markdown/文本/TOML/INI、PNG/JPEG/WebP/GIF 图片。脚本、hook、shell 命令、JS 模块、URL 抓取、symlink、YAML alias/tag/anchor、内嵌凭据、路径穿越、重复归档路径一律拒绝,可执行文件和未知扩展名也被拒。归档在载荷使用前按压缩、展开、单文件、字节与条目数限制检查。

预览与所有权确认

安装前强制预览,报告 create/replace/merge 动作与冲突,安装动作与预览 digest 绑定。以下四种情况需要显式 force 选择:

  1. 无主文件
  2. 他包所有的文件
  3. create 模式冲突
  4. 安装后被修改的资源

force 只转移清单列出的所有权,不会被隐式触发。

事务与回滚

安装和卸载由磁盘事务锁串行化。写入前先备份每个目标,再按固定顺序原子写入;失败时按逆序恢复,并报告部分回滚错误。账本原子写入 $DSH_HOME/.dsh-vibe-pack/ledger.json。卸载同样保护被修改的资源,除非显式 force。

符号链接与 junction 越界防护

每次受管理的读取和写入都先解析真实文件系统位置。在预览、备份、导出、目录创建、写入或移除之前,符号链接或 Windows junction 一旦离开配置的 DSH 根即被拒绝。

合并与导出

合并模式接受 JSON 或 YAML 对象,递归合并对象键,数组与标量整体替换,拒绝原型键与机密,输出确定性数据。导出前先校验已安装资源仍与账本一致,再生成可移植的 .dshpack 归档。

UI 与 CLI

安装后,DSH Web 的 Settings → Vibe Pack 面板提供强制预览、digest 绑定安装、账本历史、Diff、需独立确认的卸载和 .dshpack 下载,生成的 Typert 命名空间为 vibePack。命令行提供 dsh-pack 工具,子命令为 inspect/plan/install/history/diff/export/uninstall,--root 默认 $DSH_HOME,只在管理显式指定的测试根时才需要传。

安装与启用

dsh plugin --profile web add github:LeemanCheung/dsh-vibe-pack

安装完成后,重启现有的 DSH Web 进程并刷新页面,Settings 中即可看到 Vibe Pack 面板。

典型用法

先检查一个包目录的清单与载荷是否合规:

dsh-pack --root $env:DSH_HOME inspect ./my-pack

安装前生成动作计划,确认 create/replace/merge 与冲突情况:

dsh-pack --root $env:DSH_HOME plan ./my-pack.dshpack

确认无误后执行安装:

dsh-pack --root $env:DSH_HOME install ./my-pack.dshpack

经过上面的步骤,可以用 history 查看账本历史、diff 对比当前差异、export 导出归档、uninstall 卸载:

dsh-pack --root $env:DSH_HOME history
dsh-pack --root $env:DSH_HOME diff my-pack
dsh-pack --root $env:DSH_HOME export my-pack > my-pack.dshpack
dsh-pack --root $env:DSH_HOME uninstall my-pack

上述示例使用 PowerShell 的 $env:DSH_HOME 语法。只有在审查完报告的所有权或修改冲突之后,才应使用 --force

想参与开发,可在仓库根目录运行 corepack pnpm typecheckcorepack pnpm testcorepack pnpm buildcorepack pnpm pack:check。CI 会在 Windows 和 Linux 上重建已提交的 lib 产物并拒绝任何差异,安全验收用例见 TEST_PLAN.md。

适用场景与注意

适合需要把 $DSH_HOME 下的数据资源打包备份、迁移、分享,并且在意「哪次变更动了哪些文件、能不能回退」的开发者。

使用前注意以下几点:

  1. 插件不向模型添加 prompt、工具、消息、token 用量或 KV-cache 内容,所有检查与变更都通过 Host 上的 UI/CLI 显式执行。
  2. 事务锁在进程异常退出后会报错(fail loud),确认无 Vibe Pack 进程活动后可能需手动移除。
  3. 远程操作与同一 DSH Web 组合中的受信任客户端共享。
  4. 包格式提供 SHA-256 完整性与所有权校验,不提供发布者签名或网络分发。
  5. 1.0.1 仅声明兼容 DSH 0.1.2-rc.1 的 web profile。
  6. 插件以当前 dsh 进程的权限运行,安装前应审查插件源码并确认许可证(MIT,见仓库 LICENSE)。

结尾

dsh-vibe-pack 的价值在于把配置资源的安装从「手工复制、改完靠记忆」变成一次可预览、可追踪、可回滚的事务。社区目录页见 https://www.skillhub.cn/plugins/LeemanCheung/dsh-vibe-pack ,源码与文档见 https://github.com/LeemanCheung/dsh-vibe-pack 。

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

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

小夜