dsh-session-move:在 Web UI 中移动、删除与 AI 重命名 DSH 会话

前言

DeepSeek Harness(dsh)的 Web 工作台里,会话默认绑定在创建时所在的工作目录(文件夹)上;侧栏只能归档,不能把会话迁到其他 workspace,也无法从磁盘上彻底删掉。会话标题往往只反映首条消息,长对话后很难从列表里一眼认出内容。若你经常在多个项目目录间切换、或希望 Agent 也能整理会话,官方 UI 会缺这几块能力。

下面介绍社区插件 dsh-session-move(维护者 hwangjunjie,分类:客户端):在浏览器端补全「跨文件夹移动」「永久删除」「整段对话 AI 重命名」,并把同一套能力暴露给 Agent 工具与 HTTP 接口。

这是什么

dsh-session-move 是面向 DeepSeek Harness 的双端插件(host + browser),在 Web UI 中管理会话:拖拽或菜单把会话移到另一个文件夹、经确认后永久删除、以及用 LLM 根据整段对话生成标题。与官方行为对比如下(摘自插件 README):

能力 官方 dsh 安装本插件后
将会话移到另一文件夹(workspace) 会话锁定在创建目录 支持拖拽或菜单选择目标文件夹
永久删除会话 仅归档(隐藏,未真正删除) 菜单确认后完整移除
AI 重命名 自动标题多来自首条消息 一键:LLM 采样整段对话后生成 concise 标题

每项能力还对应 Agent 工具,便于自动化整理会话。

核心功能

移动会话

  • 拖拽:在侧栏抓住某条会话,拖到另一文件夹标题上;悬停时目标高亮,松手即移动。
  • 菜单:会话 ... → Move to folder… → 选择目标 → 确认。

移动会改写会话工作目录:更新会话头中的 cwd,把持久化日志迁到目标文件夹的 storage slug,并更新 workspace 记账;历史随会话一起走,之后在新目录下继续可用。

永久删除

会话 ... → Delete session → 勾选理解后果 → 确认。会先停止正在运行的 Agent,再移除日志目录、projection-cache 行与 workspace 记账,不会留在「未分组」里。

AI 重命名

会话 ... → AI Rename。LLM 在 token 预算内对整段对话做代表性采样,修正笔误并生成与对话语言一致的短标题。默认 timeoutMs 为 60 秒,运行中可取消;按钮在 Cancel(进行中)与 Done(完成)之间切换。

路由:若在插件配置里固定 renameAi.provider 与 renameAi.model,优先使用该路由;否则使用各会话最近一次请求的路由,失败或超时会 failover。可在 profile 的插件行中配置,例如:

- id: session-move
  name: dsh-session-move
  config:
    renameAi:
      provider: deepseek-official
      model: deepseek-v4-flash
      targetWords: 6
      targetCjkCharacters: 14
      maxInputBytes: 8192
      maxOutputTokens: 96
      timeoutMs: 60000

Agent 工具

工具名 说明
workbench_session_move 按 session id + workspace id 移动会话
workbench_session_delete 永久删除会话
workbench_session_rename_ai AI 重命名会话

HTTP 接口(供 UI 或直接调用)

路径 方法 Body 返回
/__sessionmove/info GET — 全部 workspace 及会话当前 workspace
/__sessionmove/move POST { sessionId, workspaceId } 移动结果(旧/新 cwd、workspace id、agentReleased 等)
/__sessionmove/delete POST { sessionId } 已移除内容
/__sessionmove/rename-ai POST { sessionId } 新标题
/__sessionmove/rename-ai-cancel POST { sessionId } { ok, cancelled },中止进行中的 AI 重命名

安装与启用

插件要求 Node >=22.19.0、dsh >=0.1.0-rc.6(见 package.json)。安装命令以 README 原文为准:

# from GitHub (recommended until published to npm)
dsh plugin --profile web add https://github.com/reinocheong/dsh-session-move/archive/refs/tags/v0.1.2.tar.gz

加载插件需重启对应 profile,例如 systemd 部署:

# systemd-managed installs
sudo systemctl restart dsh

若手动把包拷到 ~/.dsh/profiles/node_modules/,还需在 profile 的 cordis.patch.yml 中注册(dsh plugin add 会自动完成):

- insert:
    - id: session-move
      name: dsh-session-move

许可证:MIT。

典型用法小结

  1. 安装并重启 dsh Web profile。
  2. 在侧栏用拖拽或 Move to folder… 把会话迁到目标项目文件夹。
  3. 需要清理时用 Delete session 做永久删除(勿与官方归档混淆)。
  4. 长对话列表难辨时,用 AI Rename;需要固定模型时在 cordis.patch.yml 的插件 config.renameAi 中配置。
  5. 在 Agent 流程中调用 workbench_session_move / workbench_session_delete / workbench_session_rename_ai 做批量或脚本化整理。

移动的实现会同步 header cwd、日志目录、projection cache 与 workspace 注册表;对正在执行任务的会话,v0.1.2 起会释放 Agent 注册,避免移动后无法重新打开或续聊。细节见插件 README 的 “How it works” 与 Reliability 小节。

适用场景与注意

适合:在多 workspace / 多目录间整理 dsh 会话的开发者;希望彻底删除误开会话或归档仍占存储的场景;需要基于整段对话生成侧栏标题;或让 Agent 代为移动、删除、重命名会话。

注意:

  • 插件与当前 dsh 进程同权限运行,安装前请自行审阅 GitHub 源码 与 MIT 许可证。
  • 永久删除不可恢复,操作前确认会话 ID 与目录。
  • AI 重命名依赖已配置的 LLM 路由与网络;超时或失败会尝试 failover。
  • 社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件为社区贡献的客户端能力扩展。

结尾

dsh-session-move 把官方 Web UI 未覆盖的会话迁移、真删除和整对话 AI 标题补到侧栏与 Agent 工具里,适合日常多项目使用 dsh 时保持侧栏整洁。更多信息见 SkillHub 目录页 与 GitHub 仓库。

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

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

小夜