Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.238 Home All releases olderv2.1.237 v2.1.239newer
Claude Code v2.1.238

OAuth refresh-token lookup goes async and skips macOS

Under the hood
Useful1 Signal2
Auth

The stored-refresh-token check now runs asynchronously and returns false straight away on macOS.

What

The check that decides whether a stored OAuth refresh token exists is now asynchronous, so it can consult state that has to be read from disk or over the network before answering. On macOS it returns false immediately without doing that work, leaving the keychain-backed path to handle credentials there.

Details
  • The check also returns false immediately when the CLAUDE_CODE_OAUTH_TOKEN environment variable is unset, and only looks for the saved token when neither the macOS nor the unset-variable condition applies.
  • Three call sites that conclude a token cannot be refreshed now await the check rather than calling it synchronously, so the resulting no_refresh outcome reflects state fetched at the time of the check.
  • On macOS the outcome is unchanged in effect: the keychain path supplies credentials, and this check contributes nothing.
Evidence

CLAUDE_CODE_OAUTH_TOKEN, no_refresh

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.

See this entry in the whole of v2.1.238 →