Summary#
- Adds
register_handleRust IPC command: fetches relay domain fromdescribeServer, reads DID + session token from Keychain, POSTs toPOST /v1/handles - Adds
check_handle_resolutionRust IPC command: pollsresolveHandleendpoint, never rejects (safe for setInterval) - Adds
HandleRegistrationScreen.svelte: auto-runs on mount, shows polling progress after registration, 2-minute timeout with graceful proceed - Wires
handle_registrationstep into the onboarding state machine betweenshamir_backupandcomplete
Test plan#
- Complete onboarding through Shamir backup; confirm
handle_registrationstep appears next - Verify handle badge shows
alice.your-domain.comduring polling phase - With relay running: confirm registration succeeds and
onsuccessfires on resolution - With relay returning 409 HANDLE_TAKEN: confirm error message and retry button appear
- With DNS propagation slow: confirm
ontimeoutfires after 2 minutes and onboarding continues - Rust serialization tests:
cargo test -p identity-wallet register_handle(8 tests pass)