前言¶
在 dsh Web GUI 中,一個會話通常屬於當前工作區。若希望把已有上下文帶到另一個工作區繼續處理,手動複製日誌、標題、Agent 預設和模型選擇容易遺漏。下面介紹的 hucj09/dsh-move-session 是 dsh Web GUI 插件,用於把當前空閒會話複製到另一個工作區,並保留完整上下文。
這是什麼¶
hucj09/dsh-move-session 是 dsh Web GUI 的跨工作區會話遷移插件,倉庫 owner 爲 hucj09,許可證爲 MIT。
它不修改 dsh 源碼,使用零依賴純 JavaScript,源碼即產物。插件會在 dsh Web GUI 中新增會話遷移入口:會話頭部操作行提供 Move Session 按鈕,側邊欄會話行「…」菜單可注入「遷移會話」項。
核心功能¶
下面只列已覈實的插件能力:
- 在 dsh Web GUI 會話頭部操作行新增
Move Session按鈕。 - 側邊欄會話行「…」菜單可注入「遷移會話」項。
- 將當前會話原封不動複製到另一個工作區,保留對話日誌、標題、Agent 預設和模型選擇。
- 支持「保留原會話」或「歸檔原會話」兩種模式。
- 僅支持空閒會話遷移;運行中會話會被客戶端禁用,並由宿主端拒絕。
- 遷移後通過 host 事件觸發側邊欄跨端自動刷新。
- 副本繼承源會話的模型與 Agent 預設,並保留
parentSession血緣信息。 - 使用新會話 id 複製,不覆蓋、不刪除現有會話記錄。
- 目標工作區存在同名會話時,自動追加
[MS<n>]區分。 - 零依賴純 JavaScript,源碼即產物,不修改 dsh 源碼。
安裝與啓用¶
安裝命令如下:
dsh plugin --profile web add @hucj/dsh-move-session
執行安裝後,重啓 dsh web,並在瀏覽器中用 Ctrl+F5 強刷頁面。打開任意會話後,如果會話頭部操作行出現 Move Session 或「遷移會話」入口,即表示插件已啓用。
典型用法¶
1、打開一個空閒會話。
2、點擊會話頭部操作行的 Move Session 按鈕,或從側邊欄會話行「…」菜單選擇「遷移會話」。
3、選擇目標工作區。列表會排除當前工作區,並顯示路徑與會話數。
4、選擇「保留原會話」或「歸檔原會話」。
5、確認後側邊欄即時更新,並可打開遷移後的會話。
適用場景與注意¶
這個插件適合在多個 dsh 工作區之間複用同一會話上下文,例如把一個已整理好的會話作爲另一個工作區的起點。
使用前建議注意以下邊界:
- 插件會在 dsh Web GUI 中運行,安裝前應檢查源碼與 MIT 許可證;運行時應視爲以當前 dsh 進程權限使用宿主能力。
- 僅空閒會話可遷移;運行中會話會被客戶端禁用,並由宿主端拒絕。
- 遷移要求源日誌平衡;異常中斷且未修復的日誌可能被拒絕。
- 會話 id 會變化。副本使用新會話 id,血緣通過
parentSession保留。 - 副本會以 live 空閒 agent 形式駐留內存,不隨本插件卸載。
- 遷移只複製會話日誌,附件/文件本身不受影響。
- 「歸檔原會話」屬於 registry 級全局歸檔集合;本插件不提供取消歸檔入口。
- 宿主需已組裝
@deepseek-ai/dsh-client-runtime等標準 web 運行時。
鏈接¶
- 插件目錄頁:https://www.skillhub.cn/plugins/hucj09/dsh-move-session
- GitHub 倉庫:https://github.com/hucj09/dsh-move-session