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

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

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

小夜