dsh-workspace-organizer:为 DSH Web 会话补标签与归档管理

前言

在 DeepSeek Harness(DSH)Web 端长期使用后,侧边栏里的会话会越来越多。DSH 自带的工作区视图只能按「目录」分组,组内只能排序,会话一多就容易堆在一起,难以按项目阶段或主题快速筛选。归档会话分散在原生流程里,也不便于集中浏览。

下面介绍社区插件 dsh-workspace-organizer(仓库 Wang993/DSH_OrganizeFilesInTheSameWorkspace)。它在不改动 DSH 工作区归属规则的前提下,为会话区增加自定义标签维度和归档管理面板,并与 DSH 原生归档体系同源联动。

这是什么

dsh-workspace-organizer 是 DSH Web 端的会话整理插件:标签分类、归档 / 恢复、已归档浏览。维护者为 Wang993;npm 包名 dsh-workspace-organizer,当前资料中版本为 1.0.4,许可证 MIT。在 SkillHub 等社区目录中归类为「记忆」类插件。

插件解决的是「会话多、只能按目录看、归档不好管」的问题,而不是替换 DSH 的工作区模型。

核心功能

入口与面板

  • 悬浮按钮:菱形图标,自动吸附在侧边栏底部「设置」区旁边;侧边栏伸缩或窗口变化时会跟随。
  • 整理面板:
  • 按标签分组展示全部会话,未打标签的会话单独成组;
  • 底部有独立的「已归档」区域;
  • 顶部筛选 chips:全部 / 未分类 / 已归档 / 各标签。

每个会话行

  • 标签:增删标签,每会话最多 8 个;可用按钮复用已有标签。
  • 归档:从原生侧边栏列表隐藏,不删除会话数据。
  • 恢复:将已归档会话放回侧边栏原位置。

与 DSH 的衔接

  • 实时联动:归档 / 恢复走 DSH 内置的 workspaceRegistry,原生侧边栏会同步更新。
  • 主题:面板与图标使用 DSH 主题变量(--dsw-*),明暗主题下与界面一致。

安装与启用

插件需运行在包含 dsh-base 与 dsh-web-app 的 Web profile 上(DSH 默认 web 模板即可)。安装后需重启 dsh web 并刷新页面,才能在侧边栏看到菱形按钮。

方式一:npm(资料推荐,已发布后最省事)

dsh plugin --profile web add dsh-workspace-organizer

方式二:从 GitHub 安装

dsh plugin --profile web add github:Wang993/DSH_OrganizeFilesInTheSameWorkspace
git clone git@github.com:Wang993/DSH_OrganizeFilesInTheSameWorkspace.git
dsh plugin --profile web add link:<克隆下来的目录绝对路径>

方式四:手动编辑 profile

编辑 $DSH_HOME/profiles/web/package.json,在 dsh.profile.bundles 与 dependencies 中加入 dsh-workspace-organizer,将插件目录放到 $DSH_HOME/profiles/web/dsh-workspace-organizer 并在该目录执行 pnpm install。具体 JSON 结构见仓库 README。

典型用法

经过上面的安装与重启,可按下面步骤使用:

  1. 点击侧边栏设置区右侧的菱形按钮,打开「会话整理」面板。
  2. 在会话行点「标签」完成分类,再用顶部标签 chip 筛选。
  3. 点「归档」收起暂不用的会话;在「已归档」区域点「恢复」可放回侧边栏。
  4. 面板每 5 秒自动刷新(正在输入标签时不会打断);也可点「刷新」手动更新。

标签数据保存在 $DSH_HOME/.dsh-organizer-tags.json(纯 JSON,可备份、手工编辑或纳入版本管理)。

实现要点(便于评估与排查)

部分 说明
宿主 lib/index.js 注入 webServer / workspaceRegistry / sessionQuery,注册 /dsh-organizer/* 路由,并向页面注入客户端脚本
客户端 lib/organizer.js 纯 DOM,无框架、无构建;负责按钮吸附、面板与交互
归档 ctx.workspaceRegistry.archiveSession(id)
恢复 读写内置 archivedSessionIds 状态集

插件无打包步骤,仅为若干 ESM / 浏览器脚本文件。改 lib/organizer.js 后刷新页面即可生效;改 lib/index.js 需重启 dsh web。

适用场景与注意

适合谁:经常在 DSH Web 端开多会话、希望按自定义标签(而非仅工作目录)分组,并需要集中查看与恢复归档会话的开发者。

架构限制(README 明确说明):

  • 会话的工作区归属仍由工作目录决定,本插件不改变归属,只增加标签与归档管理 UI。
  • 按钮吸附依赖侧边栏类名 .hHd-Xa_settingsArea;DSH 升级若改动该类名,按钮会回退到左下角固定位置,功能仍可用。
  • 归档沿用 DSH 全局归档集合:仅隐藏列表,日志仍在 $DSH_HOME/sessions 下。

安全与信任:插件以当前 dsh 进程权限运行,可访问会话列表与归档状态。安装前应阅读 GitHub 源码 与 MIT 许可证,再决定是否加入 Web profile。

卸载时从 profiles/web/package.json 的 bundles 与 dependencies 移除本包,执行 pnpm install 并重启 dsh web;可选删除 $DSH_HOME/.dsh-organizer-tags.json。

结尾

DSH 生态强调「一切皆插件」;社区目录(如 SkillHub)是独立站点,与 DeepSeek / 幻方无官方从属关系。dsh-workspace-organizer 在原生工作区视图之上补一层标签与归档面板,并与 workspaceRegistry 同源,适合需要长期整理 Web 会话的场景。

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

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

小夜