3a21cfc2f5
OnParametersSetAsync awaits the principal. On a real cookie session that await suspends, so the FIRST render ran with _visible still false and OnAfterRenderAsync(firstRender: true) skipped EnsurePollingStarted(); the render that followed the resolve was firstRender: false, and nothing else started the poll unless AuthenticationStateChanged happened to fire. The block therefore rendered and sat on 'Checking for updates…' for the life of the circuit. OnParametersSetAsync now starts polling itself when visible (the start is idempotent and the OnAfterRender call is kept). Also corrects the comments that called the non-forced GetAuthenticationStateAsync cheap: on CookieAuthenticationStateProvider both entry points revalidate against the database and differ only in failClosed, so the saving is not asking the provider on a tick and reusing the cascaded state the router already resolved. The provider fallback is a real refresh, is only taken when no cascade is present (AddCascadingAuthenticationState is registered, so it is dead in production), and is now resolved at most once per auth state rather than on every parameter set. Claude-Session: https://claude.ai/code/session_01Y5ef34iUUMjmwnMpL9xgmB