dsh-plugin-standalone-session
Verifieddsh-plugin-standalone-session · v0.2.4 · MIT · Web UI
Create and manage standalone DSH sessions that are not attached to any workspace.
Install
dsh plugin add dsh-plugin-standalone-session Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
dsh-plugin-standalone-session
DeepSeek Harness 的独立会话:不隶属于任何工作区,但完整复用原生输入区。
- 插件 ID:
standalone-session - 中文名:
独立会话/Standalone Session - 兼容 DSH:
>=0.2.1-rc.2 <0.3.0-0 - License:MIT
功能
- 侧边栏顶部点击 新建独立会话,直接创建并打开会话。
- 上一次由该入口创建的空白会话会复用,避免连点产生大量空会话;管理面板空状态可强制新建。
- 侧边栏底部 管理独立会话:点击行打开,
⋯菜单重命名/删除,支持多选批量删除。 - 原生输入区可用:模型选择、附件、
/指令、发送。 - 重启 DSH 后仍保持独立状态;创建时自动建立会话工作目录,并修复启动时缺失的目录。
- 会话目录包含隐藏标记文件,避免运行中的空目录被清理逻辑误删。
- 不替换原生新建会话、工作区浏览器、会话菜单或聊天 UI。
安装
npm(推荐)
Web
dsh plugin --profile web add dsh-plugin-standalone-session
重启 dsh web,硬刷新页面。
Desktop
打开 插件 / Plugins → 安装 → 输入 dsh-plugin-standalone-session,然后完全退出并重启 DSH。
桌面端的 profile 由 Electron 管理,不能用 dsh plugin --profile desktop 安装。
本地 tarball
npm ci
npm run build
npm pack
dsh plugin --profile web add /absolute/path/to/dsh-plugin-standalone-session-0.1.0.tgz
不要直接安装 GitHub 源码 tarball。仓库不包含构建后的
lib/,pnpm 会因构建脚本策略报ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED;请用 npm 包或本地 tarball。
使用
- 新建:点击侧边栏顶部
新建独立会话。如果上次创建的会话仍为空白,会直接复用它。 - 管理:点击底部
管理独立会话(n),或命令菜单里的独立会话:管理。 - 命令:输入
/,选择独立会话:新建/独立会话:管理。 - 删除:使用 DSH 原生归档,不是物理删除;已删除会话可在归档视图中恢复。
管理面板点击整行打开会话;行尾 ⋯ 提供重命名和删除。点击右上角 选择 进入批量模式,可全选/半选后一次删除;部分失败会保留失败项。删除最后一条后会停留在空状态,不会跳回新会话页。
与普通会话的区别
| 普通工作区会话 | 独立会话 | |
|---|---|---|
| 工作区归属 | 属于某个工作区 | 不属于任何工作区 |
| 工作区注册表 | 有记录 | 没有记录 |
| 侧边栏 | 工作区分组 | 顶层“未分组” + 独立面板 |
| 工作目录 | 工作区目录 | ~/.dsh/dsh-standalone-sessions/<sessionId> |
| 输入区 | 原生启用 | 插件解锁同一个原生 InputBar |
实现
没有创建临时工作区,也没有 patch 原生 workspace 逻辑:
- 会话自身
cwd带有独立标记;宿主registry.json记录生命周期。 - 客户端只包装
conversation.composer.bar:当 cwd 是独立标记且原生输入区为 disabled 时解锁。 - 不替换原生聊天、工作区选择器、会话菜单或新建按钮。
数据目录:
~/.dsh/dsh-standalone-sessions/
├── registry.json
└── session-<uuid>/
删除语义:
- 空白且目录为空:归档后删除工作目录。
- 目录非空或产生过消息:保留目录,便于恢复。
- 清理失败会记录日志并重试,不阻塞归档。
兼容与限制
- 只在 DSH
>=0.2.1-rc.2 <0.3.0-0验证。 - 独立会话仍会出现在原生“未分组”区域;插件没有替换 WorkspaceBrowser。
- 原生 hero 的
选择工作区chip 仍在;插件只在右侧显示独立会话 · 无工作区。 - 卸载后,空白独立会话的输入区会回到原生 inert 状态;有消息的会话不受影响。
- DSH 没有物理删除会话 API,删除等于归档。
- 自定义
DSH_HOME时,独立会话目录仍固定在~/.dsh/dsh-standalone-sessions。
开发
npm ci
npm run check # typecheck + build + 63 个单元测试
npm test
产物:
lib/index.js:宿主插件lib/client.js:客户端 Module Loader bundlelib/types/**:类型声明
发布
发布使用 Release Please:合并 feat: / fix: 后自动创建 release PR;合并 release PR 后自动创建 tag、GitHub Release,并通过 npm Trusted Publishing 发布和附加 tarball。
首次使用需要在 npm 包设置中配置 Trusted Publisher:
- Repository:
LRainner/dsh-plugin-standalone-session - Workflow:
release.yml
同时确保仓库 Actions 设置允许创建 pull request。
卸载
dsh plugin --profile web remove dsh-plugin-standalone-session
Desktop 在 插件 / Plugins 页面卸载,然后完全重启。
卸载不会删除会话。确需清理独立会话目录时:
rm -rf ~/.dsh/dsh-standalone-sessions
这会删除工作目录,可能包含 agent 写入的文件;会话历史仍由 DSH 管理。
License
MIT