dsh-session-folders:为 DeepSeek Harness 会话添加文件夹层级

前言

DeepSeek Harness (DSH) 插件生态强调模块化。在开发或调试过程中,会话数量增多后,直接通过列表管理变得低效。dsh-session-folders 插件为 DSH 会话引入了一个独立的文件夹层级。它不依赖核心工作区模型,而是通过持久化的注册表来管理会话与文件夹的映射,适合需要按目录归档和隔离项目记忆的场景。

核心功能

持久化注册表

插件维护一个独立的 DSH 存储域来存储文件夹定义和 sessionId 到 folderPath 的映射。这些数据在应用重启后依然保留,不依赖于核心工作区模型。

非破坏性移除

移除文件夹不会删除任何会话或其日志文件。被移除文件夹内的会话会自动返回到收件箱('')。

管理界面

插件在「Session Folders」设置页面中提供了文件夹管理能力:
* 创建、重命名、删除文件夹。
* 将会话归档到指定文件夹。
* 每个会话列表项中包含「Move to folder…」操作。

记忆作用域钩子

文件夹路径被设计为项目范围记忆命名空间的自然键。通过 assignment[sessionId] 可以获取会话所属的文件夹路径,从而实现基于目录的记忆隔离(例如 .harvis/memory)。

安装与启用

在终端中执行以下命令安装:

dsh plugin --profile web add github:Harzva/dsh-session-folders

安装后,插件会自动加载其持久化注册表和客户端界面组件。

典型用法

  1. 自动归档:会话可以根据当前工作目录(cwd)自动归入对应的文件夹。
  2. 手动移动:在会话列表的操作菜单中选择「Move to folder…」,将其移动到任意其他文件夹。
  3. 项目记忆隔离:在编写代码或处理任务时,利用 assignment[sessionId] 获取的文件夹路径作为上下文,实现不同项目会话记忆的物理隔离。

注意事项

  • 侧边栏限制:当前版本不提供侧边栏的「group by folder」树状视图。
  • 架构原因:DSH 的 sidebar.workspaces 区域负责会话列表,并不提供添加文件夹树的内嵌插槽。因此,分组视图需要通过核心插槽补丁或其他插件来实现,本插件仅负责文件夹注册表与 UI 管理部分。
  • 记忆键值:文件夹路径是构建项目级记忆命名空间的天然键值,这一点在集成其他依赖项目记忆的插件时需要注意。

总结

该插件通过持久化注册表和记忆作用域钩子,为 DSH 会话提供了基础的文件管理能力。它适合需要结构化组织会话和项目记忆的开发者。完整源码与文档可参考 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