dsh-open-artifacts:從會話日誌算出產物目錄並直接打開

前言

DeepSeek Harness(DSH)的會話日誌裏記錄了工具調用的路徑信息,但現有插件打開的往往是工作區根目錄,而不是「這個對話真正寫過東西的地方」。同一個工作區下幾十個對話,根目錄裏散落着各種文件,打開它等於沒打開。本插件通過解析會話日誌,推導出每個對話的產物目錄,再從側邊欄菜單和標題欄直接打開。

插件定位

  • 名稱:dsh-open-artifacts
  • 維護者:wuuuuu123-32
  • 分類:記憶
  • 核心價值:根據會話日誌算出對話的產物目錄,用資源管理器直接打開,避免手動翻找。

安裝與啓用

使用官方安裝命令:

dsh plugin --profile desktop add github:wuuuuu123-32/dsh-open-artifacts

安裝後必須重啓 DSH,新增的插槽項不會熱加載。升級時可在市場插件頁點「更新」,或重跑上述命令。

核心功能

打開產物目錄

側邊欄會話行的「⋯」菜單和對話標題旁各有一個入口。點擊後,插件會:

  1. 讀取該會話的日誌(~/.dsh/sessions/<工作區編碼>/<會話 id>/session.v4.jsonl.zstd);
  2. 解壓並解析日誌,提取寫入類工具調用(write / edit / str_replace_editor)與 present 聲明的路徑;
  3. 按「頂層目錄」歸類,區分工作區內外的產出;
  4. 在工作區根目錄的散文件(如 AGENTS.md、升級日誌.md)單獨列出;
  5. 對 Blender 產物(默認 E:\AgentArtifacts\blender)按時間窗口推斷目錄。

結果爲一個列表或直接打開。行爲如下:

  • 只有 1 個產物目錄:直接打開,不彈窗;
  • 有多個:彈列表,顯示目錄名、文件數、完整路徑;
  • 沒有產物:提示「沒有找到產物」,並提供「打開 Blender 產物目錄」/「打開工作區根目錄」兩個兜底按鈕;
  • 想新建:彈窗頁腳有「新建產物目錄」,輸入名字後在工作區下創建並打開(預填從標題提取的候選名)。

產物目錄守門

爲落實「一個對話一個產物目錄」的約定,插件掛載 tools/pre-execute,只在一種情況攔截寫入:

  • 往工作區根目錄新建一個非 .md 文件。

攔截時返回 deny 並附帶說明,指向工作區的產物目錄約定,讓模型自行重試。有意放行的情況包括:

  • 子目錄內的任何寫入;
  • 根目錄的 *.md 文件(如 AGENTS.md、升級日誌.md、基建備忘.md);
  • 已存在的文件。

更新檢查

插件在 DSH 啓動後 3 秒檢查一次 GitHub Releases,與本地版本比對。有新版本時在界面右下角顯示更新卡片,支持展開更新說明、跳轉 Release 頁面、忽略當前版本。檢查結果緩存 6 小時,失敗時靜默跳過,不影響正常使用。

典型用法

  1. 安裝並重啓 DSH;
  2. 在任意會話上點擊菜單或標題欄的「打開產物文件夾」;
  3. 若有多個產物目錄,選擇一個打開;
  4. 若沒有產物,可點擊「打開 Blender 產物目錄」或「打開工作區根目錄」兜底;
  5. 需要新建產物目錄時,在彈窗頁腳點擊「新建產物目錄」,輸入名稱並確認。

適用場景與注意

  • 適合希望從會話日誌自動定位產物目錄的場景,避免手動翻找;
  • Blender 建模產物默認放在 E:\AgentArtifacts\blender,其它對話產出仍按工作區 AGENTS.md 約定放在 <工作區>\<主題>\;
  • 插件以當前 DSH 進程權限運行,安裝前建議查看源碼與許可證;
  • 目前僅在 Windows 上驗證,macOS / Linux 需要替換打開方式那一行。

總結

dsh-open-artifacts 通過解析會話日誌,把「這個對話的產物在哪」變成一個可點擊的動作,大幅減少手動翻找的時間。它既支持打開已有的產物目錄,也提供新建目錄的入口,並在 Blender 產物和時間推斷上做了補充。如果你在 DSH 裏經常需要快速定位對話產出的位置,這個插件可以作爲工作流的一部分。

  • 目錄頁:https://www.skillhub.cn/plugins/wuuuuu123-32/dsh-open-artifacts
  • GitHub:https://github.com/wuuuuu123-32/dsh-open-artifacts
羽毛球分组比赛记分
小程序二维码

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

小夜