Summary:
- Seeds identity-wallet as a registered OAuth client in the relay DB (V013 migration)
- Implements the full OAuth PKCE + DPoP flow in the Rust backend: PAR, Safari redirect, deep-link callback, token exchange with nonce retry
- Adds OAuthClient authenticated HTTP client with lazy token refresh and DPoP header attachment
- Adds post-onboarding auth screens (SvelteKit) and startup token restoration from Keychain
Test Plan:
- cargo test -p relay v013_seeds_identity_wallet_oauth_client passes
- cargo test -p identity-wallet -- --skip device_key passes (device_key failures are pre-existing, unrelated to this PR)
- cargo test -p identity-wallet oauth_client passes
- Human test plan at docs/test-plans/2026-03-23-MM-149.md — covers fresh OAuth flow, token persistence across restart, auth failure recovery, and security verification