Session Folders:爲每次 DSH 對話分配獨立工作目錄

前言

在 DeepSeek Harness(DSH)裏,默認工作區往往被多輪「臨時對話」共用:上一輪留下的腳本、下載或測試文件,容易讓下一輪對話誤讀路徑、誤改文件。常見做法是再建側邊欄工作區或手動換目錄,但會動到工作區列表與歷史歸屬。Session Folders(插件包名 dsh-per-session-folder)由社區維護者 hhuapen 發佈,分類爲工作流;它在文件系統層面爲每次新會話單獨建目錄,並把目錄名與會話標題同步,同時不新增工作區條目、也不改寫歷史會話的工作區歸屬。

這是什麼

Session Folders 是 DSH 的 host 與 client 插件,面向默認工作區裏「臨時或未分類」的對話。每在默認工作區開啓一個新的頂層會話,插件可爲其分配獨立工作目錄;會話標題變化時,對應文件夾會重命名。相對路徑下的讀寫會落在該目錄內;顯式寫入其他絕對路徑的文件不會被插件移動或攔截。

核心功能

下面能力均來自插件 README 與 package.json 說明,當前版本爲 0.1.1,許可證 MIT。

  • 每個新對話在默認工作區下對應一個文件夾;首條用戶消息可用於生成可讀文件夾名。
  • 會話標題(生成或編輯後)變化時,文件夾同步重命名;重名時自動追加 -2、-3 等後綴。
  • 可在插件詳情頁用 Windows 原生文件夾選擇器指定父目錄,並校驗所選目錄是否可訪問;不可用時對話仍繼續,回退到默認工作區,不阻塞聊天。
  • 支持「打開會話即建目錄」或「等到首條消息再建目錄」,避免空文件夾。
  • DSH 重啓後,通過目錄內標記文件 .dsh-per-session-folder.json 恢復文件夾與標題同步;舊開發期名稱留下的 legacy 標記會被自動接管。
  • 保持 DSH 的 Open In 與本地文件相關操作指向當前會話的有效工作目錄(通過 ctx.workingDirectory.set 持久化並由 DSH 重放;client 插件在接口可用時同步到會話 UI)。
  • 作用範圍:僅影響「原始工作目錄爲默認工作區」的新頂層會話;歷史會話、子 agent 會話、其他工作區內的會話不受影響。會話頭仍顯示原工作區路徑,僅有效工作目錄被切換。

配置項(可在插件配置或詳情頁對應操作中使用):

Key 默認值 說明
enabled true 是否啓用按會話分目錄
root '' 父目錄;空則使用默認工作區
creationMode immediate immediate 或 first-message
workspacePath '' 高級場景下的可選工作區覆蓋
maxNameChars 60 文件夾名最大長度

詳情頁還提供:Choose folder…(選父目錄)、Use default workspace(清除自定義父目錄)、Create on open、Create on first message。

已知限制:僅隔離相對當前工作目錄解析的操作;修改父目錄隻影響之後的新會話;插件不會自動刪除或歸檔文件夾;文件夾重命名後,模型上下文中已出現的舊路徑可能失效,後續步驟會收到工作目錄變更通知。

安裝與啓用

環境要求:DSH >=0.2.1-rc.3 <0.3.0(見 README 與 package.json 的 engines.dsh)。

官方安裝方式(npm 包已發佈時使用):

dsh plugin add dsh-per-session-folder

在 npm 包尚未發佈時,README 給出的 GitHub 安裝方式爲:

dsh plugin add github:hhuapen/dsh-per-session-folder

本地開發目錄安裝示例:

dsh plugin add C:\path\to\dsh-per-session-folder

安裝後需重啓 DSH。

啓用與配置:打開 Plugins → Installed plugins → Session Folders,在插件詳情頁完成父目錄選擇與創建時機選項。插件以當前 DSH 進程權限運行;安裝前建議自行查看 GitHub 倉庫 源碼與 MIT 許可證。

典型用法

1、安裝並重啓 DSH 後,進入 Session Folders 插件設置,用 Choose folder… 指定存放各會話子目錄的父路徑;若希望仍用默認工作區作爲父目錄,使用 Use default workspace。

2、在 Create on open 與 Create on first message 之間選擇:需要一開會話就有目錄選前者;希望避免空目錄選後者。

3、在默認工作區新建頂層對話併發送消息。插件會創建以會話標題(或首條消息衍生名)命名的子文件夾,後續相對路徑的文件操作落在該目錄。需要在外部打開目錄時,使用 DSH 自帶的 Open In 等控件,目標爲當前會話的有效目錄。

4、編輯會話標題後,觀察對應文件夾是否隨標題重命名;若與已有文件夾衝突,名稱會帶 -2 等後綴。

適用場景與注意

適合在默認工作區頻繁開「草稿對話」、又不想爲每次聊天單獨建側邊欄工作區的開發者。子 agent、歷史會話、非默認工作區會話不會被插件改寫目錄策略。

DSH 社區插件目錄位於獨立站點 skillhub.cn,與 DeepSeek / 幻方無官方從屬關係;安裝與配置以倉庫 README 爲準。修改 root 不會遷移已有會話文件夾;長期積累的會話目錄需自行管理磁盤空間。

結尾

Session Folders 用「每會話一目錄 + 標題同步命名」隔離臨時文件,同時保留 DSH 現有工作區與歷史模型。進一步瞭解與 issue 反饋見插件目錄頁與 GitHub:

  • 目錄頁:https://www.skillhub.cn/plugins/hhuapen/dsh-per-session-folder
  • 倉庫:https://github.com/hhuapen/dsh-per-session-folder
羽毛球分组比赛记分
小程序二维码

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

小夜