Under the hood
Version-mismatch startup failures now return structured JSON for SDK-driven sessions
What
When Claude Code's CLI is too old to talk to a newer workspace or server, and it's running with --output-format stream-json plus CLAUDE_CODE_STARTUP_FAILURE_RESULTS set, the version-mismatch failure is now emitted as a structured JSON result object with startup_failure_reason: 'cli_version_too_old', instead of only printing a human-readable error to the console before exiting.
Why
Tools and SDKs that drive Claude Code programmatically can now detect and handle this specific failure reason directly from the output stream, rather than having to parse plain-text error messages.