Перейти к основному содержимому
Z

dsh-storage-monitor

zixiaog/dsh-storage-monitor

DSH 存储空间监测与清理插件:分类统计插件、缓存、会话、附件与工作区占用,图表展示,安全清理,会话彻底删除与回收站,支持把 DSH 数据目录迁移到其它磁盘并保留原路径映射。

Установка

dsh plugin --profile web add github:zixiaog/dsh-storage-monitor

README

dsh-storage-monitor

license npm platform DSH check

DeepSeek Harness(DSH)的存储空间监测、清理与路径迁移插件。

它把散落在 DSH_HOME 里的会话日志、附件、缓存、插件包、运行时、插件数据和工作区项目 统计成一份可读的报告,用图表展示,并给出可执行的清理建议;同时支持彻底删除会话 (带回收站)和把 DSH 数据目录迁移到其它磁盘并在原路径保留 Junction 映射。

面向 DSH Desktop。路径迁移/窗口映射相关功能仅支持 Windows;统计与清理功能是纯 Node 实现,但当前插件按 DSH Desktop 的 Web UI 形态分发。


功能

  • 分类统计:会话日志、附件、缓存、存储索引、插件目录、已安装插件包、运行时、 插件数据、日志配置、回收站,共 10 类;工作区项目文件单独统计。
  • 图表展示:分类环形图、Top 会话条形图、占用构成堆叠条、KPI 卡片。
  • 清理建议:按「安全 / 谨慎 / 不要动」分级;缓存、回收站、孤立投影缓存、孤儿附件可一键清理。
  • 会话管理:搜索/筛选/批量删除;默认移入回收站,可恢复;永久删除需二次确认; 删除时按引用关系只删除仅属于该会话的附件,共享附件保留。
  • 路径迁移:把 DSH_HOME(含 profile)迁到其它磁盘,原路径改成 Windows Junction; 支持在线预拷贝、生成切换/回滚脚本,以及一键智能迁移:独立控制台自动关闭 DSH、 同步、建映射、验证、删旧目录并重启 DSH。
  • 迁移验证:重启后对比迁移前快照(会话数、插件包数、目标路径、写探针)。
  • 页面:DSH Web UI 原生插槽页面,跟随主题明暗,六个模块: 概览 / 分类 / 会话 / 建议 / 迁移 / 回收站。

界面截图:本仓库暂未内置截图。运行插件后可在左侧栏打开「存储空间」。


安全提示(务必阅读)

  • 删除会话默认进回收站,永久删除不可恢复;删除前请确认当前会话不在运行中。
  • 路径迁移涉及重命名 DSH 数据目录与创建 Junction。迁移控制台会在约 5 秒后关闭 DSH; 请先保存工作,并保持控制台窗口打开,直到看到 DONE。
  • 一键迁移不是 100% 优雅关闭:脚本先尝试关闭 DSH 窗口,超时后才强制结束宿主进程; 不要在对话/任务正在执行时启动迁移。
  • 迁移脚本默认在验证映射成功后删除旧目录以释放空间;想保留退路可勾选「保留旧目录备份」。
  • 本插件不做任何网络请求,数据只留在本机;但删除/迁移属于高危操作,请自行做好备份。

环境要求

项目要求
DSHDesktop 0.2.x(Web UI 可用)
操作系统Windows 10/11(路径迁移依赖 NTFS Junction);统计/清理代码本身不绑定平台
Node.js仅开发/校验需要,>= 22.12
运行时依赖无。Host 只使用 Node 内置模块与 DSH 提供的服务

安装

在另一台电脑上安装时,推荐方式 A(npm)或方式 B(GitHub),都不需要手动构建。

方式 A:从 npm 安装(推荐)

包名:dsh-storage-monitor · npm 页面:https://www.npmjs.com/package/dsh-storage-monitor

  1. 打开 DSH Desktop → 左侧栏 **Plugins(插件)**页面;

  2. 点安装 / Add bundle,输入 npm 包名:

    dsh-storage-monitor
    

    或指定版本:

    dsh-storage-monitor@0.1.10
    
  3. 安装完成后启用 dsh-storage-monitor bundle,刷新 DSH Web 页面;

  4. 左侧栏出现「存储空间」入口。

也可以直接对 DSH 的 agent 说:

安装插件 bundle:dsh-storage-monitor

agent 会调用 plugin_manager install_bundle(需要 danger-full-access 或逐次批准)。

