Repository navigation
Releases
Releases · jamesct/dsh-file-manager
v0.2.0 — 首个公开版本
给 DSH(DeepSeek Harness)Web 侧栏文件树补一整套文件管理能力。首个公开版本。
功能
- 下载:单文件下载;文件夹 / 当前根 / 多选打包成 ZIP(大文件走
showSaveFilePicker,带进度、可取消) - 删除:软删进
<trash_dirname>/(默认.dsh-trash,镜像原目录结构,不看元数据也能看出出处),二次确认写明保留期 - 回收站:任意深度都能「恢复 / 彻底删除 / 移动到…」;工具栏可清空回收站;到期由宿主自动清理(可关)
- 重命名、新建文件夹、复制 / 移动(同一个入口,弹窗里选动作;复制回同一目录即"原地另存一份")
- 多选批量:删除 / 下载 / 移动 / 复制 / 恢复 / 彻底删除
- 行内显示大小与修改时间(绝对时间;显示哪些可配置)
- 跨工作区:移动 / 复制 / 新建可以选到其它已注册工作区(可关掉,关掉后只在当前工作区内操作)
- 配置页:侧栏「插件」→ 本插件卡片。配置真源仍是
<DSH_HOME>/file-manager.yml,保存即生效、不用重启 - 操作审计日志:
trash / restore / purge / move / copy / rename / mkdir / empty-trash / auto-cleanup / settings逐条写进<DSH_HOME>/file-manager.log(JSONL,超 4 MiB 轮转)——用来回答"这条不见了,是我删的还是自动清的"
安全设计
- 绝不覆盖:重名一律给"搬过去 / 复制过去的那一份"加时间戳后缀;从回收站恢复遇到同名文件夹则递归合并(同名项仍加后缀)
- 只操作配置里点名的目录(
manage或已注册工作区),可用disable排除.git/node_modules之类 - 递归删除绝不跟随符号链接;复制按链接重建
- 它是防误删工具,不是权限边界(详见 README「安全边界」)
安装
# ① 直接用这个仓库
dsh plugin add https://github.com/jamesct/dsh-file-manager
# ② 用 Release 里的 tgz
dsh plugin add ./dsh-file-manager-0.2.0.tgz
# ③ 手工:拷进某个 profile 的 node_modules,并在它的 dsh.profile.bundles 里登记宿主半改动要重启 dsh 才生效;只改客户端半刷新页面即可。配置格式见 deploy/file-manager.yml.example。
测试
npm test → 宿主半 322 条 + 客户端半 239 条,全绿(都是真文件系统 / 真 DOM 桩,直接加载 lib/ 源码)。
许可
MIT © 2026 jamesct。下载 / 打包 ZIP 部分移植自社区插件
dsh-file-download(MIT © 2026 Aghasi Lorsabyan),
完整版权与许可全文见 THIRD-PARTY-NOTICES.md。