Skip to content

feat: add Codex profile migration - #22

Merged
z2z23n0 merged 1 commit into
mainfrom
feature/codex-profile-migration
Jul 23, 2026
Merged

feat: add Codex profile migration#22
z2z23n0 merged 1 commit into
mainfrom
feature/codex-profile-migration

Conversation

@z2z23n0

@z2z23n0 z2z23n0 commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Mainline Intent

Intent: int_c2a73786
Status: proposed
Title: 将 Codex 跨 Mac profile 迁移固化为 Agent Capsule 能力

What changed

新增 capsule profile 命令组和独立的 agent-capsule.codex-profile.v1 迁移清单,覆盖项目发现、显式范围导出、令牌化 LAN 服务、增量拉取、目标端 Git 克隆、受控离线导入、一次性 macOS 调度、完整性校验与清理。同步更新 Agent Capsule skill 和中英文 README,让代理能够通过目标 Mac 的 Codex 任务编排完整迁移。

Why

本次真实换机证明单会话胶囊不足以恢复项目侧栏、原生 thread id、skills、MCP 配置、memories 和 automations,临时 launchctl submit 还会造成 Codex 重启循环。需要把已经验证过的边界和执行顺序做成可重跑、可备份、可校验的正式能力。

Decisions

  • 与现有 session capsule 的关系: 新增独立的 capsule profile 命令组,保持现有 capsule import 的 import-as-new 语义不变。 (profile 迁移要保留选中原生 thread id 并合并项目状态,而普通会话交接必须继续创建新任务。)
    • Rejected: 复用普通 capsule import 覆盖目标 thread
    • Rejected: 双向同步整个 ~/.codex
  • 项目和未提交内容的迁移方式: 项目范围必须显式确认,目标端用 Git clone 重建工作树,未提交和未跟踪内容不迁移;私有 remote 或未 push commit 使用按需下载的 committed-only Git bundle。 (避免传输大工作树和本机临时文件,同时能在目标 Git 凭证不足时保留确定的已提交状态。)
  • profile 传输通道: 第一版使用带随机令牌的 LAN HTTP 静态目录和逐文件 SHA-256 增量拉取。 (现有 Worker/R2 link API 有 32 MiB 和整文件内存路径边界,不适合 GiB 级 profile;LAN 流式传输已经在真实迁移中验证。)
    • Rejected: 把完整 profile 塞入现有单 session 分享接口
  • 目标覆盖和身份保留: 只覆盖受控 profile 白名单,导入前 checkpoint 和备份,结构化合并 thread SQLite 与全局项目状态;保留目标 auth、安装 ID、远程设备 enrollment、Keychain 状态和 skills/.system。 (目标是新装 Codex,但登录态和设备连接必须属于目标机器,不能从源机复制。)
  • Codex 离线导入调度: 使用 ~/.codex staging、RunAtLoad=true、KeepAlive=false 的 LaunchAgent,runner 成功或失败后自删 plist,并在导入失败时重新打开 Codex。 (避免 Downloads TCC、父进程退出和 KeepAlive/launchctl submit 导致的重复拉起循环。)
    • Rejected: launchctl submit KeepAlive job
    • Rejected: 从 Downloads 运行脚本
    • Rejected: 把后台子进程挂在 Codex 进程树下

Subsystems: README.md, README.zh-CN.md, cmd, profile, skills

@z2z23n0
z2z23n0 marked this pull request as ready for review July 23, 2026 11:39
@z2z23n0
z2z23n0 merged commit 5fbed70 into main Jul 23, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant