Protection against losing ~/.claude.json now applies to everyone
Claude Code now always guards your config file when it reads as missing, and CLAUDE_CODE_CONFIG_LOCK_WAIT_MS sets how long some saves wait for the lock
You'll noticeTier: how much it should matter to you
3Useful: my rating, 1 to 5
1Signal: worth watching, 1 to 5
ConfigurationArea: what it touches
ImprovementsKind: in v2.1.318,
ImprovementsSection of the release
What
Claude Code keeps your settings and login details in a config file, ~/.claude.json. Its safeguards for when that file briefly reads as missing no longer need CLAUDE_CODE_ENABLE_CONFIG_MISSING_READ_GUARD. That variable is gone and setting it does nothing. The safeguards now always run:
at startup, if the file reads as missing, Claude Code looks again before carrying on
an existing user ID, machine ID and session key are kept when they are valid, and replaced only when they are not
some saves can wait for the file's lock (a marker that stops two processes writing at once), for up to CLAUDE_CODE_CONFIG_LOCK_WAIT_MS
if such a save cannot read the file while holding the lock, it writes nothing
when a save is dropped, Claude Code says the change applies to this session only and tells you to make it again later
Logging out also changed. The stored API key is always cleared. When you sign in again, Claude Code checks that the stored account still matches the one you signed in with, and removes the stored login if it does not.
Why
This makes it much harder for your config file to be wiped or overwritten when it only looked missing for a moment. If you see the message about making a change again later, that change was not saved for future sessions.
How sure we are
One source agreesOne thing we can check says the same as this entry.
Anthropic's release notes agreeFixed retention cleanup leaving a home that only runs claude -p with no ~/.claude.json backup: it now takes a fresh backup before deleting…