Improve process to solve recovery issues
Currently, some account recovery state issues cannot be solved from Fractal so we have to tell users to use other clients to solve them, which is not ideal.
In particular:
- When the account recovery is incomplete, we don't know what is missing. This is due to the high-level API from the SDK not giving us any details, but we could get them from slightly lower-level methods.
- If at least one key from the crypto identity is missing, we should offer to reset the crypto identity as a last resort to solve it.
- If the backup key is missing, we should offer to reset the room keys backup as a last resort to solve it.
- After resetting some keys, we must update the recovery data.
- Resetting only account recovery is only useful if we have all those keys locally so there is no need to offer it otherwise.
Edited by Kévin Commaille