dsh-turn-scratch:DSH 临时文件隔离与清理插件

前言

DSH 每轮对话都会产生大量临时文件,这些文件堆积在工作区会占用空间,且往往难以分辨用途,误删可能导致数据丢失。手动清理既耗时又容易出错。dsh-turn-scratch 插件旨在解决这一问题,通过自动隔离和清理机制,保持工作区的整洁与安全。

介绍

dsh-turn-scratch 是一款由 popujiang 维护的 DSH 插件,专注于管理 DSH 每轮产生的多余临时文件。它的核心逻辑是将临时文件从工作区移出,进行隔离存储,待确认后再进行清理,从而避免文件混入工作区。

核心功能

该插件主要提供以下能力:

  • 隔离回合产生的临时文件:默认不直接删除文件,而是将其先移入隔离区。
  • 跨盘安全搬运:当工作区与隔离区不在同一块盘时,插件会通过“复制 → 校验文件数与字节数 → 落库 → 删原件”的流程,确保任何时候崩溃都不会丢失原件。
  • 暂存区机制:提供一个暂存区(workDir),让中间产物先写入此处,保持工作区从一开始就是干净的。
  • 手动还原与清理工具:提供一系列命令,允许用户查看状态、手动还原文件、标记文件以便收走或彻底清理隔离区。

安装与启用

安装该插件需要使用官方提供的命令。请在终端中执行以下指令:

dsh plugin --profile desktop add "git+https://github.com/popujiang/dsh-turn-scratch.git#v0.3.1"

配置项

安装后,可以通过修改 profile 下的 cordis.patch.yml 文件来调整插件行为。

  1. 指定隔离存储路径(加速跨盘搬运):
    默认情况下,隔离区可能位于不同的磁盘,移动速度较慢。如果需要加速,可以将 storeRoot 指向与工作区同盘的路径。
    turn-scratch:
      config:
        storeRoot: "D:/.dsh-turn-scratch"
  1. 关闭暂存区:
    如果不需要保持工作区全程干净,可以将 workDir 设置为空字符串,插件将恢复为直接在工作区操作,但在回合结束时依然会执行隔离清理。
    turn-scratch:
      config:
        workDir: ""

常用命令

插件提供了一组工具命令,用于管理隔离区:

  • scratch_status:查看当前的隔离状态,包括扣留了哪些文件以及已还原的文件。
  • scratch_restore:手动将隔离区中的文件还原回工作区。
  • scratch_purge:清空隔离区,这将执行真正的删除操作。
  • scratch_mark:标记特定的文件为“可收走”状态,以便在回合结束时被处理。
  • scratch_workdir:获取暂存区的路径,适合在长对话中让中间产物写入此处。

安全与注意事项

  • 默认安全策略:插件默认只隔离文件,不进行删除。只有通过 scratch_purge 手动清空隔离区,文件才会真正从磁盘消失。
  • 权限限制:由于模型权限受限,它只能执行还原操作,无法执行删除操作。文件的最终生杀大权掌握在用户手中。
  • 兼容性:该插件需要 DSH 版本 >=0.1.1-rc.2。

总结

dsh-turn-scratch 通过将临时文件隔离到专门目录,解决了 DSH 工作区混乱的问题。其默认的安全策略(先隔离后删除)和跨盘安全搬运机制,降低了误删数据的风险。对于希望保持工作环境整洁的开发者来说,这是一个实用的工具。

插件详情请查阅:catalog_url
源码地址:github_url

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

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

小夜