← Changelog

March 2026

34 versions to production, 131 development entries — deterministic identity, random master key, first calls

Mar 1 v3.15.057 PROD Unified the three separate chat notification zones (connection, identity, system messages) into a single strip
Mar 1 v3.15.061 PROD Hardened the application's HTTP header security
Mar 1 v3.15.062 PROD Optimized code so the application loads faster
v3.16a dedicated privacy and security hardening milestone
Mar 1 v3.16.000 DEV User identifiers no longer appear in plaintext in error logs, only a hash
Mar 1 v3.16.000 DEV Relay server credentials no longer include your real identifier
Mar 1 v3.16.000 DEV Removed a database column that was never used and stored IP addresses
Mar 1 v3.16.000 DEV Deleting an account now also cleans up its traces in the rest of the internal tables
Mar 1 v3.15.065 DEV Signed locations shared in chat no longer disappear when the page reloads
Mar 2 v3.16.024 DEV Files shared during sync between your devices now transfer more efficiently
Mar 2 v3.16.024 DEV Explanatory notice the first time you enable self-destructing messages
Mar 2 v3.16.024 DEV Unified how new messages and messages loaded from history are displayed
Mar 2 v3.16.024 DEV Fixed a visual bug: raw translation keys briefly appearing in the header when loading was slow
Mar 2 DEV Fixed the translation cache not detecting text changes when the number of keys stayed the same
Mar 2 DEV Optimized binary message sending (30% less overhead) without breaking backward compatibility
Mar 3 v3.16.037 PROD Payments are no longer linked to your user account in the internal system
Mar 3 v3.16.037 PROD Removed the email field from accounts (it was no longer being stored)
Mar 3 v3.16.037 PROD The connection (STUN) server is now self-hosted instead of relying on Google
Mar 3 v3.16.037 PROD Your saved contacts are now encrypted at rest as well, not just in transit
Mar 3 v3.16.037 PROD Sessions are no longer kept open by default between visits, unless you choose to
Mar 3 v3.16.037 PROD The message delivery log is also encrypted at rest
Mar 3 v3.16.039 DEV Tightened internal access to a session token (smaller attack surface)
Mar 3 DEV Fixed a security bug: sensitive session data could remain stored locally longer than it should during a payment
Mar 4 v3.16.051 DEV Fixed a regression that made connecting with another person take much longer than normal (from under 4 seconds to up to a minute)
Mar 4 v3.16.054–058 DEV Fixed a bug that showed already-read messages as if they were new
Mar 6 v3.16.083 DEV Fixed a backup that included unnecessary temporary data, inflating its size
Mar 6 v3.16.080 DEV Fixed a reconnection bug when importing your identity on a new device (it couldn't find your contacts)
Mar 6 v3.16.078 DEV The full backup now also includes your cryptographic identity, not just your messages
Mar 6 DEV Fixed the server clock calculation, used to synchronize messages
Mar 6 DEV Complete redesign of the backup system: strengthened encryption (1 million iterations), chunked export and import to avoid overloading memory, progress bar, and contact conflict resolution
v3.17a complete backup system redesign, incompatible with older backups
Mar 7 v3.17.018 DEV Simplified the sidebar menu (from three rows to two, less-used options moved to a dropdown menu)
Mar 7 v3.17.019–020 DEV The theme selector is now a custom dropdown instead of the browser's native selector
Mar 7 v3.17.021 PROD Fixed a bug that caused the language menu to open and close on its own
Mar 7 v3.17.022–023 DEV Fixed emojis appearing where they shouldn't in the theme selector
Mar 7 v3.17.022–023 DEV Fixed four separate causes of a bug in the language menu
Mar 7 v3.17.017 DEV Redesigned the dialog for creating a new tunnel, with the connection code more visible
Mar 7 v3.17.017 DEV Investigated and fixed a regression that made connecting take 30-35 seconds instead of being instant
v3.18a same-day version-numbering false start, reverted
Mar 8 v3.18.001 DEV Fixed a bug where reconnecting after switching devices could create a duplicate contact instead of updating the existing one
Mar 8 v3.17.040 DEV Added an in-app explanation of why reconnecting with a restored identity doesn't merge existing tunnels
Mar 8 v3.17.036 DEV The vault modal now shows the date of the last backup performed
Mar 8 DEV Fixed a serious bug: the database deletion scripts had never actually deleted anything, in either development or production, since they were created
Mar 8 v3.17.037 DEV Improved the error message when trying to share location from a desktop computer without GPS
Mar 8 v3.17.038–039 DEV Added the option to disable backup reminders
Mar 8 v3.17.034 DEV Periodic backup reminder system (daily/weekly/monthly, snooze 24h)
Mar 8 v3.17.033 DEV Fixed some message fields (expiration date, delivery, read status) being lost when making a backup
Mar 9 v3.17.047 DEV Relocated the three-dot menu in the chat header so it no longer runs off screen
Mar 9 v3.17.043 DEV Fixed the "no tunnels" message overlapping with pending requests
Mar 9 v3.17.044 DEV Fixed a bug preventing the profile photo from being saved
Mar 9 v3.17.045 DEV Fixed profile photo changes not reaching your contacts
Mar 9 v3.17.046 DEV Fixed accepting or rejecting an identity reconnection being silently lost
Mar 9 v3.17.042 DEV New welcome messages when you don't have any tunnels yet, with a button to copy your invitation link
Mar 9 v3.17.042 DEV Detection of duplicate cryptographic identity between two contacts, with an explanatory notice
Mar 9 v3.17.041 DEV Three-dot menu to copy or delete a conversation's history
Mar 9 v3.17.041 DEV Option to pause a tunnel without needing to delete it
Mar 9 v3.17.041 DEV Tool to copy the full history of a conversation to another contact
Mar 10 v3.17.066 DEV Your identity is now stored per account on the same device, preventing mix-ups between different users
Mar 10 v3.17.066 DEV Reconnecting with your own restored identity no longer destroys or recreates the existing tunnel
Mar 10 v3.17.063 DEV Fixed some files being left orphaned after switching devices, and a memory leak during long conversations
Mar 10 v3.17.056 DEV Fixed a contact's connection indicator flickering between yellow and red for several minutes after they disconnected
Mar 10 v3.17.056 DEV The duplicate identity notice now shows the contact's real name instead of a code
Mar 10 v3.17.054 DEV Fixed four coordination bugs when connecting that sometimes prevented the tunnel from being established on the first attempt
Mar 10 DEV Connection retries now wait progressively longer between attempts instead of repeating nonstop
Mar 10 DEV You no longer get notifications when contacts you've never added disconnect
Mar 10 DEV Persistent notice when two contacts share the same cryptographic identity
Mar 11 v3.17.085 DEV Encrypted connection signals so the server can't see them, hardening resistance against man-in-the-middle attacks
Mar 11 v3.17.085 DEV Backups now use stronger key encryption
Mar 11 v3.17.085 DEV Messages and active connection signals are now padded to a fixed size to make traffic analysis harder
Mar 11 v3.17.085 DEV Removed IP addresses from server logs
Mar 11 DEV Added the option to "delete for everyone" an already-sent message, with a 60-second window
Mar 11 v3.17.081 PROD Optimized batch vault decryption — messages and contacts load much faster
Mar 11 v3.17.082 PROD Fixed the homepage not loading correctly on Windows
Mar 11 DEV Translation audit: fixed 269 strings that were appearing in English across 26 languages
Mar 11 v3.17.078–079 DEV Fixed the three-dot menu (it was displaying horizontally instead of vertically) and improved its wording
Mar 11 v3.17.075–076 DEV Fixed the balance top-up button when payments are unavailable
Mar 11 v3.17.068 DEV Fixed creating a new tunnel sometimes taking minutes to connect after accepting a request
Mar 11 v3.17.071 PROD Fixed a message from the previous conversation reappearing when a tunnel was deleted and recreated
Mar 11 v3.17.069 PROD Fixed the conversation list sometimes becoming invisible after accepting a connection request
Mar 12 v3.17.086 DEV Hardened connection signal security against a server attempting to impersonate them
Mar 12 v3.17.086 DEV A "delete for everyone" request is no longer accepted if too much time has passed since the message was sent
Mar 12 v3.17.090 DEV Fixed a bug in connection signal encryption that could leave them unencrypted in certain cases
Mar 12 v3.17.092 PROD Fixed a missing query when verifying a contact's security fingerprint
Mar 12 v3.17.093 PROD Fixed a memory leak in several modules on logout, and a minor security bug when displaying a contact's name
Mar 12 DEV Added the option to change your password from settings, re-encrypting your vault with the new one
Mar 12 DEV Added the option to delete your account from the application settings
Mar 12 DEV Implemented "forward secrecy" encryption (Double Ratchet): each message uses a different key
Mar 13 v3.17.107 PROD Fixed an internal limit that truncated translations to 1024 strings, leaving hundreds untranslated
Mar 13 DEV Thirteen mobile usability improvements: better fit on notched iPhones, less accidental zoom while typing, the Android back button no longer closes the app, the virtual keyboard no longer covers the conversation
Mar 13 v3.17.102–103 PROD Complete redesign of the login screen, matching the visual identity of the public page
Mar 13 DEV Self-destructing messages are now configured from the three-dot menu, and are stored in your vault until they expire
Mar 14 DEV iOS adjustments: notice to use the app in portrait mode, larger voice buttons, fixed a notification sound that played repeatedly
Mar 14 DEV Permanent messages (that don't expire) are now marked with a subtle gold border
Mar 14 DEV Added eight "special touches" with sound and animation, and visual theme sync between two connected people
Mar 14 DEV Added emoji reactions to messages and animated emojis in chat
Mar 14 DEV Added four full-screen effects (confetti, hearts, stars, fireworks)
Mar 14 DEV Fixed a bug where a contact's name appeared as "..." on mobile, caused by data stored incorrectly in a previous session
Mar 14 v3.17.115 PROD Permanent messages with gold border and the mobile adjustments reach production
MAJOR → v4.0 / v5.0 Two identity-model generations shipped the same day. v4.0 (production, below) was the culmination of days of dev work: identity derived from your password instead of stored on the device, so corrupted local data can no longer lock you out. Hours earlier in dev, v5.0 had already moved a step further — the key protecting your vault becomes fully random and independent of your password, like a Bitcoin wallet seed.
Mar 15 v5.0.001 DEV Architecture change: the master key protecting your vault is now random and independent of your password, like in Bitcoin
Mar 15 v4.0 PROD New identity model: it's derived from your password instead of being stored on the device, preventing lockout from corrupted data
Mar 15 v4.0.008–010 PROD Added an invisible additional layer tied to the device, a 24-word recovery phrase, and the ability to rotate your password without losing history
Mar 15 DEV Added the option to generate a QR code of your 24-word recovery phrase, with its own security warning
Mar 15 v4.0.014 PROD Cryptographic identity no longer depends on the website's domain, so it keeps working even if that changes
Mar 15 v4.0.026 PROD Fixed an encryption warning that appeared in red when it just needed a moment for the connection to finish establishing
Mar 15 v4.0.026 PROD Added a discreet "early access by invitation" notice on the login screen
Mar 16 v5.0.019 PROD Added a button to view your 24-word recovery phrase directly from the vault
Mar 16 v5.0.019 PROD Fixed offline access with the 24 words (it wasn't working)
Mar 16 DEV Added a toggle to manually disconnect from the server without closing your active conversations
Mar 16 DEV Simplified the chat header, removing redundant indicators
Mar 16 v5.0.032–034 PROD Simplified the conversation sidebar, removing contact presence indicators out of respect for their privacy
Mar 16 DEV Removed an old identity mode that was no longer needed
Mar 16 v5.0.038 PROD Added a rotating tip about the 24-word recovery phrase
Mar 16 DEV The browser can now offer to save your password, and the install prompt can be snoozed for 30 days
Mar 16 v5.0.040 DEV First version of voice calls over the direct connection with your contact
Mar 16 DEV You can now name each of your devices, visible only if you enable it
Mar 16 DEV Fixed the menu sometimes not opening after logging out and back in
Mar 16 DEV Added a unique verification code per device, alongside the contact's name
Mar 17 DEV Improved the presentation of the device identifier, with an explanation on hover
Mar 17 v5.0.049 PROD Increased the file size limit to 5 GB, transferring them in chunks
Mar 17 v5.0.050 PROD Added video calling, with the option to switch from voice to video on the fly
Mar 18 DEV Optimized large file transfers: up to 10 GB using disk instead of memory
Mar 18 DEV Automatic resumption of interrupted file transfers
Mar 18 DEV 36 languages now available in the application (up from 30), including Arabic, Persian, Japanese, Korean, Simplified Chinese, and Hindi
Mar 18 DEV Fixed several simultaneous-connection cases that sometimes prevented the tunnel from being established on the first attempt
Mar 19 DEV Integrity verification of transferred files via cryptographic fingerprint, automatically compared between both devices
Mar 19 DEV Fixed file transfer resumption after an interruption — now works end to end
Mar 20 DEV Migrated real-time communication from periodic polling to WebSocket, reducing server requests by approximately 80%
Mar 20 DEV Fixed a bug that caused some connection signals to be silently dropped
Mar 20 DEV Improved the message shown when a connection fails, explaining the likely cause
Mar 20 DEV Message context menu with monochrome icons, now also available on file messages
Mar 20 DEV Integrity verification now calculated during the transfer instead of at the end — from 15 seconds down to milliseconds
Mar 20 DEV The file is now saved securely on the device before it starts being sent
Mar 21 DEV Built-in PDF viewer in the application, processed entirely on your own device
Mar 21 DEV Voice message transcription to text, 100% local, with no connection to any external server, in 99 languages
Mar 21 DEV Forgotten password recovery using your 24 words, which never leave your device
Mar 21 DEV Secure password generator with one click
Mar 21 DEV Fixed a rare bug that could leave the vault with incorrect data after an internal error; added checks to detect it before it happens
Mar 21 DEV Messages that can't be verified correctly are now shown with a clear warning instead of failing silently
Mar 22 DEV Added a high-contrast theme for accessibility, compatible with screen readers
Mar 22 DEV Fixed several bugs with simultaneous connection when two people connect at the same time
v5.1switched signal delivery from periodic polling to real-time connections
Mar 22 v5.1.037 PROD Fixed your name and profile photo not always reaching the other contact when connecting
Mar 22 v5.1.040 DEV Fixed the device name disappearing from the chat header in certain cases
Mar 22 v5.1.057 PROD Fixed a bug that in some cases prevented connection signals from being encrypted correctly
Mar 22 DEV Fixed an unnecessary traffic loop when you only have one device connected
Mar 22 DEV On iPhone, Safari can now offer to save your password
Mar 22 DEV Added a help notice when identity fails to load correctly, with clear options to resolve it
Mar 23 DEV Simplified the process of connecting with someone to a single button, with QR code and direct link
Mar 23 DEV Removed built-in invitations with gifted balance, simplifying to a direct connection code
Mar 24 DEV Added a button to install the application as a native app from the menu, on mobile
Mar 24 v5.1.085 PROD Improved resilience to temporary server outages: smarter retries and clear warnings instead of silent failures
Mar 25 DEV Fixed a bug that sometimes prevented push notifications from arriving correctly on iPhone with the app closed
Mar 25 DEV The "🔔" touch now appears as a real message within the conversation, with a timestamp, and is saved in your vault
Mar 25 DEV When connecting with someone, recent messages missing on one side are now automatically synced between the two
Mar 25 DEV Fixed some older touches not being recognized correctly on reload
Mar 25 DEV Changed the verification question at sign-up to make automated registrations harder
Mar 26 DEV Added the option to stay logged in without re-entering your password, which can be disabled with the maximum-security toggle
Mar 26 DEV The QR code scanner for connecting now works more reliably across different devices and distances
Mar 26 DEV Added a toggle to pause and reactivate your account, giving you control over when you're charged
v5.2rebuilt the connection system to scale from hundreds to millions of simultaneous users
Mar 26 v5.2.000 DEV Rewrote the server's real-time communication layer to scale to millions of simultaneous connections
Mar 26 DEV Push notification delivery now reaches up to 3 devices per person
Mar 26 DEV Added two buttons to directly share your code or scan someone else's
Mar 27 DEV Decided to open public registration without requiring an invitation, with a limit of one trial account per network connection per day
Mar 28 DEV Fixed push notifications on Android, which sometimes didn't arrive
Mar 28 PROD Added a daily billing system with a trial period and automatic suspension if there's no balance
Mar 29 DEV Restructured the application to live at its own address (solo2.net/app), separate from the public page
Mar 29 DEV Two trial accounts (not production accounts) lost access to their local vault due to a browser configuration change during that same restructuring — cause identified and fixed the same day, with the protection applied immediately in production before it could affect any real user
Mar 30 DEV Simplified the QR connection flow: the request is sent automatically upon scanning, with a confirmation sound
Mar 30 DEV Added the option to load a QR code from a saved image, or drag it directly