dsh-session-categories
已验证@zizaiwo/dsh-session-categories · v0.1.3 · Apache-2.0 · Web 界面
Organize DeepSeek Harness (dsh) sidebar sessions into custom category folders. dsh 侧边栏会话分类插件。
安装
dsh plugin add @zizaiwo/dsh-session-categories 用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。
源码
标签
作者
说明文档
dsh-session-categories(会话分类)
English | 中文
把 DeepSeek Harness 侧边栏按自定义分类组织起来。 每个工作区有自己的分类文件夹树——把会话拖进文件夹、直接在分类里新建会话,相关工作聚在一起。
亮点
- 零配置接管——bundle patch 自动禁用官方工作区浏览器、挂载分类树。安装 → 重启 → 完成,无需任何手工配置
- 每工作区独立——每个工作区的分类结构互不干扰
- 拖拽操作——会话拖入/拖出分类、拖分类文件夹调顺序
- 完整保留官方体验——基于官方 UI 的 fork:搜索、重命名、fork、归档、工作区操作全部照旧
- 分类里直接建会话——hover 分类文件夹点「+」,复用工作区空白会话,少一步拖拽
安装
dsh plugin --profile web add @zizaiwo/dsh-session-categories
重启 DSH 即可,无需其他配置——patch 会自动禁用官方 ui-workspace,分类树接管侧边栏。
手动登记 profile:
{
"dependencies": { "@zizaiwo/dsh-session-categories": "^0.1.0" },
"dsh": { "profile": { "bundles": [ "...官方 bundles...", "@zizaiwo/dsh-session-categories" ] } }
}
快速开始
- 安装并重启——每个工作区现有的会话全部归入「未分类」组
- 点「+ 新建分类」→ 输入名称回车 → 出现空文件夹
- 把会话拖到分类文件夹上——完成归类(一个会话只属于一个分类)
- hover 分类:✎ 重命名 / 🗑 删除(两次点击确认,删除后会话回「未分类」,不删会话)
功能特性
- 分类管理:新建、重命名、删除(删除只取消归类,不删会话)
- 分类排序:拖拽文件夹调整顺序(仅同工作区;拖到「未分类」= 移到末尾)
- 移动会话:拖拽会话到分类 / 「未分类」文件夹
- 原地建会话:hover 分类或「未分类」文件夹点「+」,新建会话自动归入
- 每工作区隔离:分类配置按工作区独立
- 官方能力保留:重命名 / fork / 归档、工作区重命名 / 删除 / 新建会话、搜索
兼容性
- 面向当前 dsh 预发布插件 API(
0.1.0-rc时期)。dsh 处于开发者预览期,不承诺预发布兼容——升级时请 dsh 与本插件一起升级。
数据
分类数据存于 {工作区}/.dsh/session-categories.json(.dsh 目录不存在时回退 {工作区}/session-categories.json)。形态:{ version: 1, categories: [{id, name, createdAt}], sessionCategory: {sessionId: categoryId} }——无记录的会话即未分类。写入原子化(tmp + rename)。
维护者区
架构
- Client(
client.js):fork 官方dsh-client-ui-workspace,把WorkspaceBrowser的分组层换成CategoryTree(复用官方ProjectRowItem/SessionNodeItem与 CSS modules) - Host(
index.js):webServer路由/api/dsh-session-categories(loopback-only),用node:fs持久化分类数据(原子写:tmp + rename) - 数据通道:走官方 webServer 的普通 HTTP——见下"为什么不用 harness.handle"
为什么不用 harness.handle / host.call
那是动态插件专属的私有 RPC,进程重启即失——常规仓库插件不可用。本插件走官方 webServer 路由(与 dsh-ssh 同款模式)。
为什么插件要禁用官方 ui-workspace
本插件 fork 官方 client 并注册同一个 slot。slot 规则里子槽 sidebar.workspaces.directoryFlow 只能被一个 entry 声明、renderSlot 只注入给声明了子槽的 occupant——官方在场时无法再声明子槽,必须由本插件独占。patch 自动完成禁用(id: ui-workspace 短名)。
开发
- 无构建步骤:纯 JS host(
index.js)+ 打包 client(client.js) - 校验:
node .dsh/skills/ouyezi/scripts/check-plugin.mjs <本目录>
License
Apache-2.0 © 2026 zizaiwo