前言¶
DeepSeek Harness (DSH) 的會話日誌存儲在 $DSH_HOME/sessions/ 目錄下,文件格式爲多幀 Zstandard 壓縮的 JSONL。在實際開發中,存在兩個痛點:一是 GUI 界面沒有直接複製會話路徑的入口;二是日誌文件是容器格式,直接讀取會失敗。dsh-session-path 插件旨在解決這兩個問題,它爲會話添加了路徑複製功能,並提供了將日誌轉換成可讀文件的工具。
安裝¶
通過 npm 安裝插件到指定 profile:
dsh plugin --profile desktop add dsh-session-path
核心功能¶
插件主要提供三個維度的能力:GUI 交互、只讀工具、讀寫工具。
- GUI 交互:在會話標題欄添加複製按鈕,在側欄菜單添加複製路徑選項。
- 只讀工具 (
session_path):提供工具讀取會話路徑信息,不涉及磁盤寫入。 - 讀寫工具 (
session_handoff):生成可讀的交接文件,支持 Zstandard 多幀日誌解析。
使用方法¶
1. GUI 複製¶
- 當前會話:點擊會話標題欄右側的 ⧉ 按鈕,會將接續塊(包含標題、ID、工作目錄、日誌路徑)複製到剪貼板。
- 任意會話:在側欄會話行點擊右鍵,菜單最後一項爲「複製會話路徑」。無需打開該會話即可獲取路徑。
2. 命令行工具¶
-
讀取路徑 (
session_path)獲取會話路徑和基礎信息,僅讀操作。
// 獲取當前會話的接續塊格式路徑
session_path({ format: "block" })
// 獲取當前會話的裸路徑
session_path({ format: "path" })
-
生成交接文件 (
session_handoff)將會話日誌渲染爲可讀文件,並寫入指定目錄(默認
$DSH_HOME/session-handoff)。
// 生成 Markdown 格式交接文件
session_handoff({ sessionId: "xxx", format: "md" })
// 生成原始 JSONL 格式文件,限制字符數
session_handoff({ format: "jsonl", maxChars: 50000 })
輸出文件會自動截斷超出 `maxChars` 的部分,保留最近內容,適合作爲後續會話的上下文。
技術細節與注意事項¶
- 內存效率:插件在解析 Zstandard 日誌時,不將全文解壓到內存,而是按幀掃描,一次只持有單幀數據。
- 寫入安全:
session_path工具和 HTTP 路由均爲只讀;僅session_handoff會寫盤,且僅寫入配置的handoffDir。 - 訪問控制:HTTP 路由帶有信任圍欄,僅允許
loopback或顯式trusted host訪問,拒絕跨站請求。 - 文件保留:交接文件按字符預算保留最近部分,尾部上下文對接續任務最有價值。
總結¶
該插件通過 GUI 按鈕和命令行工具,補全了 DSH 會話路徑的獲取與日誌讀取能力,特別適合需要在多會話間進行上下文接力或日誌分析的智能體開發場景。