国内网络如果访问 npm 官方 registry 慢,可让 DSH/pnpm 使用镜像(例如 https://registry.npmmirror.com/);镜像同步新发布的包可能有延迟。

方式 B:直接从 GitHub 安装

  1. 打开 DSH Desktop → **Plugins(插件)**页面;

  2. 点安装 / Add bundle,选择从 Git / URL 安装,填入:

    https://github.com/zixiaog/dsh-storage-monitor.git
    
  3. 安装完成后启用 dsh-storage-monitor bundle,刷新 DSH Web 页面;

  4. 左侧栏出现「存储空间」入口。

也可以直接对 DSH 的 agent 说:

安装插件 bundle:https://github.com/zixiaog/dsh-storage-monitor.git

如果 GitHub 访问慢或超时,先在系统/终端里配置好代理再安装;也可以改用方式 C 下载 ZIP。

方式 C:从本地目录安装

  1. 克隆或下载本仓库到本机:

    git clone https://github.com/zixiaog/dsh-storage-monitor.git
    

    或在 GitHub 页面 Code → Download ZIP 后解压。

  2. 在 DSH 插件页使用从本地目录安装,选择该目录; 或让 agent 执行:

    plugin_manager install_bundle  target = <本仓库绝对路径>
    
  3. 启用 bundle,刷新 DSH Web 页面,左侧栏出现「存储空间」入口。

卸载时在插件管理页移除 bundle 即可;本插件不会写入 profile 配置, 只会在 <DSH_HOME>/storage-monitor/ 下保留回收站与迁移脚本。

路径迁移/一键迁移依赖 Windows NTFS Junction,仅 Windows 支持; 统计、清理、会话管理功能本身是纯 Node 实现。


使用

打开 存储空间,顶部六个页签:

概览 / 分类

看总占用、可安全清理空间、分类占比与最大会话;分类页可展开每类的子项。

会话

搜索、按「空会话 / 90 天未用 / 已归档 / 已固定 / 运行中」筛选,批量选择后删除。 开启「深度扫描」后会读取会话日志,显示每个会话独占的附件占用。

建议

安全项可一键执行:清空回收站、清缓存、清孤立投影缓存、清孤儿附件。 风险项会跳转到会话筛选,由你决定。

回收站

恢复或永久删除已删除的会话。

迁移

三个子页签:

  • 一键迁移(推荐)
    1. 选择源目录(推荐「DSH 数据目录」);
    2. 选择目标目录并校验;
    3. 选择「自动重启 DSH」「保留旧目录备份」,点击「生成并启动迁移控制台」;
    4. 独立控制台显示倒计时与进度,自动完成关闭 DSH → 同步 → 建 Junction → 验证 →(默认)删除旧目录 → 重启 DSH;
    5. 重启后回到「映射状态」查看迁移验证。
  • 手动模式:预拷贝 → 生成脚本 → 退出 DSH 后自己运行脚本。
  • 映射状态:已映射路径的目标、回滚脚本入口与验证结果。

迁移前请确认:

  • 目标目录在另一块固定磁盘上、为空、剩余空间 ≥ 数据量 × 1.05 + 200MB;
  • 不要把目标放在移动硬盘/U 盘(盘未连接时 DSH 会打不开);
  • 迁移完成后原路径仍然是 C:\Users\<user>\.dsh,只是变成了 Junction。

v0.1.11+:跨盘迁移后插件安装/卸载报 ERR_PNPM_UNEXPECTED_STORE 或 ERR_PNPM_UNEXPECTED_VIRTUAL_STORE,多半是 node_modules/.modules.yaml 里的 storeDir / virtualStoreDir 还指向旧盘。打开 迁移 → 映射状态 → pnpm 依赖存储, 点击「修复 pnpm 记录」即可:插件会先把 profile 解析为真实路径(避免 Junction 逻辑 路径把期望值算回旧盘),优先读取最近一次插件管理器失败日志里 DSH 实际使用的路径, 一次修正 storeDir 与 virtualStoreDir 并自动备份,不重装依赖。一键迁移/回滚的 控制台脚本同样按真实路径执行修复与 pnpm install --force 重链;重链失败不阻塞重启, 并会打印手动命令。

只迁移「DSH 数据目录」时,profile 位于该目录内部,会随父目录的 Junction 一起映射, 不需要也不会单独创建 profile Junction;「映射状态」会显示「随数据目录映射」。

Agent 工具

同时注册 storage_inspect 工具,可让 agent 查询报告、删除会话、管理回收站、 清理缓存/孤儿附件;迁移相关操作不暴露给 agent。


工作原理(简版)

flowchart LR
  A[DSH Web UI<br/>存储空间页面] -->|GET/POST /storage-monitor/api| B[Host 插件]
  B --> C[文件系统统计<br/>sessions / attachments / cache / plugins]
  B --> D[DSH 服务<br/>sessionPersistence / workspaceRegistry / sessions]
  B --> E[会话删除<br/>回收站 + 附件引用核对]
  B --> F[路径迁移<br/>预拷贝 + 控制台脚本 + Junction]
  A -->|main / sidebar.panellist| G[DSH Web 插槽]

完整设计、数据来源、安全边界、验证记录见 docs/DESIGN.md。


开发

无构建步骤:Host 为 ESM,Client 为 window.__ModuleLoader__ 动态模块。 本地修改后重新安装/重载插件并刷新页面即可。

npm test        # node scripts/check.mjs:语法、JSON、清单一致性检查

贡献指南、代码结构与测试清单见 CONTRIBUTING.md。


兼容性

  • 针对 DSH 0.2.2-rc.1 的 Web UI 与服务编写;
  • 会话格式 v4(session.v4.jsonl.zstd)、附件 attachments/v1、投影缓存 storages/session_projcache、工作区注册表 storages/workspace.json;
  • DSH 升级后如果这些内部路径或服务契约变化,插件可能需要同步调整。

许可证

MIT © 2026 zixiaog

Похожие плагины