前言¶
在 DeepSeek Harness(DSH)裏,你發給對話的每一張圖、每一個文件,以及工具返回的附件,都會落到本機 ~/.dsh/attachments/v1 下,以內容尋址的方式持久保存。Harness 本身不會回收這些對象:沒有垃圾回收、沒有保留策略、退出 dsh 也不會動這個目錄,容量只會增長。幾段帶 TIFF、PDF 或截圖的對話,就可能佔去數 GB。
更棘手的是,DSH 默認界面不會告訴你「哪段對話佔用了哪些字節」,也不會說明手動刪文件會破壞什麼。dsh-attachment-cache(社區目錄分類:記憶)是維護者 junecattle 提供的側邊欄插件,專門面向 ~/.dsh/attachments 的瀏覽、有說明的刪除,以及整庫遷移。
這是什麼¶
dsh-attachment-cache 是 DeepSeek Harness 的 web profile 側邊欄面板:展示 ~/.dsh/attachments 裏按對話歸類的庫存,支持在刪除前說明影響、批量選擇與無引用對象清掃,並可在 Windows 上把存儲遷到另一塊盤而不丟舊對話引用。插件只讀會話日誌以建立 digest 與對話的映射,不修改 session 日誌,也不調用 DSH 附件服務的內部 API。
存儲佈局(摘自項目說明):規範化圖片在 objects/<sha256>;文件在 file-objects/<sha256>,另有 files/<sha256>/<name> 硬鏈接作爲展示名。可再生的派生緩存在 ~/.dsh/cache/attachments(請求用圖片),與持久化 store 分開處理。
核心功能¶
按對話清點¶
每個已存對象都會映射回引用它的對話,按類別(圖片、文檔、其他)分組,並以所屬消息作爲組標題。面板支持搜索(文件名、擴展名、對話標題)和擴展名過濾(逗號分隔後綴,例如 tif,pdf)。
刪之前先說明¶
選中一行會說明文件是什麼、被多少對話共享,以及刪除後具體會壞什麼。附件是內容尋址的,同一對象可服務多段對話。刪除經確認對話框後,通過 POST /delete 執行,且不可恢復(無回收站)。
| 刪除對象 | 影響 |
|---|---|
| 圖片 object | 所有用過該圖的對話裏該圖不再渲染;文本與工具輸出仍在 |
| 文件 object | 原文件無法在後繼輪次再下載或再讀;files/ 下對應別名一併消失 |
僅 files/<sha>/<name> 別名 |
隻影響該展示名;object 仍可供其他名稱使用 |
~/.dsh/cache/attachments |
無永久損失;請求圖片可按需再生 |
| 無引用 object | 無會話指向,刪除無功能影響 |
批量與無引用清掃¶
支持按組「全選本組」、按當前篩選「全選當前」或逐條點選後一次確認刪除。「無引用」頁單獨列出已無任何會話引用的對象,便於安全回收空間。
派生緩存清理¶
~/.dsh/cache/attachments 可隨時清空;項目將其標爲可再生意,與 attachments/v1 的持久對象區分開。
存儲遷移(Windows)¶
邏輯路徑仍爲 ~/.dsh/attachments/v1,實際字節可放到其他 NTFS 本地卷,通過目錄聯接(junction)對 DSH 透明;引用是內容哈希而非路徑,舊對話仍可解析。
典型步驟:
- 面板中「存儲位置 → 選擇目標文件夾」(例如
D:\dsh-attachments)。 - 選擇模式:移動(校驗 digest 後刪舊副本並建 junction)、保留副本(舊目錄改名爲
v1.backup-<timestamp>)、或切換(指向已有 store,不復制)。 - 後臺顯示進度(files / bytes / phase),面板可關閉再開。
- 還原 可把數據拷回、去掉 junction、恢復普通目錄。
說明:聯接在 Windows 11 + Node 22+ 上測試;store 須在本地 NTFS 卷。派生緩存仍留在 C:。目標盤不可用時,附件讀取會失敗,面板會報告而非靜默。備份工具若不跟隨重解析點,可能看到空目錄。
安裝與啓用¶
要求(資料原文):DeepSeek Harness ≥ 0.2.1,web profile;Node ≥ 20(會話日誌解壓依賴 zlib.zstdDecompress)。瀏覽與刪除跨平臺;存儲遷移面向 Windows 11。
安裝命令:
dsh plugin --profile web add github:junecattle/dsh-attachment-cache
重啓 DSH 後,打開 Settings → Plugins,啓用 Attachment cache manager,再點擊側邊欄的歸檔圖標。後續更新使用同一條 add 命令。
啓用前請自行查看倉庫源碼與 MIT 許可證。插件以當前 dsh 進程權限讀寫 ~/.dsh 下文件;預覽經本機 DSH 已認證的 localhost 路由提供,資料稱不向外上傳。
典型用法:面板區域¶
| 區域 | 作用 |
|---|---|
| 標籤頁 | 全部、圖片、文檔、其他、無引用,各帶實時計數 |
| 搜索 / 擴展名過濾 | 見上文 |
| 全選當前 | 選中當前可見項(含摺疊組) |
| 展開全部 / 收起全部 | 展開或摺疊所有對話卡片 |
| 存儲位置 | 打開遷移對話框 |
| 重新掃描 | 重讀 store 與會話日誌 |
| 刪除選中 | 確認後刪除選中對象 |
懸停文件可見大小、digest、共享次數及刪除後果;點擊可在詳情區固定並預覽 PNG/JPEG/GIF/WebP。
會話日誌路徑(只讀):~/.dsh/sessions/<workspace>/<session>/session.v4.jsonl.zstd(zstd 多幀),用於把 sha256:<digest> 映射到對話。Host 路由掛在 /attachment-cache-manager,由宿主連接圍欄保護。
適用場景與注意¶
適合長期使用 DSH、頻繁貼圖或傳 PDF、又需要看清磁盤佔用並按對話清理的開發者。也適合 Windows 用戶把 attachments/v1 從系統盤遷到大容量盤,同時保留歷史對話裏的附件引用。
不適合指望「裝完自動限流」的場景:Harness 仍不會自帶 GC,本插件是顯式管理工具,刪除永久且需你理解共享 object 的影響。
隱私與邊界:資料寫明一切本地處理。插件不寫入會話日誌,DSH 升級不應通過該插件破壞 store;但若你手動改目錄或使用不識別 junction 的備份策略,仍需自擔風險。
結尾¶
dsh-attachment-cache 把 ~/.dsh/attachments 從「只增不減的黑盒」變成可清點、可說明後果地刪減、並在 Windows 上可遷移的庫存面板,分類落在社區目錄的「記憶」維度,與 DSH「一切皆插件」的生態一致;社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
- 目錄頁:https://www.skillhub.cn/plugins/junecattle/dsh-attachment-cache
- 倉庫:https://github.com/junecattle/dsh-attachment-cache