This refactor is an improvement on the API architecture:
- Tasks are replaced by Cmd
- Tasks will now always succeed so the Vault can deal with the issues itself
- Failed tasks will be recorded so they can be re-attempted later
- The Snackbar now fully supports editing sub-parts of a data type.
The SDK now supports temporarily showing events before getting them from sync.
One example is to let users show the messages they sent themselves before the sync confirms that their events are on the timeline.
The Vault will now get an event after having sent it to see what it looks like.
If the user has an expired access token, the Vault will get a new token on the next sync.
I have had a few helpful Elm ideas and lessons while at FOSDEM, which may help the project in positive ways. For example, the fact that the file `Leaking.elm` exists, suggests that the code has a few downsides that may shine through when a refactor is made. For this reason, some features will be reworked and reprogrammed.
Luckily, Elm's homepage claims that this language is easy to refactor. :)