dsh-archive-favorites-forge:在官方歸檔之上擴展收藏、複製與批量歸檔

前言

DeepSeek Harness(DSH)自帶會話歸檔:Workspace 註冊表維護全局 archivedSessionIds,客戶端側欄與「篩選會話」視圖選項會據此展示已歸檔對話。官方能力刻意不包含收藏、單條永久刪除、複製會話 ID 與轉錄路徑,也沒有按閒置時長批量歸檔;已歸檔對話也無法直接打開,需先取消歸檔。

側欄對話一多,想標記常看的會話、清理長期不用的記錄、或把 ID 與文件路徑交給腳本處理,往往要在文件系統與 UI 之間來回切換。dsh-archive-favorites-forge 通過文檔化的客戶端插槽掛接在現有歸檔 UI 之上,不修改官方源碼,爲對話增加收藏、複製、刪除、超時批量歸檔與收藏篩選等能力。

這是什麼

dsh-archive-favorites-forge 是維護者 loyalchiiina 發佈的 客戶端 類 DSH 插件(npm 包名 dsh-archive-favorites-forge,當前版本 0.24.4,MIT 許可證)。它在官方已實現的歸檔能力上做 additive slot extensions:host 半部(lib/index.js)負責收藏持久化、路徑解析、JSON 路由與帶護欄的刪除/歸檔;client 半部(lib/client.js)向官方插槽註冊菜單項、設置頁與行內操作。插件不寫入任何官方文件。

核心功能

下面按 UI 位置歸納 README 中已說明的能力。

側欄會話行與「…」菜單

  1. 收藏對話:已歸檔或未歸檔均可收藏;「…」菜單項與行內懸停 ☆,星標樂觀更新。
  2. 複製 ID + 路徑:菜單一鍵複製會話 ID 與轉錄文件絕對路徑(兩行文本)。
  3. 單條永久刪除:非收藏對話可永久刪除,需二次確認;成功後側欄行立即移除(host 發出 api-session/removed)。

收藏集合寫入 host 側文件,而非渲染進程 localStorage(多 origin 會各存一份)。路徑爲:

~/.dsh/data/dsh-archive-favorites-forge/favorites.json

視圖選項 → 篩選會話

在官方「篩選會話」組中增加兩行:僅顯示收藏(已歸檔)、僅顯示收藏(未歸檔)。該菜單無官方插槽,插件通過 role / aria / data-row-key 定位官方篩選項並克隆一行,不依賴 CSS module 哈希。

設置 → 歸檔收藏

  1. 超時批量歸檔:將閒置超過 N 小時的未歸檔對話一次性歸檔,可撤回。
  2. 導出清單:製表符分隔的 txt,字段含對話名稱、對話 ID、所屬工作區、閒置時長、最後活動時間;可複製路徑或在文件管理器中打開所在文件夾。
  3. 收藏列表:展示收藏及歸檔狀態。
  4. 批量刪除:永久刪除「已歸檔且未收藏」的對話。

刪除護欄(host 側)

本代 Harness 無官方 session-delete RPC;刪除即移除 ~/.dsh/sessions/ 下對應 artifact 目錄,不可恢復。host 在刪除前檢查:

  • 已收藏 ID 直接拒絕;
  • 解析路徑超出 sessions 根目錄拒絕;
  • 符號鏈接拒絕;
  • sessions 根目錄本身拒絕;
  • 單次請求受 maxDeletePerCall 上限約束。

每條 ID 單獨報告,一條失敗不中斷整批。

其他說明(來自 README Notes):會話 ID 形式爲 session-<uuid>,舊目錄可能爲 <uuid> 或 session-<uuid>,插件經 normaliser 與 resolver 兼容;空白 provisional 會話不參與閒置池與批量刪除;候選列表與側欄實際展示交集,無 cwd 的已歸檔會話不計入。

安裝與啓用

安裝命令(README 原文):

dsh plugin --profile <profile> add dsh-archive-favorites-forge

將 <profile> 換成你的 DSH profile 名稱。安裝後 完全退出並重新打開 DSH;本代 host 半部無 watcher,客戶端 bundle 在啓動時快照,僅刷新頁面 不會 加載新版本。

可選配置(寫入插件 config):

鍵 默認值 含義
enabled true host 路由總開關
maxDeletePerCall 500 單次刪除請求硬上限

示例:

- id: dsh-archive-favorites-forge
  config:
    maxDeletePerCall: 200

peer 依賴表明插件面向 @deepseek-ai/dsh 的 >=0.1.7-rc.1 <0.2.0-0 || >=0.2.0-rc.1 範圍;README 徽章標註 DSH ≥ 0.2.0-rc.2。

典型用法

  1. 標記常看對話:在側欄行懸停點擊 ☆,或打開「…」選擇收藏;需要精讀已歸檔收藏時,用「視圖選項 → 篩選會話 → 僅顯示收藏(已歸檔)」縮小列表,再按需取消歸檔後打開(已歸檔無法打開是官方行爲)。
  2. 對接腳本或排錯:在「…」選複製 ID + 路徑,將 session id 與轉錄絕對路徑粘貼到終端或腳本。
  3. 清理閒置會話:打開 設置 → 歸檔收藏,配置閒置小時數後執行超時批量歸檔;確認無誤後可導出 txt 清單留檔,或對「已歸檔且未收藏」項使用批量刪除;單條清理可用「…」中的永久刪除(收藏項會被 host 拒絕)。
  4. 控制刪除規模:若單次清理量很大,在 config 中調低 maxDeletePerCall,分多次執行批量刪除。

適用場景與注意

適合誰:長期在 DSH 中積累大量 Workspace 對話、需要收藏標記、路徑導出、閒置歸檔與可控刪除的開發者;希望擴展官方歸檔而不 fork 客戶端 UI 的用戶。

權限與安全:插件以當前 DSH 進程權限運行,刪除操作直接作用於 ~/.dsh/sessions/ 下目錄,不涉及項目工作區,但轉錄與會話數據會永久丟失。安裝前請閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認行爲符合預期。

生態說明:DSH 社區插件目錄託管於獨立站點(如 SkillHub),與 DeepSeek / 幻方無官方從屬關係;本文描述的能力均來自插件 README 與 package 元數據,使用前請以倉庫最新文檔爲準。

鏈接

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

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

小夜