Session Release Roundup #17: The long awaited syncing update

Session Release Roundup #17: The long awaited syncing update

July 19, 2023 / Kee Jefferys

Important: While all these changes are packaged up in this update, they won’t be enabled in-app until July 31

Hey everyone, it’s been a while. How have you been? Things over here have been…a bit frantic. We knew it’d be tough when we set out to overhaul how Session syncs up conversations and devices, but the journey ended up being even more epic than we could have imagined. Sinbad? Never even heard of him. Don Quixote? Walk in the park. Luke Skywalker? Walk in the sky. Our devs deserve to be the most famed adventurers in history!

It's time for a Session story...

A long time ago (earlier this year), in a repo faaaar away (our repository), there was a monster known as ‘cross-platform development’. Cross-platform development was a merciless beast, gobbling up good code and spewing out a torrent of bugs and inconsistent behaviour. 

In a final attempt to slay the beast, we gathered up a group of the bravest devs in all of the land to forge a legendary weapon: a standardised library which could handle basic Session functionality for all platforms. They called it libsession.

Once libsession is complete, all of the basic Session-y stuff (like, sending a message) will be exactly the same for every client. This means we will be able to avoid unexpected conflicts or needing to rewrite huge chunks of code to accommodate for one platform’s idiosyncrasies. 

Configuration messages are the first major instalment to libsession, and we will look to add other functions (like encryption/decryption logic and onion requests) in the future. We are determined to take down that cross-platform beast! 🗡️

So, what about this ‘syncing update’? 🤔

Session uses special configuration messages to sort info about your profile and conversations. These messages don’t say ‘Hi’ or ‘how’s it going’, but are kept behind the scenes with important (end-to-end encrypted) information like ‘This is my profile picture’, ‘Messages in this chat should disappear after one day’, or ‘This is who is in our Group’. 

These messages are really important for two reasons: syncing between your devices, and restoring on new devices.

Trust in the Sync, Luke

If you’ve used your Session ID on multiple devices, or even just took a break from Session and came back, you might’ve noticed some things didn’t update when they were supposed to. Well, here’s a long, long list of things that will now update properly: conversations, unread counts, deleted messages, contacts, Groups, and Communities, your display name and profile picture, contacts’ display names and profile pictures, message requests, aaaand which conversations are pinned. 💪

Let there be updates

Now that we have scaled the syncing update mountain, we have a clear view of the trek ahead. Luckily, the changes we have made for configuration messages are going to make that work a lot easier. Phew! A lot of the fixes that y’all have been waiting on— like improved disappearing messages, push notifications, and Groups—are unlocked via these config changes. 

These have been some of the most challenging areas for Session for a while now, and I (and the rest of the team) are eager to get stuck into them. In fact, disappearing messages improvements are already well on their way — so keep your eyes peeled for future announcements about that update.

Until next time, 

Kee

Join the movement to keep the internet private!

Chat with like-minded individuals in the Session Community.

Friends don’t let friends use compromised messengers.

Sign up to the mailing list and start taking action!