KouzakiUmi/dsh-guard--packages-dsh-audit-rollback ↗★ 0
dsh-audit-rollback
文件编辑审计日志记录与离线回滚工具 适合对文件修改安全性要求高、需要精确审计和离线恢复代码的用户。
安裝
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:KouzakiUmi/dsh-guard#2f67f5a313c2f118b5e540d098c23009adbf539f&path:packages/dsh-audit-rollback說明文件
閱讀完整 README ↗配置字段
默认值见契约 §2.1;下表与其 yaml 逐字段一致,且按契约 §2.1 第 2 条要求,插件代码内部默认值与 cordis.patch.yml 默认值也逐字段一致。
| 字段 | 默认 | 说明 |
|---|---|---|
stateDir | (回落见上) | 普通配置,设置页只读;状态目录支持 ~ 展开 |
captureTools | ['write','edit','str_replace_editor'] | 要捕获编辑前内容的工具名 |
captureMaxBytes | 2097152(2 MiB) | 单文件捕获上限;超限记 hash:null + note |
argsMaxBytes | 4096 | call 条目 argsPreview 截断上限(UTF-8 字节) |
logCalls | true | 是否记录 call 条目 |
excludeGlobs | ['/node_modules/','/.git/','/.dsh-memory/','/.graphflow-cache/'] | 命中即不捕获:含通配符按 glob(* / ** / ?)对绝对路径全串匹配;不含通配符按路径片段(子串)匹配,默认排除依赖目录、版本库、记忆目录与缓存目录 |
gitSnapshot | false | 未实现,不可设置;仅兼容旧 profile 字段 |
兼容范围:peerDependencies["@deepseek-ai/dsh"] 为 >=0.2.0-rc.1 =0.2.1-0 <0.3.0-0。前半覆盖 0.2.0 的 rc 预发布;后半用带预发布标签的 0.2.1-0 放行 0.2.1 起、0.3.0 前的预发布(含本机 0.2.1-alpha.1)。只写前半段时,node-semver 匹配不到 0.2.1-alpha.1。
设置页统一位于「设置 → 内置插件 → 审计与回滚」(唯一 settings.plugins.tab 入口),不再贡献设置侧栏的独立页面。需启用官方内置插件设置容器;容器晚声明时等待,不注册另一处回退入口。保留 Host 只读状态、账本、对象库、最近捕获和最新配置回显;编辑使用官方 remote.settings.describe() 读取 audit-rollback namespace 和 revision,update(ns, patch, revision) 保存五个 volatile 字段。
保存成功表示官方 ConfigEditor 已验证、持久化并通过 Loader reconciliation;新轮次使用最新配置,进行中轮次保持 turn/start 时的完整快照,before/after 使用相同 stateDir 与捕获上限。仅参数预览/call 且没有活动轮次时读取当前配置。stateDir 属普通配置,在设置页明确只读:不支持安全热迁移,需停轮、备份数据并通过官方配置维护流程重加载。gitSnapshot 未实现且不可设置。
字段校验:两个上限为正安全整数;captureTools 至少一项;列表每行一项、空行忽略;excludeGlobs 可清空。保存失败保留草稿并显示错误;过期 revision 不覆盖并发修改,提示取消并重新读取,重新编辑后保存。官方 settings 服务缺失或配置不可写时明确报错,原状态查看仍可使用;不创建独立设置文件,不自行编辑真实 profile。
excludeGlobs 子串语义的边界(契约 §2.1 第 3 条):不含通配符的模式是区分大小写的子串匹配——默认四项都带斜杠(/.git/),因此只命中路径中间的目录片段,不会命中目录本身不带尾斜杠的写法(如 D:/proj/.git 本身),也不会命中 .GIT(大小写不同);反过来,若手写一个不带斜杠的模式(如 .git),会误伤 .gitignore 这类文件名——自定义时建议沿用带斜杠的写法。