dsh-projectless-session:DeepSeek Harness 无工作区会话插件

前言

DeepSeek Harness (DSH) 的设计理念倾向于模块化,开发者有时需要在不建立完整 Workspace 的情况下进行临时对话。在 DSH 0.2.0-rc.2 版本中,没有已注册 Workspace 的空白会话会禁用原生的编辑器 UI,导致 Agent 预设、附件上传等功能无法使用。

dsh-projectless-session 插件解决了这一问题。它通过创建一个临时的 Workspace 注册,让原生 UI 能够正常工作,并在首次对话后清理注册,从而实现无工作区会话的功能。

插件简介

这是一个由 jarvisluk 维护的客户端插件,旨在 DeepSeek Harness 中提供“无工作区会话”能力。每个会话都会获得一个按日期整理的独立工作目录。

核心功能

  • 创建无工作区会话:在 Workspace 选择器中增加该选项,无需预先配置文件或环境。
  • 按日期组织独立工作目录:会话文件默认存储在 ~/Documents/DSH/YYYY-MM-DD/session-HH-mm-ss-random/,避免冲突。
  • 复用 DSH 原生新会话 UI:在会话打开时,完整保留 Agent 预设、命令、附件、访问模式及发送按钮。
  • 支持中英文双语:界面文案跟随 DSH 的 Language 设置自动切换。
  • 保留会话可恢复性:首条消息后仅删除 Workspace 注册,Session、日志和目录保留在“未分组”区域。
  • 自动清理未使用的空白会话:未发送消息的空白会话会被归档和清理。

安装与启用

使用官方 CLI 安装插件:

dsh plugin --profile web add github:jarvisluk/dsh-projectless-session

安装完成后,必须重启 dsh web 进程才能生效。若需卸载,可执行:

dsh plugin --profile web remove dsh-projectless-session

典型用法

会话目录结构

插件会自动为每个会话创建独立的根目录,默认路径如下:

~/Documents/DSH/YYYY-MM-DD/session-HH-mm-ss-random/

自定义根目录

如需修改存储位置,可在 Web profile 的 cordis.patch.yml 中配置:

- id: dsh-projectless-session
  config:
    root: /absolute/path/to/DSH

工作原理

插件利用 DSH 的 Cordis Host/Client 扩展接口,在会话生命周期内模拟一个临时 Workspace:

  1. 创建目录:Host 通过共享 /api 通道上已认证的 DSH Connection 接口创建目录。
  2. 注册临时 Workspace:客户端将该目录注册为临时 Workspace。
  3. 启动原生 UI:DSH 在临时 Workspace 中创建并打开 Session,此时原生的空白会话编辑器完全可用。
  4. 首次消息后清理:DSH 接受首条消息并报告 blank === false 后,插件仅删除 Workspace 注册,不删除实际目录和历史。
  5. 会话归档:Session 进入内置的“未分组”区域,重启 DSH 后仍可恢复。
  6. 清理废弃会话:如果会话从未被使用(用户切换走、DSH 退出或启动时发现残留),插件会注销 Workspace 并删除空目录。

适用场景与注意

  • 依赖环境:依赖 DeepSeek Harness 0.2.0-rc.2 和 Node.js 22.19 或更高版本。
  • 运行权限:插件以当前 dsh web 进程的权限运行,建议安装前检查源码与许可证。
  • 仅限本地:当前功能主要面向本地 Web/Desktop profile。

总结

dsh-projectless-session 通过巧妙的生命周期管理,在保留 DSH 原生 UI 优势的同时,实现了轻量级的无工作区会话功能。对于需要频繁创建临时对话的开发者,这提供了一个兼顾便捷性与数据管理的解决方案。

更多细节与源码请访问:GitHub 仓库 | 技能树目录

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

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

小夜