I was excited to see that Swarms are finally arriving in the non-beta releases. Hopefully messages will now make their way to all devices connected to an account.
But the requirement that I and my contacts delete all of our existing conversations, going back years, on multiple devices, in order to use Swarms, is a major letdown. Will later releases do automatic migration from old style conversations? (Swarms being based on Git should help with merging the existing conversation history from multiple devices, I imagine?)
If not, will it be possible to manually export an existing conversation history, and import it back into a Swarms conversation?
In the future, there will probably be an “archive and restart” button to archive previous conversations.
But no, I don’t think there will be any migrations for a lot of reasons such as:
Previous conversations were not synced, so the format is incorrect, probably with different orders across devices, with missing messages, etc
Swarm is synced and messages are signed by the sender.
So, even if all devices are there (which will probably not be the case due to expired, revokation, lost devices, user not there anymoreetc), history can’t be the same or re-done. Or even resigned (cause the device can’t sign for others).
Moreover, even a basic incomplete version of this will need a loooot of work, probably some months, to do on all clients, which is also not possible.
Don’t messages have a “sent” time stamp? If they do, it should be possible to:
Have each device send across their record of the conversation history to all other devices the first time they connect after both are upgraded to a version capable of this.
Create the union of all messages and eliminate duplicates.
Sort by time stamp.
Mark the imported messages with an “unsigned” flag.
In the UI:
a) Show a horizontal marker below the last unsigned message: “some messages above this line cannot be verified”.
b) When viewing details of a message add a note: “legacy message, not verified by sender” (please don’t put scary warning triangles on all the old messages).
Per @sblin, in old non-swarm conversations there’s no “sent” timestamp for messages, only “received” ones. Also, unlike in swarms, in old conversations messages don’t have any ID or order, and there could well be missing (undelivered or deleted) messages on each side. These factors, combined with the time and effort required to implement and test a potential solution across clients and platforms with different database formats, and in a reliable/working way (because of the possible variations and edge cases), makes this practically infeasible for the small Jami team to tackle.
As @sblin mentioned, something that could be done more feasibly would be adding an “archive and restart” button – or perhaps even an “export” (to plain text or html) button – to old non-swarm conversations so that they could be archived/exported and kept for historical purposes and a new swarm conversation get created in their place.