21.0.104
Pre-release
Pre-release
Highlights for users
Many fixes and improvements, including:
- Added full support for custom emoji, including in composing messages and in reactions.
- The app now fetches updates much sooner when reopened after several minutes idle.
- Fixed issue where a draft message typed just after starting the app was lost.
- Complete translations for Italian and Korean.
Full changes for users
- Added full support for custom emoji ("realm emoji"), including in composing messages and in reactions. (#2129, #2846)
- The app now fetches updates much sooner when reopened after several minutes idle. (#3190)
- Fixed issue where a draft message typed just after starting the app was lost. (#2861)
- Complete translations for Italian and Korean. (62c8d92)
- Fixed missing line that made switching to Indonesian language not work. (d92329b)
- Messages pending send can now be deleted in long-press menu, like other messages. (#3189)
- Force-upgrade screen provides helpful App Store or Play Store deep-link. (#3158)
- Fixed handling of old reactions with emoji that have changed name. (#3169)
- Fixed misrendering of "keypad" emoji like
:zero:
. (#3129) - Group PM conversations now show combined avatars with rounded corners, like individual avatars. (#3167)
- Fixed bugs causing top bar to sometimes be white instead of stream-colored. (#2797, #3139)
- Long-pressing a recipient bar now offers "Unmute topic" when appropriate. (8b60314 / #3156)
- Alert words are now highlighted in the message list. (#3082)
- Fixed fetching of explicit avatars (
!avatar(...)
) in messages. (#3047) - Overflow menu in lightbox is now properly aligned. (#3024)
- Send button has larger touch target. (#2945)
- Error banners in message list show as red, rather than gray.
- Fixed oversizing of images in Dropbox inline previews. (#3136)
- Various improvements across the app for latency and performance.
Full changes for developers
Workflow improvements
- Tests and linters run fast by default (<5s on a fast desktop for small changes, <1s for no changes), by running only on files changed in the current branch. (977596d^..bd24bd1)
- Spell-checker results are now pure warnings, free to ignore. (ff7bc29)
- Configuration for Reactotron, and expanded developer documentation on debugging. (#3109, 0e5d036^..59967fc)
- One-step release-mode Android builds without signing keys or Sentry. (#2883; 8d55447^..ee40b3c)
- Detailed step-by-step instructions for setting up dev environment on WSL. (#3193)
Architecture, interface, and quality improvements
- Extensive refactoring of the message list and rendering to HTML. (#3156, #3170)
- New
caseNarrow
abstraction for working with narrow objects. (fa6134a^..e9fe1e8) - Explain
Auth
vs.Account
types, and introduce distinctIdentity
. (f5a2603^..28b1177) - Applied
@flow strict-local
to most files and@flow strict
to many files, fixing newly-exposed type issues. (#3164, 6efa798, 2a96ede, fa1b8a8; 5ec1d3f^..597c51f; 5a2d49f^..da5d519) - Began to use more Flow "exact types". (01003e6, 24211fb, others)
- Flow types on many more areas of code.
- Enable ESLint in most places where it was disabled, fixing issues. (ddd51e5^..a533fa8)
- Scripts run on Bash, and are moved out of package.json to their own files. (6c25bee, 3119ec6, 8d3e8ad^..4d58c11)
$ sha256sum -c <<EOF
3599c12985241f5cc2e1c3d3af150ee0557477d5bdfc36e2cbdbd9a12176c843 app-release.apk
EOF