Codex 0.165.0 starts fresh profiles on memory v2, not old ones

OpenAI's Codex CLI 0.165.0 makes memory v2 the default only where no v1 memories folder exists, so upgraded machines keep v1 and new ones start on v2.

Listen to this story
4:06

OpenAI released Codex CLI 0.165.0 on October 27, and one line in its notes changes where Codex keeps what it learns: memory v2 is now the default "for fresh profiles." The word that matters is fresh. The change itself, merged October 22, picks v2 only when memories are turned on, no memories.version is set, memories.dual_write is not false, and there is no memories folder in the Codex home directory yet. A profile that already has that folder stays on v1, and so does one where the folder check fails. Nothing is converted. v2 writes to its own sibling folder, memories_v2, which the tagged source says keeps v1 cleanup and rollback independent.

That split touches Jon's system directly. His agents hand most coding and token-heavy work to Codex workers through LEJ Hyperfleet, and those workers run from the same Codex home as everything else on the machine. On the Mac Mini this story was written on, Codex was already at 0.165.0 on October 28, memories were on, and a v1 memories folder was there with its summary files. By the rule in the code, that machine stays on v1, and there was no memories_v2 folder beside it. A brand-new machine added to the fleet would start on v2 instead, so two machines on the same version would remember differently.

The same release lets people bring memories from other agents into v2. The import change, merged October 23, always writes imported material into memories_v2, and also into memories when v1 is selected or an old workspace exists. So an import can start filling v2 on a machine that is still reading v1.

Two fixes in the release matter for anyone running Codex agents in bulk. Queued agent messages can no longer restart work after an interrupt or a switch to Plan mode; the messages wait for the next explicit turn. And a marketplace URL check now rejects literal backslashes in the user part of an HTTP(S) address, because the URL checker and Git could read the same address as two different hosts.

How to use it

  • Run codex --version; this is 0.165.0 and later.
  • Check which memory you are on: look in the Codex home (~/.codex unless CODEX_HOME is set) for memories and memories_v2. Only memories means v1.
  • To stay on v1 on a fresh profile, set version = "v1" under [memories]. To move an old profile, the config type describes dual_write = true as building both versions while v1 is still selected, with v2 running alone after the switch to version = "v2".
  • The catch: the memories guide still documents only the memories folder and does not mention v2 or these two keys. Memories stay off until memories = true under [features], or the desktop setting, turns them on.

What nobody knows yet

OpenAI has not said what v2 does better than v1, or when existing profiles will be moved. The notes say nothing about how good v2's recall is, and no one outside OpenAI has published a comparison. It is also not said whether dual_write costs extra rate limit, since it runs two memory pipelines in the background.

What to watch

Codex 0.166.0 is in alpha, with its fifth build tagged early on October 28. Watch its notes for a v1 cutover or a change to the memories guide, and check the Codex home on any machine that gets a fresh install.

Sources