前言¶
在 DeepSeek Harness (DSH) 中,会话日志是持久化的。当需要快速测试或进行一次性的探索性对话时,手动清理旧会话会增加维护负担。dsh-temp-workspace 插件通过在侧边栏添加快速入口,允许用户创建即用即弃的临时工作区。在 Harness 重启时,这些工作区及其关联的会话会被自动清理,不留残留痕迹。
这是什么¶
这是一个 DSH Web 客户端插件,旨在为 Harness 增加临时工作区功能。插件由 wjj-8283 维护,采用 MIT 许可证。它通过注入必要的运行时模块和注册特定的 API 路由,实现了“创建临时环境”和“安全清理”的闭环。
安装与启用¶
推荐使用官方提供的命令直接安装,无需本地构建。
dsh plugin --profile web add @wjj-8283/dsh-temp-workspace
如果需要从 GitHub 源码安装,可以使用:
dsh plugin --profile web add github:wjj-8283/dsh-temp-workspace
安装后,插件会自动加入 Loader 层栈。重启 dsh web 后,插件生效。
核心功能¶
插件主要提供以下能力:
- 快速入口:在侧边栏的“添加工作区”按钮旁添加一个小沙漏图标。
- API 路由:注册
/temp-workspace/api路由,供浏览器端调用创建工作区。 - 设置面板:在“设置 -> 插件”中注册一张卡片,用于配置删除策略。
- 运行时注入:注入
webServer、webRuntime、workspaceRegistry、sessionPersistence、settings和loader。
典型用法¶
创建临时工作区¶
点击侧边栏“添加工作区”按钮旁的小沙漏图标,系统会自动创建一个临时工作区并打开一个新的对话窗口。这个工作区仅用于当前的会话,不产生持久化负担。
将临时工作区转为永久¶
如果某个临时工作区的内容需要保留,可以在侧边栏对应的“临时工作区”行上找到钉子图标,点击它。这会触发系统调用文件选择器,将工作区文件移动到指定的 OS 文件夹,并将该文件夹直接设为永久工作区。操作完成后,需要重启 Harness 才能让新的工作区在注册表中生效。
工作原理与注意事项¶
清理机制¶
由于 DSH 的持久化接口是追加的,没有公开的“删除会话日志” API,因此清理工作必须在 Harness 重启时进行。
- 删除模式:默认为
immediate(立即删除),也可配置为delayed(延迟删除),此时会设置一个deleteDelay(默认 3600 秒)的宽限期。 - 确认删除:如果开启
confirmBeforeDelete(默认开启),Harness 启动时不会自动删除任何会话,而是弹出确认对话框。用户可以选择“删除”、“保持临时”或“保持原样直到下次”。未处理的会话会在下次启动时再次询问。 - 无残留:无论是临时会话还是磁盘上的日志,在确认删除后都会被完全移除,不留下任何残留文件或缓存记录。
限制¶
- 启动对话框:在开启确认删除的情况下,主机启动时不会自动删除,且“永久保留”的选项不在此对话框中,需要通过侧边栏的钉子按钮手动操作。
- 目录标记:临时工作区的目录清理依赖于
<dsh-home>/temp-workspaces/state.json中的标记路径,即使注册表记录已被 UI 删除,只要标记存在,目录仍会被清理。