Setting CLAUDE_CODE_FORK_SUBAGENT decides fork subagents up front, and the answer is cached per session.
What's wrong with this entry?
The check for whether fork subagents are enabled now evaluates the hard disable and CLAUDE_CODE_FORK_SUBAGENT=false before anything else, and caches the result on the session config instead of a module-level variable. Setting the variable to true reports the source as the environment; otherwise a rollout check decides.
- The telemetry event for how the setting was resolved fires once, and only when the result is not disabled.
CLAUDE_CODE_FORK_SUBAGENT
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.234
Another forged control tag is escaped in subagent output
Both mention subagent
-
v2.1.234
Spawned processes get
--flag=valuewhen the value looks like a flagBoth mention subagent
-
v2.1.235
New error for delegating to a subagent without naming one
Both mention subagent