What's Changed
- Bind Apple Pro payments to the master key via appAccountToken by @mpretty-cyro in #716
- Fixed dependency race condition, removed redundant function by @mpretty-cyro in #717
- Pro backend 0.2 + libsession 1.7 compatibility updates by @jagerman in #710
- [Automated] Update translations from Crowdin by @stfsession in #703
- Expose pro env vars and resolve some issues found when testing by @mpretty-cyro in #718
- Fix an issue where some group notification messages could get dropped when they shouldn't by @mpretty-cyro in #719
- Stop a cancelled poll task from cancelling its own replacement by @mpretty-cyro in #720
- Stop substituting non-translatable constants at runtime by @mpretty-cyro in #722
- Pro redemption reflow (iOS): implicit redemption, libsession renewal/rotation by @jagerman in #723
- Updated dev settings, fixed a couple minor UI regressions by @mpretty-cyro in #724
- Pro: allow the Session Pro backend to be overridden for QA/testing by @mpretty-cyro in #725
- Fixed a gesture recogniser conflict preventing a button press by @mpretty-cyro in #728
- Pro redemption reflow, part 2 by @jagerman in #727
- Pro followup fixes by @jagerman in #732
- Pro: fully remove the pre-launch Pro-availability gate by @jagerman in #729
- Licenses: fail the build rather than emptying the tracked plist by @mpretty-cyro in #736
- Pro: accessibility ids for the Pro surface, plus two VoiceOver fixes and a CTA copy bug by @mpretty-cyro in #733
- Network: populate swarm_pubkey_hex on snode requests by @mpretty-cyro in #737
- Pro: unify the
get_pro_statusrefresh design (iOS) by @mpretty-cyro in #734 - [Automated] Update translations from Crowdin by @stfsession in #735
- Input: name the character-limit countdown and hide it when it is hidden by @mpretty-cyro in #740
- Pro: show hero copy in every Pro status, not just never-subscribed and the sheet by @mpretty-cyro in #738
- Notifications: stop extension messages being discarded on import by @mpretty-cyro in #741
- Notifications: stop a cold background fetch waiting on the home screen by @mpretty-cyro in #743
- [Automated] Update translations from Crowdin by @stfsession in #744
- Apple developer account transfer preparation changes by @mpretty-cyro in #739
- Pro: identify each message-info feature row by @Bilb in #745
- Pro: split access from display, and stop upselling an active plan by @mpretty-cyro in #742
- Pro: correct the link destinations, the refund window and the pin gate by @mpretty-cyro in #746
- Pro: compare revocation instants against network time by @mpretty-cyro in #747
- fix: add mocking logic for refund screens by @Bilb in #748
- Pro: revocation-path conformance fixes by @mpretty-cyro in #749
- feat: add accessibility identifiers to the "Open URL" confirmation by @Bilb in #750
- Network: disable QUIC path-MTU discovery by @mpretty-cyro in #752
- Pro: do not raise the expiry CTA over the Pro settings screen by @mpretty-cyro in #755
- Media: identify the attachment loading state by @mpretty-cyro in #758
- Attachments: make stream encryption the default and drop the legacy encryptor by @mpretty-cyro in #756
- fix(pro): drop the proof's version field by @Bilb in #757
- feat: route refunds through Session's own two links by @Bilb in #753
- Pro: fix the stats counters, and cover them by @mpretty-cyro in #759
- Pass the file server port through to the download url by @mpretty-cyro in #754
- Fill the display picture frame with a picture, keep fitting a glyph by @mpretty-cyro in #760
- [Automated] Update translations from Crowdin by @stfsession in #751
- [Automated] Update fallback static snode list by @stfsession in #714
- Name the Pro badges so a test can tell them apart by @mpretty-cyro in #761
- Don't un-hide a conversation because of our own synced message by @mpretty-cyro in #764
- qa: tag the first stage of the clear-data flow by @Bilb in #763
- Count pinned conversations on launch, so the limit cannot be bypassed by relaunching by @mpretty-cyro in #762
- fix: confirm a device-only clear for every account, not just Pro by @Bilb in #765
- Truncate an incoming message by code point, not UTF-16 unit by @Bilb in #768
- Enforce the pin limit against pins that arrive from config, and tag the marker by @Bilb in #767
- Pro: make in-memory state changes atomic, so a rotation cannot be undone by a stale snapshot by @mpretty-cyro in #769
- Keep the access expiry on a revoked proof, and confirm the account status at once by @mpretty-cyro in #770
- Make the Fast Mode row title addressable by @mpretty-cyro in #772
- Let the typing indicator settle when animations are disabled by @mpretty-cyro in #773
- [Automated] Update fallback static snode list by @stfsession in #766
- [Automated] Update translations from Crowdin by @stfsession in #771
- Increased build and version number by @mpretty-cyro in #774
- Show our own Pro badge on a message in a community by @mpretty-cyro in #775
- Updated to libSession 1.9.1 by @mpretty-cyro in #776
- Release 2.16.0 by @mpretty-cyro in #777
- Turn the Pro badge on when an account gets its first ever proof by @mpretty-cyro in #787
- Notifications: restore the sound on the extension's fallback notifications by @mpretty-cyro in #785
- Don't treat an unreadable identity as a new user by @mpretty-cyro in #783
- Allow voice messages to run to five minutes by @mpretty-cyro in #782
- Stop a failed word-set read from crashing every message send by @mpretty-cyro in #786
- Stop the full-screen media viewer racing on its album cache by @mpretty-cyro in #788
- Expand the body when "Read more" is tapped on a link preview message by @mpretty-cyro in #789
- Count config messages against the same denominator as standard ones by @mpretty-cyro in #791
- Keep the Message Info quote and body inside the screen by @mpretty-cyro in #790
- Terminate with _exit so a deliberate quit stops crashing by @mpretty-cyro in #794
- Stop the QR scanner configuring two camera sessions at once by @mpretty-cyro in #795
- Stop an in-flight poll undoing a cursor reset by @mpretty-cyro in #792
- [Automated] Update translations from Crowdin by @stfsession in #784
- Send the shorten/extend flags
updateExpiryis given by @mpretty-cyro in #793 - [Automated] Update fallback static snode list by @stfsession in #778
- Renew config message TTLs at most once an hour per swarm by @mpretty-cyro in #796
- Updated to the latest libSession (fixes for 421 and networking issues) by @mpretty-cyro in #799
- ci: detach the simulator keep-alive step by @Bilb in #800
- [Automated] Update translations from Crowdin by @session-localisation[bot] in #803
- Stop offering Session Router and move anyone on it back to onion requests by @mpretty-cyro in #804
- [Automated] Update fallback static snode list by @stfsession in #798
- Pro: restore the Session Pro gate, off by default by @mpretty-cyro in #797
- Update session-lucide to 0.473.4 so the app builds on Xcode 27 by @mpretty-cyro in #805
- Autolink iconv when compiling libSession from source by @mpretty-cyro in #809
- Update libSession to 1.9.4 and cap the QUIC UDP payload at 1372 by @mpretty-cyro in #810
- [Automated] Update fallback static snode list by @session-localisation[bot] in #807
- Erase group entries a config merge recreated after another device erased them by @mpretty-cyro in #812
- [Automated] Update translations from Crowdin by @session-localisation[bot] in #806
- Show a placeholder for messages this version can't process, and retain them by @mpretty-cyro in #808
- Bump version to 2.15.5 (build 726) by @mpretty-cyro in #813
- Release 2.15.5 by @mpretty-cyro in #814
New Contributors
- @Bilb made their first contribution in #745
- @session-localisation[bot] made their first contribution in #803
Full Changelog: 2.15.4...2.15.5
Signature of release files
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Signed SHA256 hashes of release files. These are signed using Jason's GPG
key available at:
- the oxen-io/oxen-core repository, at /utils/gpg_keys/Jason.asc
- OpenPGP key servers (Jason Rhinelander <jason@session.foundation>, C4992CE7A88D4262)
- https://deb.session.foundation/public.gpg
- https://imaginary.ca/public.gpg
- https://github.com/jagerman.gpg
ab67637bc8cf2a5acb240b3b697a50913386e27970455620de03f0e8c4b1ecba session-2.15.5.ipa
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEMCXxeJf0bLVTgXjKQB55DgYLsA4FAmrK3NYACgkQQB55DgYL
sA7phQ/+NHqa+ctILgKi3DmX2vDqPylJtySNXhhipDXxPIMBHw2tNsegIkN+vNkt
qOALEV4Mj4Se3oCTND9f9EQoC1OaoAc90ZnVzeGcpWlPT0ll9EYkJWdoXkdG7Ld8
A2ErxMxkyvGMUE0Qb47vXH/RiSzsMd7lw1eF01BQ2DKTjOBh+6yjo9n7CgT3KArn
WMKj+tvx+NERtJAIOz/9bi7jPlW7BJA5+flvBVkYnOgTRcXgR5r3c6ZWW41LsF75
u7/U4+/aBZoZC8OrwVrRSBhBIy5+LgxF3J9LPJBA3Y5F6y52gjI3YVnI6XreZGCW
KcweJCfmRGYHoZonkuEfVWw+is+fiEya8Amfk3MOTNbcfvKQj7SIvd1gtTST6pwQ
bhyXa2FlefVBMzhiS8s1rUcbqifc7SjvH9NosEIPnXQIDLAnz1lHQ6iLefH71McA
9Obtwz0RCCfsuFLh+Jx8GTmdyTweGAUwfMjP/veP1CpUh2wcE6xMN0CuexYKzI6l
WRmkK2rsMeVc4J8nY6UF5v+0dqReIh4E5kxJJyQz8quGXv0BAlQk0xMq3AYEIodt
tWWbifI5YxiRuGlMjuFcpb9hdwOn8mP/npUXhLiX9Ul4F4jcwKVQATzyDPMXGADF
FmbS9qJyPw9LzZ3RlP/fBDUbnDu9jDSBlDMUS3fxalRMb3+Y44Y=
=DMTF
-----END PGP SIGNATURE-----