DSH Temporary Workspace Plugin: One-Click Creation, Sidebar Management, and Secure Cleanup

前言

在 DeepSeek Harness(DSH)里跑智能体,经常需要在独立目录里试命令、改脚本或做一次性任务。若直接在主工作区里折腾,容易和长期项目混在一起;若每次手动建文件夹、再单独开 workspace 和会话,步骤又偏碎。社区插件 @s0meb0dy3/dsh-scratch-workspace(仓库 s0meb0dy3/dsh-scratch-workspace)面向这类场景:在 Harness 侧边栏提供「临时工作区」面板,一次点击创建带独立 workspace 与会话的任务目录,集中查看状态,并在用完后做带校验的清理;也可选启用空闲自动过期。下面介绍它的定位、能力与安装用法。

这是什么

该插件由维护者 s0meb0dy3 发布,npm 包名为 @s0meb0dy3/dsh-scratch-workspace(当前资料中 package 版本为 1.7.0),许可证 MIT,分类上属于 DSH 客户端插件(向 Web 客户端注入 UI 与能力)。DeepSeek Harness 的生态是「一切皆插件」;插件目录站点 SkillHub 上的条目 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系。

一句话:为 DSH 提供可丢弃的临时工作区——创建、列表管理、安全删除(移入系统废纸篓),会话对话会保留并归档,可选按空闲时间自动清理。

核心功能

资料中与实现一致的能力包括:

  • 同一入口完成创建与管理:侧边栏「Temporary workspaces」面板里,通过 + Temporary task 创建任务,并在同一处列出、打开、清理。
  • 列表信息:友好名称、运行状态(running / terminal open)、空闲倒计时、文件夹大小,以及该目录下的会话。
  • 安全删除:清理前做归属与 inode 等校验,使用 durable retry journal;智能体或终端仍在使用该目录时会拒绝删除。清理将任务文件夹移入系统 Trash / Recycle Bin,误删可在废纸篓恢复;对话不会随文件夹一起丢掉,而是保留并归档。确认不再需要后再清空废纸篓以释放磁盘空间。
  • 可选空闲过期:默认关闭;开启后仅对新创建的任务生效,每个任务在创建时固定当时的策略与小时数,后续改设置不会影响已有任务。

智能体侧还提供 scratch_workspace 工具:可读状态、改 root/prefix、创建任务;不能执行删除或关闭确认类保护(删除与相关确认仅用户 UI 可操作)。

安装与启用

要求 DeepSeek Harness 0.2.1 或更新版本。

  1. 在 DSH 侧边栏打开 Plugins → Install。
  2. 粘贴 npm 包名:
@s0meb0dy3/dsh-scratch-workspace
  1. 完全退出 DeepSeek Harness 后重新打开,再在侧边栏进入 Temporary workspaces。

安装前建议阅读 GitHub 仓库 源码与 MIT 许可证;插件以当前 DSH 进程权限运行,与 Harness 内其它插件相同,不应在未审阅的情况下盲目安装。

典型用法

经过上面的安装步骤后,日常流程可以概括为:

  1. 打开侧边栏 Temporary workspaces。
  2. 点击 + Temporary task,在配置的存储根目录下生成带前缀的子文件夹,并绑定独立 workspace 与会话。
  3. 在该目录内让智能体或终端工作;面板中可查看空闲倒计时与占用大小。
  4. 任务结束后在面板中选择清理;若开启了「删除前确认」,会先询问再执行。清理进行中若 agent、子任务、计划任务或终端仍占用目录,操作会被拒绝。

首次使用前若未设置存储根目录,插件会引导选择 Storage root(仅影响之后新建的任务)。

配置说明

在 Settings → Temporary workspaces,或 Plugins 中该插件页面可调整(摘自官方配置文档):

设置项 默认值 含义
Storage root 未设置(首次使用时询问) 临时文件夹的父目录;每个任务一个子文件夹;修改仅影响新任务
Folder prefix task 文件夹名前缀,1–40 字符(字母、数字、汉字、_、-)
Confirm before deletion 开启 手动清理前是否确认;关闭则 Clean up 立即执行
Automatic cleanup 关闭 空闲自动清理,仅对新任务
Idle hours 24 1–8760 小时

空闲计时规则要点:用户消息、回合开始/结束、工具调用/结果、助手消息、agent 运行/空闲切换等算作活动;仅打开会话或浏览历史不算。Harness 关闭期间不跑定时检查,下次启动会根据会话日志重建计时;读不到日志时跳过该任务而非猜测。检查大约每分钟一次,过期时间略有误差。

开启自动清理或修改已启用策略的小时数时,UI 会要求一次性确认(同意永久删除策略,不是每个任务都弹)。

任务文件夹被清理后进系统废纸篓;也可通过环境变量 DSH_SCRATCH_TRASH_DIR 指定其它丢弃位置。插件状态(设置、任务注册表、删除授权等)位于:

~/.local/share/deepseek-harness/scratch-workspace/<profile-hash>/tasks.json

任务文件在配置的 storage root 下;已归档对话保存在 DSH 自有会话存储中,不在上述路径。

适用场景与注意

适合:需要与主仓库隔离的短时实验、一次性脚本、并行多个互不干扰的 agent 会话目录,且希望在一个面板里统一查看与收尾的场景。

平台:官方文档注明 macOS 已验证;Windows 有单独说明(见仓库 docs/platforms.md)。Linux 清理依赖 gio trash;若平台无法使用废纸篓,清理会失败并报错,不会静默改为永久删除。

安全边界(见仓库 docs/security.md):这不是 OS 级沙箱;路径类 API 仍存在 TOCTOU 窗口。废纸篓里的内容在清空前仍可恢复,但不应把插件当作备份——重要数据需自行导出。同一 profile 假设单进程 DSH;多进程并发可能争用同一状态文件。插件无法在清理期间阻止无关进程向该目录写入。

结尾

s0meb0dy3/dsh-scratch-workspace 把「建临时目录 + 开 workspace + 管生命周期」收进侧边栏一条线,并用校验、占用检测和废纸篓删除降低误删风险;需要时再打开空闲自动清理即可。更多细节见仓库内 Configuration、Security model。

  • 目录页:https://www.skillhub.cn/plugins/s0meb0dy3/dsh-scratch-workspace
  • GitHub:https://github.com/s0meb0dy3/dsh-scratch-workspace
羽毛球分组比赛记分
小程序二维码

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

Xiaoye