Environment variables are now read through one typed table, with the same names and behaviour.
What's wrong with this entry?
A large sweep moved direct process.env reads onto a generated accessor with one entry per variable, covering organization UUID, API key, account UUID, user email, effort level, auto-compact disable, Bedrock and AWS region selection, MCP truncation, telemetry opt-in, gateway loopback, tmux detection, tool search and the voice interim-forwarding flag. Names and behaviour are unchanged; parsing and coercion now live in one place.
CLAUDE_CODE_ENABLE_PROMPT_SUGGESTIONis now compared as a boolean rather than parsed from a string with truthy/falsy helpers.- Some tmux and
CLAUDE_MEMORY_STORESsites lost their explicit trim before the truthiness test; otherCLAUDE_MEMORY_STORESreaders still trim. - Several one-line env-parsing helpers were deleted outright, including the gateway loopback escape, the telemetry opt-in, the remote flag and the AWS region pair.
- The table also supports writes, which is how the entrypoint value is set.
- A few user-visible messages still read
CLAUDE_CODE_EFFORT_LEVELfromprocess.envfor display, and the proxy diagnostic still tells you to setENABLE_TOOL_SEARCH.
CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION, CLAUDE_MEMORY_STORES is not valid JSON: , CLAUDE_CODE_VOICE_FORWARD_INTERIMS_TYPED, return Y.CLAUDE_GATEWAY_ALLOW_LOOPBACK;, Set ENABLE_TOOL_SEARCH=true (or auto / auto:N) if your proxy forwards tool_reference blocks.
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
-
v2.1.223
Invalid config dialog is now awaited before returning
Both mention configuration
-
v2.1.228
Env vars set to an empty string now count as unset
Both mention configuration
-
v2.1.236
Reporting a corrupted config can no longer crash Claude Code
Both mention configuration