In print mode, where Claude Code handles a request without its interactive screen, telemetry (the collection of usage and performance data) is now set up straight away only when CLAUDE_CODE_ENABLE_TELEMETRY is set or one other internal condition holds. Otherwise its setup is deferred through a host callback named telemetry_init, and that callback is skipped if the process is shutting down. Other startup housekeeping has moved into a separate idle_startup_work callback.
A process can now also be a "parked spare" (spareClaimState() === "parked"). In that state:
- Session-start hooks, which are commands you configure to run when a session begins, are skipped.
- MCP servers (outside tools connected through the Model Context Protocol) configured at neither project nor local scope are held back from the first round of connections.
The run also now waits on earlyRemoteLink.
If you set CLAUDE_CODE_ENABLE_TELEMETRY, telemetry still starts immediately. Without it, telemetry setup happens later in the run instead of at startup. If you rely on session-start hooks, note that they do not run while a process is parked.
The finding does not say what a parked spare process is, how one is created, or when the held-back MCP servers are connected.