用途与实际影响
这项功能怎样使用
为什么需要它
Codex 正在使用时,对话文件和数据库会变化,逐个直接复制可能前后不一致。夜间任务从同一时间点读取所选文件,再核对完整性;它仍只能恢复到那一刻。
举个实际例子
我继续写代码,夜间备份取得当时的会话文件并保存到 G 盘;只有这一点的文件都核对完整,才把它标成最新。之后的新对话要等下一次。
最后我会得到什么
得到带时间和文件清单的 Codex 会话恢复点。它不保证故障前最后一秒,也不因为文件可复制就证明应用内部所有操作都已保存。
正常时
同一时间点选出的会话文件在 G 盘完整核对后,才发布新的恢复点。
发现问题时
执行权限不足时停在检查,不把只读状态查询当成已经备份。
入口不可用或证据不足时
G 盘缺席或未解锁时这次热备不能进行,旧完整点仍照原状态保留。
从哪里开始
在已接入的 AI 对话中明确请求检查或执行 Codex 会话热备;执行需要项目已登记的管理员备份入口。
需要准备什么
- 目标 Codex 会话来源
- G 盘是否可用
- 需要的新点时间
从开始到拿到结果
- 1
先确认执行条件
检查现有点、G 介质和权限,普通状态查询不新建快照。
- 2
取得同一时间点文件
执行时从 E 卷快照读取纳入的会话、附件和状态文件,并写对象与清单。
- 3
只发布完整点
所有引用对象校验后才更新 G 当前指针;快照之后的新对话待下次,数据库事务与应用加载仍需另验。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
9月24日 G 当前 1,983 文件,H 仍是9月23日 1,928 文件;指针与清单可读,完整对象及新机应用恢复未在本轮重验关键规则与设计选择
捕获语义明确为 vss_crash_consistent,不能升级为数据库事务和应用全部正常。
覆盖 sessions、archived_sessions、thread backups、attachments、dictation、状态数据库、会话索引、生成图像/visualizations 与自动化状态。
排除诊断日志库、临时缓存、插件、worktrees 和 auth,不为日志体积增大扩大备份范围。
桌面G是登记、已解锁的完整BitLocker加密卷;次机profile核对自己的来源/热/冷卷唯一身份、所需加密状态及路径隔离。主机不匹配、介质不符或目录重叠时停止,不写到桌面默认路径。
本模块用到的名词
- VSS Crash-Consistent Snapshot(卷影崩溃一致性快照)
- 时间点磁盘视图,不是应用一致性承诺;恢复后的数据库和应用仍需验证。
- Hot backup(运行期热备)
- 应用保持运行时采集副本;会消耗 I/O 和空间,不等于前台性能完全不受影响。
专业定义
继续使用 Codex,也能形成明确时间的会话备份点
解决什么
减少活动数据复制时点不一致和文件占用导致的失败,并保留可检查的失败结果。
当前怎样实现
- Hot使用Global\CodexConversationBackupV1互斥锁并立即尝试取得;已有运行返回conversation_backup_already_running。创建VSS前检查vss-active.json,创建后登记准确shadow_id与卷;finally只清除此卷影及匹配记录,清理失败继续报错,并释放本次互斥锁。
- VssProbe -Execute 只探测登记 E 卷快照创建及释放;Hot -Execute 才捕获会话。
- 以 8MB 缓冲区处理文件,VSS 身份回读绑定登记的物理卷。
- Write-AtomicBytes 写穿/回读元数据,所有引用对象通过验证才发布指针。
- 进度写入 LocalApplicationData/CodexConversationBackup 和 G;输出阶段、字节数、文件数、速度与 ETA,不输出正文。
执行流程
- 1
管理员执行 -Mode Hot -Execute 并检查登记 G 介质。
- 2
在 E:\Data\AppData\Codex 所在卷创建并核验 VSS。
- 3
枚举快照会话/附件/状态白名单,计算文件内容哈希。
- 4
写入新增对象、manifest(清单) 与 closure,完整回读引用对象。
- 5
发布 current(当前状态) 后释放此次 VSS;失败不提前把新点设为完成。
边界
- 需要管理员及 -Execute;不能由普通 Inspect 结果推出已经新建了快照。
- 排除 auth、cache、plugins、worktrees、链接和诊断日志数据库;纳入的会话/数据库之外不声称全盘备份。
- SQLite数据库及被选中的WAL/SHM按同一VSS点作为文件保存;Restore回读文件哈希,不执行数据库SQL修复,也不证明事务全部提交。打开恢复副本后的SQLite状态、索引和应用加载需要单独验证。
失败与恢复
- 缺少执行参数或管理员身份
- 返回 execute_required 或管理员要求,停止相应动作。
- G 介质状态不符合要求
- 停止当前热备,保留已有恢复点;由介质所有者恢复条件后再重试。
真实入口
tools\Invoke-CodexConversationBackup.ps1VSS 卷影抓取与全量会话灾备核心实现
tools\codex_conversation_hot_hidden.vbs用于任务计划程序的静默无窗启动包装器
tools\test-codex-conversation-backup.ps1合成点去重、校验和隔离恢复测试;不测试生产 VSS 性能
如何验证
- 历史9月12日05:41Z G/H当时点同为20260912T041508Z-8cec9794,7167文件、49,655,464,859字节;指针、清单与闭包逐盘回读匹配。9月9日G旧点7016文件及当时H不可用均为历史;本次未重验全部对象。
- 9月7日三个人工点及9月8日任务规格为旧桌面证据。次机9月12日PCConfig只读回执为已安装字节匹配、自然任务0、热/USB冷点相同323文件;本轮未重新创建VSS或哈希全部对象。
与其他模块的关系
负责原始对话、附件、生成图像和应用状态。桌面与轻量配置分线;次机profile额外纳入选定私有配置、agents、memories和skills,云端安全投影仍独立。
