# Session Folders(`dsh-per-session-folder`) [English](README.md) 让默认工作区里的每个新对话自动拥有一个独立文件夹。文件夹名称先取自首条消息, 会话标题生成或修改后再同步改名。侧边栏工作区归属、历史记录和会话存储位置都不变。 ## 安装 需要 DSH `>=0.2.1-rc.3 <0.3.0`。 ```powershell dsh plugin add dsh-per-session-folder ``` 在 npm 包发布之前,可以直接从 GitHub 安装: ```powershell dsh plugin add github:hhuapen/dsh-per-session-folder ``` 从本地源码安装: ```powershell dsh plugin add C:\path\to\dsh-per-session-folder ``` 安装后重启 DSH。 ## 配置 打开 **插件 → 已安装插件 → Session Folders**。插件详情页内的设置区域提供: - **选择文件夹…**:使用系统文件夹选择器设置所有新会话文件夹的父目录。 - **使用默认工作区**:清除自定义目录。 - **打开对话时创建**:每打开一个新对话就创建文件夹。 - **首条消息时创建**:发送第一条消息时才创建文件夹,避免空目录。 文件夹路径会经过可访问性检查。路径不可用时仍可继续聊天,但会话会留在默认工作区。 ## 行为 1. 只处理默认工作区中在插件启用后新建的普通会话。 2. 首轮使用首条消息生成临时文件夹名;标题生成后同步为正式标题。 3. 重名追加 `-2`、`-3`;Windows 非法字符替换为 `-`;超长名称截断。 4. 其他工作区、历史会话和子代理不创建独立文件夹。 5. 不自动删除、移动或归档已有文件夹。 6. 将有效工作目录同步到 DSH 会话界面,使“打开方式”和本地文件操作指向当前会话文件夹。 ## 限制 - 插件只改变会话的当前工作目录。程序主动写入其他绝对路径时,文件不会被拦截或搬回。 - 修改根目录只影响之后创建的会话;旧文件夹留在原位置。 - 目录改名后,模型可能短暂看到旧路径;下一次模型步骤会收到工作目录变化提示。 ## 开发 ```powershell npm test ``` ## 许可证 [MIT](LICENSE)