用途与实际影响
这项功能怎样使用
为什么需要它
一个后台任务可能依次保存不同产品。只看总退出码会混淆哪份恢复点可用;远端失败也不能抹掉已完成的本地副本。
举个实际例子
我可以说:“核对今晚 3 个备份任务和公开归档;共享任务出错时分别告诉我 Claude 与 OpenClaw 哪一段失败,不要让我翻原始日志。”我会得到各自结果和仍可用的恢复点。
最后我会得到什么
得到各备份任务最近的结果、各产品仍可用的恢复点,以及公开归档是否已读回远端。原页面的具体时间与历史成功保留原观察日期,不代表下一轮自然任务已通过。
正常时
每个备份产品分别完成应有的本地、独立副本和远端核对;公开归档通过检查后也回读远端。
发现问题时
共享任务失败时继续分清 Claude 与 OpenClaw 哪段出错;短时网络故障可重试,账号或分支冲突不能靠重复操作解决。
入口不可用或证据不足时
配置或恢复文件缺失、认证失败、远端分叉或待提交内容不安全时停止,报告已保留哪一层副本。
从哪里开始
在已接通本机 OpenClaw 管理入口的 AI 对话中说清“查官方恢复点”“做隔离恢复演练”或“查现役私人备份”;精确目标与动作分开。
需要准备什么
- 想查备份、隔离演练还是现役恢复
- 要找的日期或版本(不确定可先列出)
从开始到拿到结果
- 1
先找准确的恢复点
AI 查后台任务的最近结果和实际备份;计划存在不代表文件可恢复。
- 2
在隔离位置验证
官方归档先校验再恢复到新暂存目录;私人备份分别查本地、独立磁盘和私有远端的结果。
- 3
说明还差哪一步
暂存成功不会自动覆盖现役配置;缺文件、读回不符或认证失败时列出仍可用的恢复点。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
官方归档与全新暂存恢复通过;三项备份的下一轮自然调度均为 0,AutoPush 时限问题修复后真实重跑为 0关键规则与设计选择
系统有 3 个备份任务承载 4 个消费者:独立 Codex Owner 在 20:05/22:05;本仓库 Gemini 在 20:10/22:10;共享 Claude→OpenClaw 在 20:20/22:20。
全部 7 个相关任务还包括开机 Gateway、开机后每 15 分钟 Heartbeat、停用但保留周日 13:00+15 分钟随机延迟定义的 Update,以及每日 21:15 AutoPush。
20:05/20:10/20:20 首轮都在本地/G 成功后遭遇同一 TLS(传输层安全)瞬断并返回 1;两位 Owner 为 2 小时时限的备份加入 30/120/300/900 秒网络退避,认证与分叉仍立即失败。
手动生产回归通过后,22:05/22:10/22:20 下一轮自然备份均为 Ready(就绪)/0x00000000,四个私人 Git 工作区干净且远端 OID 一致。
官方归档为 224,287,339 bytes(字节);include_workspace=false(不包含工作区),仍含私人配置和凭据。恢复只到 activation_performed=false(未激活)的全新暂存,灾备激活仍需另行授权和后验。
Codex 由独立 Owner 筛选小型可读配置、memories(记忆)和 Skills(能力说明);Gemini 排除原始会话/数据库/媒体;Claude 按项目 memory(记忆)目录;OpenClaw 保护可能含凭据的 config(配置)与过滤后的 workspace(工作区)。四条都具备本地、G SHA-256 与私人 Git OID。
AutoPush 21:15 自然运行以 0x00041306 暴露逐操作退避累计超过 15 分钟任务时限;aa4f9f1 删除它的跨时间等待,网络失败会立即返回非零并保留工作区。01:19:59 启动、01:20:04 完成,真实结果 Ready/0x00000000,PUBLIC(公开) 远端 OID 一致。
本模块用到的名词
- official archive(官方归档)
- 由 OpenClaw backup CLI(命令行工具) 创建、带 manifest(清单) 并可由同一 CLI(命令行工具) 验证的制品。
- fresh staging(全新暂存)
- 恢复目标在动作前必须不存在,避免混入旧文件或覆盖现役。
- exit-code propagation(退出码传播)
- 隐藏封装器把内部备份脚本的真实成功/失败返回 Windows 计划任务。
- shared task first error(共享任务首错)
- Claude 与 OpenClaw 两段都执行;Claude 有非零时优先返回它,否则返回 OpenClaw 结果。
- bounded network retry(有界网络重试)
- 只对瞬时网络/TLS 传输失败按固定上限等待重试;认证、策略和分叉不重试。
- G hot backup(G 盘热备)
- 四个消费者各自拥有的第二份本机镜像,以 SHA-256 或等价收据回读。
- remote OID(远端对象标识)
- Git 同步后重新读取的远端提交身份,比 push 命令未报错更强。
- staged(已暂存)
- 已进入 Git 索引、可能属于另一位工作者的改动;PUBLIC(公开) 自动归档遇到它会停止。
专业定义
AI 能从一处判断官方恢复点、四条私人备份和 PUBLIC(公开)仓库归档是否真的完成;人只在灾备激活等有影响边界授权。
解决什么
防止未经校验的复制品成为唯一恢复希望、防止演练覆盖现役,也防止 AI 把测试、任务启动、局部副本或端口在线误写成完整恢复。
当前怎样实现
- backup-config.ps1 只调用 openclaw backup create --no-include-workspace --verify --json;restore-config.ps1 再独立 verify(验证),要求新 Target(目标目录)并确认恢复文件。
- 本仓库 private-backup-settings.ps1 严格读取 gemini_memory、claude_memory、openclaw 3 组 16 个绝对路径键;Codex 配置由独立 Owner 管理,实际值都不进 PUBLIC(公开)。
- 独立 Codex Owner 与本仓库三个消费者都执行本地快照、G SHA-256 回读和私人 Git OID 回读;OpenClawGateway 已删除无人使用且能力落后的 Codex 副本。
- git-cloud-sync.ps1 只为备份消费者保留 30/120/300/900 秒网络退避;AutoPush 传入空时间序列,每个远端操作只有直接连接与当前系统代理即时尝试。认证、策略、behind(落后)或 diverged(分叉)都立即失败。
- 本仓库两个 hidden wrapper(隐藏封装器)分别承载 Gemini 和共享 Claude→OpenClaw;独立 Codex wrapper 传播自己的脚本退出码。
- auto-archive-push.ps1 每日 21:15 先检查 staged、禁止路径和凭据形态,再 fetch(拉取远端引用)判断同步关系;安全时才提交/推送,并统一回读远端 OID。
- db51ae7在原Gemini Memory Backup任务中加入antigravity-cli/settings.json、annotations/*.pbtxt和brain的Markdown/metadata.json,保留桌面Antigravity原范围。OAuth(账号授权协议)、账号、凭据类文件、.env、原始会话/JSONL、缓存、日志、内置组件和二进制排除;隐藏启动器只运行备份脚本,不调用退役Gemini CLI(命令行工具)。实际恢复依然按原相对路径选择回填并重新登录。
执行流程
- 1
AI 先读取 7 个相关任务的触发、State(状态)和 LastTaskResult(上次结果)。
- 2
官方恢复:create --verify → 独立 verify → 全新 staging(暂存目录)→ 保持 activation_performed=false(未激活)。
- 3
私人备份:各 Owner 精确筛选输入 → 本地快照 → G SHA-256 回读 → 私人 Git OID 回读。
- 4
20:05/22:05 触发 Codex,20:10/22:10 触发 Gemini;两个独立任务传播各自结果。
- 5
20:20/22:20 先尝试 Claude,再尝试 OpenClaw;两段都执行,最终优先 Claude 首个非零。
- 6
备份网络/TLS 失败用长退避;AutoPush 不跨时间等待,网络失败就明确返回并保留工作区;认证、策略、behind/diverged(本地与远端双向分叉) 都不重试。
- 7
PUBLIC(公开) 每日 21:15 先过门禁,再判断同步并 fresh 回读远端 OID。
- 8
真正灾备激活、更新、外部发消息或付费调用到达边界时,AI 再向人请求明确授权。
边界
- 不公开归档路径、内容、设置值、私库名、磁盘拓扑或日志。
- 不在恢复演练中停止网关,不原地覆盖现役。
- 隔离测试不触发真实备份;本轮真实任务回归另有独立回执。
- PUBLIC(公开) 自动归档不接管已有 staged、不提交禁止内容、不在 behind/diverged(本地与远端双向分叉) 时继续、不 force-push。
失败与恢复
- 官方 verify 失败、Target 已存在或恢复无文件
- 拒绝恢复,不生成 activation 可用结论。
- settings 文件、schema(数据结构)、目标 group 或 key 缺失
- 报告逻辑键并停止,不猜默认路径。
- 任一私人 Git 同步在有界网络重试后仍失败
- 任务返回非零;已完成的本地与 G 恢复点继续保留。
- 认证错误或远端 behind/diverged(本地与远端双向分叉)
- 立即停止,不把它当瞬时网络错误反复重试。
- 共享任务返回非零
- 分别查看 Claude/OpenClaw 两段脱敏回执;两段均已尝试,返回值优先 Claude 首个非零。
- PUBLIC(公开) 已有 staged、命中禁止路径/凭据或远端分叉
- 提交前停止并保留工作区;修正准确问题后正常重跑,不强推。
真实入口
tools/backup-config.ps1官方校验归档封装
tools/restore-config.ps1verify 后的 staging-only 恢复
tools/private-backup-settings.ps1本仓库三组设置 schema(数据结构) 与严格读取
独立 Codex 备份 OwnerCodex 小型可读状态、本地/G/Git 三层输出;不公开私有坐标
tools/backup-gemini-memory.ps1Gemini 小型状态、本地/G/Git 三层输出
tools/backup-memory.ps1Claude 项目 memory、本地/G/Git 三层输出
tools/backup-openclaw.ps1OpenClaw config/workspace、本地/G/Git 三层输出
tools/git-cloud-sync.ps1有界网络重试、分叉失败关闭与远端 OID
tools/auto-archive-push.ps1PUBLIC(公开) 21:15 门禁、同步判断和远端 OID 回读
如何验证
- 一次真实归档为 224,287,339 bytes,wrapper 与独立 backup verify 均通过;真实 restore 只到 fresh staging。
- OpenClawGateway 14 个脚本入口 exit 0、Pester(PowerShell 测试框架)30/30、34 个 PowerShell 文件解析 0 错;独立 Codex 备份回归通过。
- 首轮自然调度真实暴露 TLS 瞬断;手动回归后,22:05/22:10/22:20 下一轮三项自然备份均为 0,四个私人 Git 工作区干净且远端 OID 一致。
- 2026-09-09约05:05 UTC只读G元数据:Gemini 127文件、181152字节;Claude 36文件、76727字节;OpenClaw 186文件、2840710字节。Codex G新点为7016文件,H仍是前一日点。元数据回读不等于应用恢复验收。
- AutoPush 21:15 的 0x00041306 暴露逐操作退避累计缺陷;aa4f9f1 删除跨时间等待后,01:19:59—01:20:04 真实任务为 0,PUBLIC(公开) 远端 OID 一致。
- 没有执行灾备激活、网关重启、远程付费模型、真实渠道消息或 CodeG 工具调用。
- 9月18日回读PUBLIC(公开) main db51ae7c1832c4a852d35928aceaa66b8f1bda70及Gemini选择/排除代码和回归定义;没有重跑备份、读私人内容、调用模型或更新网关,旧任务与介质数值继续保留原日期。
与其他模块的关系
这里继续说明OpenClaw官方网关的归档、暂存与激活边界;Codex、Gemini、Claude、OpenClaw四套保存范围及恢复步骤集中见“AI 工作区备份与恢复”(既有/projects/codex-memory)。本仓库仍拥有三个消费者的现役脚本,Codex仍由独立来源维护,展示组合没有物理合仓。CodeG/Cline只是可选客户端。
