前言¶
需要把 DeepSeek Harness 的對話遷移到另一臺電腦、另一個部署環境,或者新建一個工作區?DSH 自帶的 /export 命令會生成 .zip 歸檔和 .l 日誌文件,但直接導入往往會導致會話 ID 衝突、數據覆蓋,或者在解析中途報錯。
dsh-session-import 插件爲 DSH Web 界面增加了會話導入功能。它讀取並校驗導出文件,將內容作爲新會話恢復,同時支持選擇性同步狀態、回滾保護以及 SHA-256 校驗。
核心功能¶
界面與交互
* 在 new-session 頁面添加「Import conversation」按鈕,支持文件選擇和拖放。
* 導入前提供預覽,顯示標題、消息數、工具活動、回合數、原始工作區、模型和會話狀態。
* 在瀏覽器端處理請求取消、焦點恢復和響應式佈局。
校驗與安全
* 支持 .zip 歸檔和 DSH /export 生成的 .l 日誌。
* 顯示 SHA-256 指紋,並可強制要求與 expectedHash 匹配。
* 校驗 ZIP 文件的 CRC-32、中心目錄元數據、條目邊界和本地頭名稱,拒絕加密、多磁盤和 ZIP64 格式。
* 在持久化、工作區附加或加載驗證失敗時自動回滾,避免遺留損壞的會話。
導入與同步
* 始終分配新的會話 ID,絕不覆蓋現有會話。
* 支持設置目標工作區、自定義標題、原始時間戳或重置爲當前時間。
* 提供無副作用(dryRun=1)的驗證模式和立即恢復(open=1)模式。
* 支持選擇性同步模型、推理努力、代理預設、權限、沙箱、審批策略和計劃模式。
安裝與啓用¶
安裝前請確保環境已安裝 Node.js(推薦 24 或 22.19.x)、Git 和 pnpm。網絡需能訪問 registry.npmjs.org 和 github.com。
推薦使用 npx 方式安裝(無需 DSH 源碼):
npx --yes -p @deepseek-ai/dsh dsh plugin --profile web add github:JuneLearn/dsh-session-import
安裝完成後,啓動 Web 端即可在新建會話頁面看到「Import conversation」按鈕。
使用步驟¶
- 打開 DSH Web,在左側邊欄頂部點擊
New session。 - 在工作區控制上方找到工作區和模式控件,點擊
Standard mode右側的Import conversation。 - 選擇或拖放由 DSH
/export生成的.zip或.l文件。 - 檢查結構裁決、SHA-256、計數、原始工作區和可同步狀態。
- 選擇目標工作區,並根據需要調整標題、重標記和同步選項。
- 點擊
Start import,新會話會出現在側邊欄並自動打開。
注意事項與限制¶
- 文件大小限制:上傳和解壓的根會話日誌限制爲 256 MB。
- 條目數量限制:單個 ZIP 最多包含 10,000 個條目,展開的根日誌最多包含 1,000,000 個事件。
- 驗證範圍:結構驗證覆蓋事件序列、時間、類型、引用、回合/步驟和工具調用配對、消息信封、
surfaceOp和sourceEventSeqs。 - Hash 簽名:SHA-256 證明與提供的指紋相等,但 DSH 導出未經過數字簽名,因此不證明作者身份。
- 權限與數據:上傳的文件在內存中本地解析,絕不發送到外部服務;插件不發起出站網絡請求,也不訪問 API 密鑰或其他憑證。
- 刪除限制:刪除權限僅保留給當前 DSH 進程,導入的會話在重啓後繼續工作,但不能再通過插件回滾端點刪除。
結尾¶
dsh-session-import 提供了一個安全、可控的會話遷移方案,適合需要備份、跨環境復現或整理歷史對話的開發者。更多細節可參考 GitHub 倉庫 或 社區目錄。