Skip to content

v0.7.0 - Codex Support Alongside Claude Code

Latest

Choose a tag to compare

@SpiGAndromeda SpiGAndromeda released this 22 Jul 20:19
· 12 commits to main since this release

Summary

Add OpenAI Codex support alongside Claude Code. Every command now takes a repeatable --tool flag to pick which tools a run touches, moves are crash-safe across both tools, and non-fatal findings surface as warnings instead of silent skips.

Changes

Features

  • Add OpenAI Codex as a second supported tool. move, export, import, push, pull, and stats all operate on Codex projects, and with --tool omitted a command runs against every tool it detects. Pass --tool codex or --tool claude (repeatable) to limit a run. (#55)
  • Make moves crash-safe. A move stages its writes and publishes them by atomic rename; an in-process failure rolls back and restores file modification times, and a move killed mid-apply re-runs to convergence. (#55)
  • Surface non-fatal findings as warnings. move, import, and pull now report a malformed history line, an active writer, or a rules file that references the project instead of silently skipping the entry or refusing the whole run. (#55)

Fixes

  • Stop Claude import from answering the destination machine's security prompts. Import used to copy the .claude.json trust-dialog and external-include approval keys verbatim, pre-accepting the folder-trust checkpoint that gates the archive's allowedTools and mcpServers. Those keys are now destination-owned, so Claude Code asks its own questions the first time an imported project opens. (#62)
  • Raise the Go floor to 1.26.5 so release binaries pick up the stdlib fixes for the crypto/tls and os vulnerabilities. (#54)
  • Render push, pull, and move --apply output after the progress ledger tears down. Plan summaries and result tables were interleaving with the ledger's live region and staircasing across the terminal. Apply runs also print a real command header instead of the [dry-run] prefix. (#64)
  • Reconstruct per-session witnesses on Claude import. An imported project used to land unwitnessed, so its identity check was skipped with a "no witness" warning. import now writes a ~/.claude/sessions/<id>.json witness for each staged session, attributed to the destination and recorded with pid 0 so it never blocks a later move. (#63)
  • Make Codex rollout imports converge. When an import stages a rollout, cc-port re-arms Codex's one-shot session backfill so the next Codex start rebuilds the missing threads rows. The old warning told users to rerun after opening the project, which never worked. (#61)
  • List Codex projects known only through a rollout file in all-projects stats. stats built its project set from thread cwd values and config.toml keys alone, so a project whose cwd appeared only in a rollout was missing entirely. (#58)
  • Close the pull dry-run and push warning parity gaps. Pull's dry-run now refuses every archive --apply would refuse by running the same preflight gates, and push now prints the export warnings it was silently dropping. (#59)

Documentation

  • Refresh the export/import, push/pull, and move demo clips to show both Claude Code and Codex. (#65)

Dependencies

  • Update Go modules and GitHub Actions dependencies. (#52, #53, #56, #57, #60)

Breaking Changes

The --claude-dir flag is gone. Use --claude-home or --codex-home to override a tool's state location, and --tool <name> (repeatable) to limit a run to specific tools.

metadata.xml changed shape. The old root-level <export><categories> block and top-level <placeholders> are replaced by one <tool name="..."> block per exported tool, each carrying its own categories and placeholders. Archives produced by v0.6.0 and earlier don't import.

Upgrade Notes

  • Replace any --claude-dir <path> invocation with --claude-home <path>.
  • Re-export any archives you still need to import. Archives from v0.6.0 and earlier no longer load under the new metadata.xml schema.