DeepSeek Harness (DSH) 的核心设计理念是“一切皆插件”。在实际使用中,开发者常需要在侧边栏快速管理会话,或者在对话时跳过特定工作区的绑定。dsh-ui-enhancements 旨在解决这些问题,提供一系列针对性的 UI 改进。
这是一个由 Unintendedz 维护的小型、聚焦的 UI 增强插件。它不改变 DSH 的核心逻辑,而是通过扩展 UI 层面,让会话管理和工作区切换更加直观和高效。
无工作区对话¶
插件新增了“无工作区”对话模式。默认情况下,点击侧边栏的“新建会话”即可创建一个无工作区对话。这些对话独立于现有工作区,拥有独立的存储目录。
- 独立存储:每个无工作区对话拥有独立的真实工作目录,路径为
<DSH_HOME>/projectless/session-projectless-<uuid>。 - 功能保留:尽管没有绑定工作区,这些对话保留了 DSH 的原生功能,包括模型选择器、附件上传、工具调用、历史记录、搜索、分支、归档和删除操作。
- 草稿与附件:在发送前,通过鼠标悬停或点击工作区选择器中的“×”按钮,可以切换回“无工作区”并保留草稿和附件。切换行为通过 DSH 原生的草稿转移机制实现。
- 归档与恢复:归档和恢复操作会保留原有的目录结构。
工作区活动顺序¶
侧边栏中的工作区分组默认按“最后更新”排序。排序规则基于可见对话的最后更新时间。折叠的工作区组遵循相同的规则。
- 自动排序:活动、归档、恢复、删除以及成员变更等操作会更新排序,无需刷新会话列表。
- 手动排序:通过“视图选项”切换到“手动”模式,可以禁用自动排序并启用工作区组的拖拽排序功能。
配置文件插件开关¶
插件提供了全局的插件开关控制。在设置菜单中可以管理当前配置文件下安装的所有插件。
- 启用/禁用:打开
Settings -> Plugins -> Plugin list,可以启用或禁用每个插件包。 - 持久化:更改会立即应用到主机加载器,并随 DSH 重启而保留。状态保存在配置文件的
cordis.patch.yml中。 - 锁定机制:
dsh-ui-enhancements的开关默认保持可见且锁定开启,防止恢复控制将其意外关闭。 - 系统保护:DSH 内置的运行时条目保持只读,因为禁用核心服务可能导致 Web UI 或插件管理器不可用。
会话快速操作¶
在侧边栏的会话列表中,悬停在有内容的会话行上,即可快速访问操作按钮,无需打开原生菜单。
- 操作项:显示“固定/取消固定”、“归档”和“立即删除”。
- 固定:固定后的会话会显示在工作区组的顶部或扁平列表的顶部。
- 归档:复用 DSH 原生的归档功能。
- 立即删除:打开一个确认对话框,确认后停止会话、移除日志和记录,但不删除生成的文件、分支和共享附件。
已存档对话管理¶
插件在设置中增加了对已存档对话的管理入口。
- 入口位置:打开
Settings -> Conversations -> Archived conversations -> Manage。即使会话列表为空,此入口也可用。 - 列表展示:显示标题、工作区名称(或“无工作区”)和创建日期。支持搜索标题和工作区路径。
- 操作:悬停或键盘聚焦可显示“恢复对话”和“立即删除”。恢复会话会移除归档标志并保留原始状态。
- 性能优化:初始列表加载时,直接使用 DSH 头部和标题检查点,不读取对话日志。后续在后台批量解析缺失标题,并在 1 分钟后验证日志修订。
安装与依赖¶
该插件依赖 DSH 的特定版本和后端架构。
- DSH 版本:需要 DSH
0.1.5-rc.1及其 JSONL session backend。 - 安装后操作:安装后必须重启 DSH,以便插件能够跟踪每个对话的原生生命周期。
生态背景¶
DeepSeek Harness 是一个开放的插件生态。本插件由社区维护,与 DeepSeek 或幻方 AI 无官方从属关系。插件源码与许可证可在 GitHub 查看。