DSH 的使用場景中,編輯一條已發出的消息,或使用 DSH 自帶的「在新對話中分支」按鈕,都會產生新的會話版本。如果任由這些版本散落在側欄,會話列表會迅速膨脹。dsh-tree-view 插件通過樹形視圖,將同一家族的對話版本組織起來,保持側欄整潔。
插件定位爲樹形會話分支視圖。由 Rice00 維護,基於 MIT 許可證。它允許用戶在側欄的單一入口中切換不同的對話版本、重命名分支,並將分支提升爲正式會話。
安裝與啓用¶
在終端執行以下命令安裝:
dsh plugin --profile web add dsh-tree-view
安裝後,需重啓 profile 或刷新瀏覽器以使插件生效。
核心功能¶
-
樹形分支展示
插件會自動捕獲編輯消息或使用分支按鈕產生的會話。在會話面板切換到 Tree 標籤頁,可以看到以“主幹”起始的分支圖。每個節點代表一個會話版本。 -
視圖導航與定位
- 點擊跳轉:點擊樹上的節點,會話會切換到該版本,並定位到對應的消息輪次。
- “你在這裏”標記:當前閱讀的節點旁有一個小三角,指示當前所在位置。刷新頁面或重新進入 Tree 視圖,位置記憶依然保留。
- 路徑高亮:當前正在閱讀的整條路徑(包括共用的開頭)會在樹上高亮顯示。
- 多線並行:右鍵點擊節點選擇「放到主對話」,可以將多個版本同時打開到側欄,互不干擾。
-
視圖管理
- 一鍵收起:工具欄的「收起其它分支」會將側欄中該家族的其他版本全部收進樹中。
- 長段摺疊:連續且沒有分叉的輪次達到設定長度(默認 8 輪)會自動摺疊,保持視圖整潔。
- 記住位置:離開 Tree 視圖再回來時,會保持上次的平移與縮放狀態。
- 隱藏空副本:只複製了對話但沒有產生新回覆的 Fork 不會在樹中顯示。
-
分支管理
- 重命名:右鍵節點可重命名分支。
- 版本環切換:在氣泡下方通過
‹ n/m ›切換版本。 - 歸檔處理:被歸檔的分支不會從樹上消失,只是變暗並標記爲“已歸檔”。歸檔操作僅改變側欄的顯示,不刪除數據。
使用示例¶
- 編輯分支:編輯一條已經發出的消息,新的版本會自動出現在樹中。
- 切換版本:在 Tree 標籤頁中,點擊不同的節點即可切換到該版本繼續對話。
- 重命名與提升:右鍵節點,可以重命名該分支,或將其“放到主對話”使其成爲獨立的側欄會話。
數據安全與原理¶
- 數據安全:插件是
dsh-plugin-message-edit的 fork。插件唯一觸碰數據的地方是“歸檔”開關。它不會刪除、複製或改寫會話內容。 - 卸載影響:卸載插件後,所有會話數據依然保留在 DSH 中,側欄的會話條目不會丟失。
- 依賴關係:插件依賴 DSH 的會話日誌結構,與上游插件可以並存,但不依賴上游插件運行。
設置¶
在 DSH 設置中,TreeView 提供以下配置項:
- 消息操作樣式:選擇 DeepSeek / ChatGPT / Claude 三種按鈕佈局。
- 接着上次閱讀:默認關閉。開啓後,從別的會話回到這個家族時,會自動跳轉到上次閱讀的版本。
- 摺疊閾值:設置長段摺疊的輪次上限(如 5、8、12、20 輪)。
- 不畫空副本:控制是否顯示沒有新內容的分支副本。
該插件適合需要頻繁編輯對話、進行版本對比或多線並行開發的用戶。