Bundle
dsh-turn-scratch
DSH plugin: quarantine each turn's scratch artifacts into a workspace trash directory instead of deleting them
- Source
- popujiang
- License
- MIT
- Updated
- Updated 23 hours ago
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 一次都没往暂存区写,散在工作区里的东西照样会在回合结束时被收走。 暂存区只是让它**从一开始就不用弄脏工作区**。 ### 关掉会怎样? ```yaml workDir: "" ``` 回到原来的样子: - 暂存区不再创建,`scratch_workdir` 会明确回你一句"未启用" - dsh 写哪儿由它自己决定(通常就是工作区) - **全工作区扫描照旧**,回合结束该收的还是收 所以关掉的只是"提前变干净"这条路 —— **收尾那套一点没少**。 ## 包含的工具及其作用 | 工具 | 作用 | |---|---| | scratch_status | 看现在扣着什么、已还原什么 | | scratch_restore | 手动把一个文件捞回工作区 | | scratch_purge | 清空隔离区(真删) | | scratch_mark | 告诉 dsh 某个文件是一次性脚手架,可以收走 | | scratch_workdir | 拿到一个暂存区路径,中间产物写那儿,不弄脏工作区 | ## 安全 默认只隔离,不删除 拿不准的会被还回工作区,不会误删 模型只能还原、不能删除,最后文件的生杀大权在你手里 三套测试共 101 项断言全绿。最坏的情况是文件被隔离,随时可还原,请放心食用。 ## 其他 插件如果有任何问题,希望大家能多多反馈。 未来想增加UI界面方便操作,不过现在你直接与dsh对话就可以删除。
Install
dsh plugin --profile web add github:popujiang/dsh-turn-scratch
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-turn-scratch from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.