KouzakiUmi/dsh-guard--packages-dsh-audit-rollback ↗★ 0

dsh-audit-rollback

文件编辑审计日志记录与离线回滚工具 适合对文件修改安全性要求高、需要精确审计和离线恢复代码的用户。

套件
dsh-audit-rollback
相容性
待驗證
版本
0.3.2
最近更新
2026年10月5日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:KouzakiUmi/dsh-guard#2f67f5a313c2f118b5e540d098c23009adbf539f&path:packages/dsh-audit-rollback

配置字段

默认值见契约 §2.1;下表与其 yaml 逐字段一致,且按契约 §2.1 第 2 条要求,插件代码内部默认值与 cordis.patch.yml 默认值也逐字段一致。

字段默认说明
stateDir(回落见上)普通配置,设置页只读;状态目录支持 ~ 展开
captureTools['write','edit','str_replace_editor']要捕获编辑前内容的工具名
captureMaxBytes2097152(2 MiB)单文件捕获上限;超限记 hash:null + note
argsMaxBytes4096call 条目 argsPreview 截断上限(UTF-8 字节)
logCallstrue是否记录 call 条目
excludeGlobs['/node_modules/','/.git/','/.dsh-memory/','/.graphflow-cache/']命中即不捕获:含通配符按 glob(* / ** / ?)对绝对路径全串匹配;不含通配符按路径片段(子串)匹配,默认排除依赖目录、版本库、记忆目录与缓存目录
gitSnapshotfalse未实现,不可设置;仅兼容旧 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 这类文件名——自定义时建议沿用带斜杠的写法。