async fn handle_v2_upgrade(client: &Client, data: &CryptoSyncData)Expand description
Applies a V1 to V2 upgrade done on another device to an unlocked client.
The upgrade token and V2 state are stored above, but an unlocked client still holds the V1 user key, in memory and in client state. Re-initializing swaps it for the V2 key and writes that back, so the client does not prompt for a second, destructive, V2 to V2 rotation.
unlocked client (K1) ── sync(V2 state + token) ──▶ reinit ──▶ K2 in memory and in state locked client ── sync(V2 state + token) ──▶ nothing, the next unlock upgrades