{"version":"2.1.247","anchor":"login-credentials-are-re-read-only-when-the-keychain-entry-a","canonical_anchor":"login-credentials-are-re-read-only-when-the-keychain-entry-a","heading":"Login credentials are re-read only when the keychain entry actually changed","tier":"notice","area":"Auth","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.247\/e\/login-credentials-are-re-read-only-when-the-keychain-entry-a","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.247","markdown":"### Login credentials are re-read only when the keychain entry actually changed\n\nYour login token is re-read from the keychain only when it genuinely changed, not on every check.\n\n**What**\n\nThe cached OAuth token is now held per host alongside the last credentials modification time, credentials version and last keychain access token, so a change check that cannot read a version falls back to comparing the keychain token itself and only invalidates the cache when it genuinely differs.\n\n**Details**\n\n- Replaces a set of memoized functions cleared piecemeal with a single per-host object exposing `clear()` and `resetChangeCheck()`.\n- The object also holds the in-flight fetch promise, so concurrent callers share one refresh.\n\n**Evidence**\n\n`lastKeychainAccessToken`\n\n- Area: Auth\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5"}