popujiang/dsh-turn-scratch ↗★ 0
dsh-turn-scratch
DSH plugin: quarantine each turn's scratch artifacts into a workspace trash directory instead of deleting them
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:popujiang/dsh-turn-scratch说明文档
阅读完整 README ↗dsh-turn-scratch
一款专门用于清理 dsh 每轮产生的多余临时文件的插件。
介绍
是不是还在因为dsh忙完工作后,工作区里到处都是它产生的临时文件而苦恼?
您是否经常感觉到自己不知道这些文件的作用?删除时又怕这些文件会影响你的电脑?
或者是自己还要在每次对话时做出删除临时文件这种重复性动作?
不用担心,dsh-turn-scratch 这款插件能帮你的忙。
安装
dsh plugin --profile desktop add "git+https://github.com/popujiang/dsh-turn-scratch.git#v0.2.1"
“小而美”
插件体积很小,让你放心。
当然,真的是小而美:
很多操作无感完成,默认无需配置,开箱直用!
为什么?因为它是全自动的。
不过想调的话,配置项都在——在 profile 的 cordis.patch.yml 里给 turn-scratch 行加 config: 即可。
但是你怕dsh误删?
早就想好了这一点!
特色
它并不是直接删文件
每轮结束,临时文件全都会先被挪进工作区里的一个回收文件夹(不是你电脑里的回收站),再逐个判断:
/.dsh-scratch-trash//turn-/
能确定的,代码直接决定去留。
拿不准的,才交给一次独立的模型调用判断。
真正的删除,只在你手动清空时发生。
在你还什么都没察觉的时候,分类已经发生,连工作区的界面也跟着清爽了起来。
所以最坏的情况其实是文件被隔离开来,而不是被误删
干活干到一半,工作区就已经乱了?
上面说的,都是回合结束时的收尾。
可一个长回合干到一半,中间产物其实早就散在工作区里了 —— 等它结束才动手,中间那段时间你还是得对着一堆不认识的文件发呆。
所以插件给 dsh 备了一块暂存区:
/.dsh-scratch-trash/work/
中间产物直接写这儿,工作区从第一秒就是干净的。
那这些文件就不管了?
当然不是。回合结束时,它们会被搬进本轮的回收文件夹 —— 照样有记录、照样能复核、照样随时能还原。然后暂存区清空,下一轮又是一个干净的工作台。
路径固定不变,不用每轮重新找。
这不是"只扫暂存区"
暂存区是多出来的一路来源,不是替换。
原来的全工作区扫描一条没动:标记过的、本轮新建的、临时命名的目录、孤儿库 —— 照扫不误。哪怕 dsh 一次都没往暂存区写,散在工作区里的东西照样会在回合结束时被收走。
暂存区只是让它从一开始就不用弄脏工作区。
关掉会怎样?
workDir: ""
回到原来的样子:
- 暂存区不再创建,
scratch_workdir会明确回你一句"未启用" - dsh 写哪儿由它自己决定(通常就是工作区)
- 全工作区扫描照旧,回合结束该收的还是收
所以关掉的只是"提前变干净"这条路 —— 收尾那套一点没少。
包含的工具及其作用
| 工具 | 作用 |
|---|---|
| scratch_status | 看现在扣着什么、已还原什么 |
| scratch_restore | 手动把一个文件捞回工作区 |
| scratch_purge | 清空隔离区(真删) |
| scratch_mark | 告诉 dsh 某个文件是一次性脚手架,可以收走 |
| scratch_workdir | 拿到一个暂存区路径,中间产物写那儿,不弄脏工作区 |
安全
默认只隔离,不删除
拿不准的会被还回工作区,不会误删
模型只能还原、不能删除,最后文件的生杀大权在你手里
三套测试共 101 项断言全绿。最坏的情况是文件被隔离,随时可还原,请放心食用。
其他
插件如果有任何问题,希望大家能多多反馈。 未来想增加UI界面方便操作,不过现在你直接与dsh对话就可以删除。