dsh-storage-inspector: DSH Local Storage Read-Only Inspection

前言

DeepSeek Harness(DSH)的运行时、会话、缓存、插件和日志都会落在本地目录,默认是 ~/.dsh(也可通过 DSH_HOME 指定)。日常用 Finder 或 du 看占用,往往对不上「到底占了多少」;目录列表也回答不了「空间花在哪」以及「哪些目录不能随手删」。下面介绍社区客户端插件 dsh-storage-inspector,把扫描、口径和可解释建议集中到一套逻辑里,通过设置页和 Agent 工具两个入口呈现;当前 V1 为只读版,不会删除、移动或上传任何文件。

这是什么

dsh-storage-inspector 由维护者 OnebugIS 发布,在 SkillHub 目录中归类为客户端插件。一句话定位:对 DSH 本地存储做一次安全的磁盘占用检查,并按模块给出分级清理建议(建议本身可解释,V1 不执行清理)。

仓库:https://github.com/OnebugIS/dsh-storage-inspector
目录页:https://www.skillhub.cn/plugins/OnebugIS/dsh-storage-inspector

DSH 生态强调「一切皆插件」;SkillHub 是社区插件目录站点,与 DeepSeek / 幻方无官方从属关系,本文仅介绍该插件本身的能力与用法。

它解决什么问题

README 归纳了三个常见疑问:

  1. 到底占了多少磁盘? Finder、du 与「文件逻辑大小」可能给出不同答案;
  2. 空间花在哪里? 需要按模块、缓存和最大文件定位;
  3. 什么能动、什么不能动? 运行时目录和活动配置不能因为「看起来很大」就删除。

本插件用统一扫描器(lib/scan.js)生成报告,避免设置页与对话里两套口径互相矛盾。

核心功能

能力 说明
设置 → 存储 总量、物理/逻辑双口径、模块占用、Top 文件和分级建议
Agent 工具 storage_report 在对话中询问 DSH 占用;默认摘要,detail=full 返回完整报告
可解释分类 区分 active、cache、runtime、sessions、unknown,并说明建议原因
安全边界 只读、不联网、不跟随符号链接、硬链接去重、设置页 loopback 接口
统一口径 设置页与 storage_report 共用同一扫描实现

当前版本(package.json 0.1.0)明确为 V1 / 只读版:自动清理功能尚未开启;dsh-runtimes/ 标记为禁止触碰;sessions/ 只展示体积,不提供第二套删除入口。

数据口径与限制

设置页主数字使用物理块大小:

physical bytes = st_blocks × 512
logical bytes  = 所有文件 st_size 之和

物理口径更接近 macOS Finder / du 的实际占用;逻辑口径更接近文件内容总和。报告会同时展示两种口径。

兼容性与扫描行为(摘自 README):

项目 当前支持/默认值
DSH >=0.2.1-rc.3
Node.js >=20
扫描范围 仅 DSH 根目录,不扫工作区或系统其他路径
缓存 默认 5 分钟(cacheTtlMs=300000)
超时 默认 10 秒(timeoutMs=10000);超时返回已扫描部分并标记不完整

当报告 complete 为 false 时,数字是部分结果,不能当作完整盘点。

安装与启用

1、确认 DSH 与 Node.js 版本符合上表。
2、从 npm 安装(README 给出的快速开始命令):

dsh plugin --profile desktop add dsh-storage-inspector

3、重启 DSH。
4、新建会话,询问「DSH 占多少空间?」验证 storage_report。
5、打开 设置 → 存储 查看图形化报告。

卸载:

dsh plugin --profile desktop remove dsh-storage-inspector

开发或自用可从源码用 link: 指向本地绝对路径安装;README 要求「测试先行、明确授权后安装」,不要在未经使用者授权的情况下改写 desktop profile。若 npm 版本尚未同步,可暂时使用 GitHub 仓库配合 link: 方式(路径需替换为本机绝对路径)。

典型用法

设置页

打开 DSH 的 设置 → 存储,可查看总物理占用与总逻辑大小、各模块占用及分类、最大文件榜,以及缓存、活动配置、会话和运行时的分级建议。需要最新结果时,使用「重新扫描」(会带 force=1 绕过缓存)。

Agent 工具

在对话中可以直接问:

DSH 占多少空间?

模型可调用摘要:

{
  "name": "storage_report",
  "arguments": { "detail": "summary" }
}

需要最大文件榜和完整明细时:

{
  "name": "storage_report",
  "arguments": { "detail": "full" }
}

summary 默认不携带最大文件榜,适合日常对话;full 才返回完整明细,避免把大量路径塞进上下文。

安全与隐私(V1)

  • 只读:不删除、不移动、不改名、不写入扫描目录;
  • 本地:只读取 DSH 目录,不联网上传路径或报告;
  • 不跟随符号链接,权限拒绝的条目跳过,不通过提权绕过;
  • 设置页接口只接受本机 loopback 请求;若显示「仅本机可用」,属预期行为,勿通过反向代理或远程端口转发访问。

许可证:MIT(README 与 package.json 一致)。

适用场景与注意

适合长期使用 DSH、需要定期看清 ~/.dsh 占用结构、又希望先「看懂再动手」的桌面用户。插件以当前 DSH 进程权限读取本地目录;安装前应自行查看仓库源码与许可证,确认符合你的安全策略。V1 不提供删除 dsh-runtimes/ 或 sessions/ 的入口;版本计划中 V2 才涉及 dry-run 清理预览等能力,V3 原则是不提供直接永久删除。

结尾

dsh-storage-inspector 把 DSH 本地存储的扫描、双口径展示和可解释建议收到一处,设置页与 storage_report 共用同一扫描器,适合在动手清理前先做一次只读体检。

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

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

Xiaoye