Chrome fires startup and install together, so two session refreshes could rotate the same refresh token. They now share one in-flight rotation, and the offscreen document is reference-counted: a close waits for the last message instead of cutting off another refresh or an interactive sign-in. No persisted state or credential changes.
Tests cover concurrent startup/update refreshes and overlapping offscreen callers. Typecheck and the affected suites pass; the integrated 2.1.0 tree also passes live smoke and the store-identity auth probe.
🤖 Generated with Claude Code