The migration nonce is now stored in `app.json` file instead of
separate `migration.json`. It will ensure consistency between nonce
and app data, because the file is written in atomic way.
Migration handle legacy migration file and remove it properly.
The migration nonce is now stored in `app.json` file instead of
separate `migration.json`. It will ensure consistency between nonce
and app data, because the file is written in atomic way.
Migration handle legacy migration file and remove it properly.
Closes#1235
This commit introduce a pretty big change on how app data files are
managed. Instead of having multiple `accounts.json`, `settings.json`,
`user.json`, `countervalues.json`, it now store everything in a single
`app.json`. And it does it in an *async* way, so it should prevent some
frame loss.
Migration will be seamless, and will keep `accounts.json` encryption if set.
So no user action is involved.
This changes comes also with some simplification on password handling
(e.g: no more need to store password hash).
/!\ Disclaimer
During development, I ran about a weird issue (~ 3 or 4 times) when my
data was simply "erased" in the file, so back to onboarding, no more settings,
etc. I suspect race/write condition, something with write-file-atomic, but I
didn't managed to reproduce, everytime I tried. Anyway, I feel not 100% confident
with it, so if you guys can test on your side, with your data (with encryption
key or not) it will help a lot!