August 2026
36 versions to production, 108 development entries — the days a new Pro account tier, pre-created invite links, and a new Business tier all launched, a long-standing connection-capacity limit was root-caused and fixed, PDF thumbnail rendering was restored, a live boot failure was traced and fixed the same day it was reported, anonymous aggregate usage telemetry launched, contact and message identifiers stopped being stored in plain form on this device, and a real invite-link consent gap was found and closed
Aug 1
v6.0.583
DEV
Built a new mechanism to automatically repair a message that exists on only one device during multi-device sync, closing a gap where such a message could be detected as missing but never actually resent
Aug 1
—
PROD
Fixed both backend deployment slots so they stay correctly enabled after a server restart, preventing a potential extended outage
Aug 1
v6.0.583
DEV
Chat search's background decryption now logs a clear success signal, closing a gap where there was no way to confirm it wasn't silently falling back to a slower path
Aug 1
v6.0.580→583
PROD
A batch of fixes reaches production: the multi-device mirror-sync repair mechanism, and improved diagnostics for chat search's background decryption
Aug 1
v6.0.584
DEV
Fixed a rare case where the server could hang for up to 30 seconds during a restart instead of shutting down promptly
Aug 1
v6.0.584
DEV
Global search now shows a clear message when there are more than 50 matches, so you know to refine your search
Aug 1
v6.0.584
DEV
Internal diagnostic logging now shows when older entries have been dropped, instead of silently losing history
Aug 1
v6.0.585
DEV
Fixed global search's interface text not being available in any language other than Spanish since it shipped in July — now properly translated across all supported languages
Aug 1
v6.0.586
DEV
Fixed a bug where the new missing-message repair mechanism (above) could silently fail for messages going in one particular direction — confirmed working correctly in both directions after the fix
Aug 1
v6.0.587
DEV
Fixed a bug where a delayed confirmation from an interrupted-and-restarted sync could be incorrectly compared against a newer sync's progress, sometimes falsely reporting it as incomplete
Aug 1
v6.0.583→587
PROD
A batch of reliability improvements reaches production: the sync-repair fix above, and the sync-confirmation timing fix
Aug 1
—
DEV
Ran large-scale connection load-testing and found that under very heavy simultaneous load, both the app's own server and its web server were retaining more memory afterward than expected, instead of releasing it
Aug 2
v6.0.588
DEV
Shipped a first fix for the memory-retention issue above, reducing how much memory is held onto after heavy load eases
Aug 2
—
PROD
Fixed the web server not automatically restarting itself if it ever crashed, which previously could take the whole site offline until someone intervened manually
Aug 2
v6.0.589
DEV
Found the memory-retention issue also involved an internal connection-handling resource pool with no upper limit — added a safety ceiling to prevent unbounded growth
Aug 2
v6.0.590
DEV
Went further than a ceiling: that internal resource pool now automatically shrinks back down once traffic quiets down, instead of just stopping at a limit
Aug 2
v6.0.587→590
PROD
The memory-retention fixes above reach production, along with the earlier web-server auto-restart fix — server memory now properly returns to baseline after a traffic spike
Aug 2
—
PROD
Fixed a real server-capacity limit: the server could run out of available network ports under very high connection counts, well before any memory limit was reached — fixed on both the development and live servers
Aug 2
—
PROD
Added a daily scheduled maintenance task that gracefully refreshes the web server's internal workers during low-traffic hours, releasing memory it had been holding onto — applied to both the development and live servers
Aug 2
—
PROD
Verified that the server and every other service sharing its production host recover automatically within under a minute after an unexpected reboot, with no manual steps needed
Aug 2
v6.0.591
DEV
Built the foundation for a new higher account tier (Pro): an option to choose it at signup, a visual badge, and admin management tools
Aug 2
v6.0.592
DEV
Pre-created invite links: a Pro account holder can now create an account for someone else and send them a one-time link to start a private conversation immediately — aimed at professionals sharing documents with clients through Solo2 instead of less private channels
Aug 3
v6.0.593
DEV
Fixed the Pro/founder badge sometimes not updating until a full page reload after a tier change
Aug 3
v6.0.593
DEV
Fixed a session-handling bug where opening a Pro invite link in a browser that already had another account open could land inside the wrong account instead of prompting to log in as the new one
Aug 3
v6.0.593
DEV
Fixed a leftover "cancel invitation" option that stayed visible after an invite had already been accepted, plus small registration-form and admin-panel improvements
Aug 3
v6.0.594
DEV
Fixed a rare "Identity mismatch" error that could incorrectly block testing the invite-link flow twice in a row in the same browser tab
Aug 3
v6.0.590→595
PROD
The new Pro account tier and pre-created invite links reach production for all users, along with this arc's bug fixes and full multi-language translation
Aug 4
v6.0.596
DEV
Fixed a real gap in invite links: an unused one could silently expire before the account it created did, leaving a recipient who waited a few days with a valid account but no way to connect — invite links now stay valid for as long as the account does
Aug 4
v6.0.597
DEV
Moved the option to create a Pro invite from a dropdown menu to a top-level button for easier discovery
Aug 4
v6.0.598
DEV
Added the ability to sort your conversation list by name or recent activity, and to copy a message's text directly from its menu
Aug 4
v6.0.599
DEV
Fixed a bug where a brand-new account could briefly show Pro-only options right after registering, before self-correcting a few moments later — never a real security issue, since the server always independently re-checks the real account tier, but a real and visible display bug
Aug 4
v6.0.595→599
PROD
The invite-link expiry fix, the easier-to-find Pro invite button, conversation sorting, message copying, and the registration display fix all reach production
Aug 4
v6.0.600
DEV
Fixed a false "Identity mismatch" error that could incorrectly block switching between your own accounts in the same browser tab
Aug 4
v6.0.600
DEV
Fixed the wallet's low-balance warning showing the wrong daily rate for Pro accounts
Aug 4
v6.0.600
DEV
Closed a rare data-loss risk where receiving a file sent from a newer app version could silently overwrite an already-received file's record
Aug 4
v6.0.599→600
PROD
The account-switching fix, the wallet rate-display fix, and the file-safety fix all reach production
Aug 5
v6.0.601
DEV
Built the foundation for a new higher account tier (Business), able to invite and fund new accounts with an admin-configurable bonus
Aug 6
v6.0.608
DEV
Found and fixed the real cause of a long-standing connection-capacity limit: a server-side allocation quota had been silently refusing some connections since March
Aug 6
v6.0.600→608
PROD
The connection-capacity fix reaches production
Aug 6
v6.0.610
DEV
Raised the maximum number of always-connected tunnels held open on desktop from 5 to 100
Aug 6
v6.0.611→613
DEV
Began moving core connection-negotiation logic (state transitions, glare handling) to a shared internal engine that will also power future native apps, with no change to today's behavior
Aug 7
v6.0.613→614
DEV
Continued the connection-negotiation migration: reconnect/backoff policy and tunnel-selection policy
Aug 7
v6.0.608→614
PROD
The tunnel-capacity increase and the connection-negotiation migration reach production
Aug 7
v6.0.619
DEV
Redesigned Business-tier funding: invited accounts must always be a standard tier, and transfers no longer mint any bonus, closing a possible abuse path
Aug 7
v6.0.619
DEV
Built the interface for funding an existing account and for changing your own account tier at any time
Aug 7
v6.0.620
DEV
Pre-created invite accounts must now change their temporary password the first time they log in
Aug 7
v6.0.621
DEV
Fixed a rare boot-time race that could leave two screens visibly overlapping right after signing in
Aug 7
v6.0.622
DEV
Fixed two more edge cases in the same boot-time race, including one that could leave you stuck on a broken screen after certain login or account-recovery paths
Aug 7
v6.0.622
DEV
Fixed a bug where a contact's account tier was never actually saved after connecting, silently breaking tier-based features for that contact
Aug 8
v6.0.623
DEV
Fixed inviting-and-funding an account silently failing to create the invite link when the funding amount exceeded the monthly limit
Aug 8
v6.0.623
DEV
The forced password-change screen no longer re-asks for the password you just typed to log in
Aug 8
v6.0.624
DEV
Redesigned pro-invite funding to transfer money only when the invited account is actually claimed, not when the invite is sent, so an unclaimed invite never wastes real money
Aug 8
v6.0.626
DEV
Fixed a bug where a rejected funding transfer could leave the database connection in a stuck state, silently blocking other actions on the same account afterward
Aug 8
v6.0.627
DEV
Fixed an insufficient-funds error message being invisible behind an open dialog, and made the funding-limit hint text easier to read
Aug 8
v6.0.628
DEV
Closed a caching gap that had left the PDF viewer's support files unprotected from stale browser caching since the feature first shipped
Aug 8
v6.0.629
DEV
Root-caused and fixed PDF thumbnails failing to render: the web server wasn't recognizing the PDF viewer's file type, and already-cached browsers needed a forced refresh to pick up the fix
Aug 8
v6.0.614→629
PROD
A large batch reaches production: the new Business account tier and self-service tier changes, the forced password-change security feature for invited accounts, two boot-time display race fixes, and the PDF thumbnail rendering fix
Aug 8
—
PROD
Fixed non-English language links on the live site incorrectly redirecting visitors to the development server instead of the real site
Aug 9
v6.0.635
DEV
Fixed wallet transfers never recording a transaction in either account's own statement history
Aug 9
v6.0.637
DEV
"Solo P2P" mode is now a real guarantee in both directions: it also refuses incoming relayed connections, detects when two people have incompatible connection-privacy settings, and shows a clear message when that happens
Aug 9
v6.0.634→637
PROD
The wallet-statement fix and the strengthened "Solo P2P" guarantee reach production
Aug 9
v6.0.641
DEV
Failed message-attachment previews now show a plain file icon instead of a broken-image placeholder, and closed a caching gap that could serve a stale PDF viewer after an update
Aug 10
v6.0.642
DEV
The "Solo P2P" clash message and the invite funding-limit hint are now translated into every supported language
Aug 10
v6.0.643→646
DEV
Continued moving core connection-decision logic (identity verification, signal handling, reconnection) to the shared internal engine, with no change to app behavior
Aug 10
—
DEV
Fixed a rare bug where two contacts syncing at once could overwrite each other's retry signal, recoverable with a manual sync but not automatic
Aug 10
v6.0.638→647
PROD
A batch of reliability fixes reaches production, including the retry-signal fix, the message-preview fallback icon, and full translation of the "Solo P2P" messages
Aug 10
v6.0.648
DEV
Root-caused and fixed a real boot failure: a slow-but-working startup could get permanently stuck behind a false "could not start" error, and Retry could never help since it restarted the same losing race — the app now recovers automatically and gives itself more time after a slow attempt instead of repeating it
Aug 10
v6.0.647→648
PROD
The boot-failure fix reaches production
MINOR → v6.4
Real MINOR versioning catches up after sitting flat at v6.0.x for three months while four distinct themes shipped underneath it: the messaging and sync engine rewrite (retroactively v6.1), pairing/metadata/app-lock privacy work (v6.2), the Pro account tier (v6.3), and the Business account tier (v6.4, this bump). Nothing above this line changes — it's the honest record of what already shipped; this just restores the version number to what it should already reflect going forward.
Aug 11
v6.04.001
DEV
Added anonymous, aggregate usage telemetry (connection type, message-size and frequency ranges, tunnel stability) — the server only ever stores bucketed counts, never a per-user or per-message record
Aug 11
v6.04.001
PROD
The new usage telemetry reaches production
Aug 11
—
PROD
Fixed a gap where requests to part of the server were logged together with the visitor's IP address, despite that never being the intention — IP addresses are no longer recorded there
Aug 11
—
DEV
Fixed a bug where logging out and then logging back in with a 24-word recovery phrase, on the same device, could wrongly claim the account had never used it — no data was ever at risk, only the login check was wrong
Aug 11
v6.04.003
DEV
Continued moving core connection-handling logic (detecting a self-connection, handling clock drift between devices) into the shared internal engine, with no change to app behavior
Aug 11
v6.04.005
DEV
Fixed multi-line messages (blank lines, paragraph breaks) collapsing into a single run-on block when displayed
Aug 11
v6.04.001→005
PROD
A batch of fixes reaches production, including the 24-word recovery-login bug and the multi-line message display fix
Aug 12
v6.04.006
DEV
Continued restructuring core connection-handling code into smaller, focused modules, with no change to app behavior — verified under a live load test holding 74 simultaneous connections with no errors
Aug 12
v6.04.005→006
PROD
The connection-handling engine rewrite, in progress since early August, is complete and reaches production
Aug 12
v6.04.007
DEV
Added a sidebar indicator for messages from people not yet in your contacts, with guidance on how to reconnect with them
Aug 12
v6.04.008
DEV
Continued strengthening message-mirroring reliability between your own devices, verified under live testing at over 10,000 messages with zero data loss
Aug 12
v6.04.009
DEV
Fixed a rare bug where manually resetting the sync connection between your own devices could leave it reporting the wrong status afterward
Aug 12
v6.04.011
DEV
Fixed a serious bug where a message in an unsupported future format could be silently replaced with a blank message when syncing between your own devices, instead of being preserved
Aug 12
v6.04.012
DEV
Fixed a bug where manually resetting the sync connection between your own devices could leave it permanently stuck mid-sync
Aug 12
v6.04.006→012
PROD
The message-mirroring reliability fixes above reach production
Aug 12
v6.04.013
DEV
Fixed a bug where the notice warning about a P2P/relay connection mismatch could be dismissed by an unrelated background message before it was seen
Aug 13
—
DEV
Removed an old, never-actually-used experimental file-sync feature
Aug 13
—
DEV
Fixed a bug where a month-old, already-superseded build of the image/PDF metadata-removal feature was still being served instead of the corrected one
Aug 13
—
DEV
Closed a gap where a security check on outbound link previews had never actually run in automated testing
Aug 13
v6.04.019
DEV
Invite links and pending contact requests now stay valid for 7 days, up from 24–72 hours
Aug 13
v6.04.019
DEV
Fixed a bug where the "metadata removed" badge on a shared photo could show even when the removal hadn't fully succeeded
Aug 13
v6.04.019
DEV
The pending-invite review notice in the sidebar no longer disappears if the list refreshes while you're deciding, and no longer freezes the app while waiting for your answer
Aug 13
v6.04.020
DEV
Backend work on tracking relayed vs. direct connections more accurately, and on available connection-relay capacity
Aug 14
v6.04.012→020
PROD
A batch of connectivity, privacy and reliability fixes reaches production, including the items above
Aug 14
v6.04.021
DEV
Fixed a bug where messages to less-frequently-active contacts could sit undelivered for minutes with no error shown, because the app wasn't proactively reconnecting to them before sending
Aug 14
v6.04.026
DEV
Reduced excessive internal logging that could interfere with diagnosing rare server issues under heavy load
Aug 14
v6.04.026
DEV
Fixed a rare timing bug where opening the app in a way that triggered two simultaneous startups of the encryption engine could leave one session unable to send or receive messages
Aug 14
v6.04.027
DEV
Added a visible password-length hint to the forced password-change screen, which could previously block users with short passwords with no explanation
Aug 14
v6.04.027
DEV
Fixed unreadable dropdown-menu options in dark mode
Aug 14
v6.04.028
DEV
Fixed a bug where switching away from the app immediately after opening it could incorrectly log the user out
Aug 14
v6.04.020→028
PROD
The message-delivery fix, the encryption-engine race fix, and the three fixes above reach production
Aug 14
v6.04.032
DEV
Added a safety limit to stop the app from silently reloading in an endless loop if a startup step ever fails
Aug 14
v6.04.032
DEV
Hardened the login screen against a broken script layer submitting the form incorrectly
Aug 15
—
DEV
Fixed a bug that caused the installed iOS app to get stuck in an endless reload loop for some users, sometimes showing a blank screen
Aug 15
—
DEV
Fixed a related issue where, right after the reload loop was fixed, some users could land on an empty, unusable screen
Aug 15
v6.04.028→036
PROD
The iOS installed-app reload-loop fix reaches production
Aug 15
—
DEV
Fixed a bug where logging into the installed app could unexpectedly trigger a file-download prompt instead of opening the app
Aug 15
—
DEV
Fixed a caching bug that could leave some users stuck on an outdated build of the installed app
Aug 15
—
DEV
Closed the last remaining translation gaps — every interface string is now available in all 41 supported languages for the first time
Aug 15
v6.04.036→041
PROD
The remaining installed-app fixes and the full translation coverage above reach production
Aug 15
v6.04.043
DEV
Significantly reduced remaining internal logging noise from rejected and invalid requests, and fixed a related memory-cleanup bug in the request rate-limiter
Aug 15
v6.04.045
DEV
Redesigned the app's login screen and adopted a new shared typeface across the app, matching the rest of the Solo product family
Aug 15
v6.04.045
DEV
Added a new default visual theme ("Solo") matching the shared family look, used automatically for new visitors with no saved preference — existing users keep whatever theme they already chose
Aug 15
v6.04.041→047
PROD
The new default theme and shared visual redesign, plus the logging and reliability improvements above, reach production
Aug 16
v6.04.058
DEV
Moved online-status updates onto the app's existing realtime connection, replacing a repeating background request that could produce unexplained failures for groups of users sharing one public internet address, as on mobile networks
Aug 16
v6.04.058
DEV
Connection health is now confirmed by the server rather than inferred locally, so a silently dropped connection is detected instead of continuing to look healthy
Aug 16
v6.04.058
DEV
Added anonymous, aggregate measurement of how much work is preserved when you switch away from the app and return, and how long recovery takes when something is lost
Aug 16
v6.04.058
DEV
Mobile devices now hold up to 150 simultaneous peer connections, raised from 3, matching desktop
Aug 16
v6.04.047→058
PROD
The presence and connection-reliability work above reaches production, along with the raised mobile connection limit
Aug 17
v6.04.059→064
DEV
Fixed document and photo messages rendering with large amounts of empty space around their contents
Aug 17
v6.04.064
DEV
Fixed a PDF with no preview image rendering as a tall empty box
Aug 17
v6.04.064
DEV
A photo whose preview never arrives now shows an identifying row instead of a blank area
Aug 17
v6.04.058→064
PROD
The document and photo message layout fixes reach production
Aug 17
v6.04.065
DEV
Account type badges are now short text labels (ADM, PRO, BIZ, FUND) instead of icons, readable without opening a popover
Aug 17
v6.04.065
DEV
Business accounts now show a badge — the tier previously displayed none at all
Aug 17
v6.04.064→065
PROD
The new text account-type badges, including the previously missing Business badge, reach production
Aug 17
v6.04.067
DEV
Migrated more of the connection-acceptance decision logic (handling multiple devices, stale connections, and self-connections) from JavaScript to the app's faster internal engine — no visible change
Aug 17
v6.04.065→067
PROD
The connection-decision logic migration above reaches production
Aug 19
v6.04.068
DEV
Fixed a connection-keepalive check that could wait past its intended deadline before detecting a dropped connection
Aug 19
v6.04.069
DEV
Continued migrating connection-acceptance and reconnect-handling logic to the faster internal engine
Aug 19
v6.04.067→069
PROD
The connection-keepalive timing fix and the continued connection-logic migration reach production
Aug 21
v6.04.070
DEV
Fixed a bug where a network reconnect event (such as a device waking from sleep) could reset a connection attempt that had already started succeeding
Aug 21
v6.04.071
DEV
Fixed sync between your own devices getting permanently stuck after a single failed reconnect attempt, instead of recovering on the next try
Aug 23
v6.04.074
DEV
Fixed a bug that could permanently deadlock the connection between two of your own devices during their very first sync attempt
Aug 23
v6.04.075
DEV
Fixed a second, related case of the same connection deadlock between your own devices, found while re-testing the first fix
Aug 24
v6.04.076
DEV
Contact and message identifiers are no longer stored in plain form in the app's local database — applied throughout the app, closing several places where local storage could reveal who you talk to
Aug 25
v6.04.077→079
DEV
Fixed a sync gap where a contact's Pro or Business badge could be missing on a device that only ever learned about them through your own multi-device sync, never a direct connection
Aug 25
v6.04.077→079
DEV
Fixed message text becoming impossible to select and copy on desktop — caused by a mobile-only restriction being applied everywhere, plus a stray timer that could interrupt an in-progress selection
Aug 25
v6.04.077→079
DEV
Added quick access to message "special touches" directly from the composer, previously reachable only from a separate menu
Aug 25
v6.04.077→079
DEV
An invite link reused by a second person after the first pairing already completed now shows a clear message instead of hanging silently; also extended the wait window for a slow first-time acceptance to match the server's own limit
Aug 25
v6.04.069→079
PROD
A large batch reaches production: the connection-reliability fixes above (own-device sync deadlocks and reconnect handling), contact and message identifiers no longer stored in plain form on this device, the Pro/Business badge sync gap, the desktop text-selection fix, quick access to special touches, and the invite-link reuse message
Aug 25
v6.04.081
DEV
Fixed the Pro/Business tier badge sitting inconsistently far from a contact's name depending on how long the name was — now always placed right after the name
Aug 25
v6.04.079→081
PROD
The tier-badge position fix reaches production
Aug 25
v6.04.082
DEV
Fixed a real privacy gap in invite links: if a second, unreviewed person reused a link right after the intended contact's pairing completed, a race condition could let them complete pairing too, with no record of them on the inviter's side. Pairing is now bound to the specific person who was actually reviewed
Aug 25
v6.04.081→082
PROD
The invite-link consent fix above reaches production
Aug 25
v6.04.083→085
DEV
Closed a related invite-link gap: a leaked link could still be reused indefinitely by anyone who saw it, even after its first real pairing completed. A link now permanently stops accepting new requests after being delivered once