Portable restore requires the same pinned Codex revision as the SDK that saved the checkpoint, according to the restore guide. Recognizing the JSON format is insufficient. Keep the matching SDK wheel available; changing the checkpoint’s codex_revision field does not migrate its contents.
The application must also open each restore with a fresh Agent and isolated storage, match saved Python and manual tool definitions, accepted instructions and any applicable output type, and supply current callbacks, credentials and context. Current MCP declarations can narrow an old selection. Saved text does not choose credentials or grant permissions.
Instruction recovery needs its own policy decision. The guide’s state.instructions accessor uses trusted checkpoint storage as the instruction source. If the application instead requires independently configured current instructions, restore requires an exact match and rejects a mismatch. Editing saved native history to insert new instructions or credentials is not the documented solution.
Saved model settings are another compatibility check: portable restore retains them. The guide rejects non-None opening model or model_settings overrides, including an empty settings object. Its permitted idle-update path comes after restoration; Sessions opened with NativeAgents cannot change the model or model settings. A recovery record should identify the configuration that will actually resume.