DfsyJian/dsh-snapshot0

dsh-snapshot

DSH 写入与编辑快照插件,支持对 Agent 的修改进行快照记录并随时回滚,含侧边栏时间线。

AI 分析

核心用途是防止 Agent 误写代码,提供版本回滚保障。适合频繁让 Agent 修改本地文件的用户,可在侧边栏时间线中一键撤销或回滚到任意历史状态。

套件
dsh-snapshot
版本
0.2.6
授權
MIT
最近更新
2026年8月14日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:DfsyJian/dsh-snapshot

配置(均可选,零配置可用)

配置项默认值说明
enabledtrue总开关,关闭后不再捕获新的写入/编辑,已有快照保留(回滚仍可用)
storeDir$DSH_HOME/snapshots快照存储根目录,每会话一个子目录
maxRetain100每会话最大保留条数,0 为不限
maxProjectRetain100项目级总量控制:同一工作区(会话 cwd)所有会话共享该配额,超限按捕获时间最旧优先清理,0 为不限
pruneOrphanstrue孤儿清理:某会话所属工作区目录已不存在时,自动删除该会话全部快照(不可回滚,仅占空间),false 为保留
collapseOnRollbacktrue撤回后折叠时间线:撤回某条快照会同时清除该快照及之后的所有记录(含回滚记录),列表只保留撤回点之前的历史;false 则保留后续快照与回滚记录

配置可通过以下两种方式之一进行。

方法一:设置页(配置表单)

dsh 客户端设置页的「插件配置」会显示 snapshot 卡片,在表单内可直接修改上表各项。保存后经宿主 settings 服务写入 ~/.dsh/settings.yamlsnapshot: 段。

插件设置页

ℹ️ 表单不可用? 卡片是否可编辑取决于宿主的命名空间白名单(dsh-host-apiproxyWEB_SETTINGS_NAMESPACES)。 目前 npm 发布版宿主暂未包含 snapshot 白名单,因此会显示“表单不可用”;本地 harness master 源码构建已包含该命名空间,可直接编辑。npm 版用户需等待新版宿主发布,期间请使用方法二。

方法二:修改配置文件

不经过设置页,直接编辑配置文件,以下两种位置任选其一:

位置 1: ~/.dsh/settings.yamlsnapshot: 段(与设置页写入同一位置)

snapshot:
  storeDir: D:\xiangmu\test\1
  collapseOnRollback: true

位置 2: profile 的 cordis.yml(如 web profile 对应 ~/.dsh/profiles/web/cordis.yml

plugins:
  snapshot:
    storeDir: D:\xiangmu\test\1

改完重启 dsh web 生效。

方法一:设置页(配置表单)

dsh 客户端设置页的「插件配置」会显示 snapshot 卡片,在表单内可直接修改上表各项。保存后经宿主 settings 服务写入 ~/.dsh/settings.yamlsnapshot: 段。

插件设置页

ℹ️ 表单不可用? 卡片是否可编辑取决于宿主的命名空间白名单(dsh-host-apiproxyWEB_SETTINGS_NAMESPACES)。 目前 npm 发布版宿主暂未包含 snapshot 白名单,因此会显示“表单不可用”;本地 harness master 源码构建已包含该命名空间,可直接编辑。npm 版用户需等待新版宿主发布,期间请使用方法二。

方法二:修改配置文件

不经过设置页,直接编辑配置文件,以下两种位置任选其一:

位置 1: ~/.dsh/settings.yamlsnapshot: 段(与设置页写入同一位置)

snapshot:
  storeDir: D:\xiangmu\test\1
  collapseOnRollback: true

位置 2: profile 的 cordis.yml(如 web profile 对应 ~/.dsh/profiles/web/cordis.yml

plugins:
  snapshot:
    storeDir: D:\xiangmu\test\1

改完重启 dsh web 生效。