Releases: Koukobin/Ermis
Mobile Client v1.5.0
Mobile Client v1.5.0 resolves a multitude of underlying issues while simultaneously enriching functionality with an array of new capabilities including the feature of video transmission.
Full Changelog: client-mobile-v1.4.0...client-mobile-v1.5.0
Server v1.2.0
Server v1.2.0 vastly enhances the server-side component of Ermis. Specifically, this release:
- Overhauls DEB package structure to conform with DEBIAN policy
- Radically improves handling of user credentials by leveraging systemd-creds, ensuring security by injecting them directly into the systemd server service.
- Introduces GIF transmission functionality.
Obviously, the list of changes is not as succinct - refer to the changelog for more details.
Changes
refactor: isolate WebRTCSignallingServer init into its own try/catch
refactor: extract config.properties path into variable
refactor remove redundant 'isRunning' variable
feat: add JVM shutdown hooks to release Netty resources gracefully
refactor: add two second delay before printing 'server running in development mode
refactorr: style system print to be red
refactor: add explicit newline characters to printed output
fix: specify -p to mkdir so it doesn't fail if folder exists
refactor: configure sensitive credentials to be injected into ermis-server
chore: upgrade log4j-core to 2.25.3 to address https://github.com/advisories/GHSA-vc5p-v9hr-52mj
feat: add info log of DB connection SSL status
refactor: remove unecessary rm in bash scrript
refactor: rename variable from 'isProductionReady' to 'isProductionMode'
chore: move server configs from /opt to /etc to adhere with DEBIAN policy
feat: convert server configs to conffiles to retain user modifications on upgrade
chore: configure ermis-server systemd to never restart on termination (excluding reboots)
feat(server): implement infrastructure for GIF transmission functionality
chore(server): enchance default argon2 parameters
feat(server): add python script for generating argon2 password hashes
chore(server): enchance default scrypt parameters
chore(server): increase default iterations of argon2 algorithm
Full Changelog: server-v1.1.1...server-v1.2.0
Mobile Client v1.4.0
Mobile Client v1.4.0 addresses a vast array of issues and bugs; but at the same time enriches functionality with an ample amount of new features - including most notably: GIF capability, chat background doodles and image editing capability akin to that in Instagram.
Changes
feat: add RMS waveform to voice messages in mobile client
refactor: add waveform cache to minimize performance overhead
refactor: reorganize asset folder structure
refactor: update ermis chat background
feat(ui): enable doodles on chat background (Mobile)
feat: add setting to disable doodles on chat background
refactor: wrap CustomPaint in RepaintBoundary to enchance performance
fix: ensure color of checkbox reflects primary app color
feat: add multi language support to 'Incoming Voice Call' text
refactor: configure doodles to be colored a faint green (Flutter)
refactor: increase amount of doodles loaded (Flutter)
refactor: wrap CustomPaint in RepaintBoundary to enchance performance
refactor: decrease alpha of background chat doodles (Flutter)
refactor: emulate randomness in background chat doodles by increasing potential rotation
fix: ensure doodler painter repaints if doodles were not loaded yet
refactor: increase duration to ensure more doodles are loaded
feat(mobile): add support for GIF messages
refactor: redesign messaging input field to a more ergonomic/elegant design
fix: add missing gif_finder.dart file
feat: add new Dark-inspired ermis loading message on mobile
refactor(flutter): modernize default InputDecoration look and feel
refactor(flutter): migrate from deprecated withOpacity to withValues API
feat(mobile): introduce animated text widgets to enchance UI engagement
feat(mobile): add avatar glow widget for future use
fix(mobile): ensure release config is detected by build.gradle
fix(mobile): correct misoconfigured white theme color
feat(mobile): introduce avatar glow around empty personal profile photo
refactor(mobile): introduce more thorough exception handling in dialog toast
refactor: change default focusedBorder to OutlineInputBorder
feat(mobile): add scroll to latest message button in messaging interface
refactor(mobile): remove redundant code
feat(mobile): introduce image editing capability akin to that in instagram
refactor: integrate flutter_colorpicker directly into the codebase for future-proofing
feat: add 'New message' bubble above new messages
feat(mobile): add loading indicator on profile photo update
refactor(mobile): ensure stream subscriptions associated with PersonalProfilePhoto are canceled
chore(mobile): update Flutter SDK revision (stable)
chore(mobile): bump build_runner version to 2.11.1
chore(mobile): bump vector_graphics_compiler version to 1.1.20
chore(mobile): bump intl_utils version to 2.8.14
chore(mobile): bump test version to 1.29.0
chore(mobile): bump vector_graphics version to 1.1.19
chore(mobile): bump json_annotation version to 4.10.0
chore(mobile): bump json_serializable version to 6.12.0
Full Changelog: client-mobile-v1.3.0...client-mobile-v1.4.0
Server v1.1.1
Server v1.1.1 issues two critical security updates, addressing (1) CVE-2025-66566, which enabled remote attackers to read previous buffer contents via crafted compressed input and (2) CVE-2025-12183 wherein out-of-bounds memory operations in LZ4 decompressor allowed remote attackers to cause denial of service and read adjacent memory via untrusted compressed input.
Changes
fix: address CVE-2025-66566 by updating to patched community fork
fix: address CVE-2025-12183
Full Changelog: server-v1.1.0-C...server-v1.1.1
Mobile Client v1.3.0
Mobile Client v1.3.0 resolves a multitude of issues and addresses numerous bugs.
Obviously, the list of changes is much more extensive; please consult the full changelog for further details.
Changes
- refactor: simplify chat session fetching logic (Flutter)
- fix: replace Column with ListView across screens to support horizontal orientation (Flutter)
- fix: temporarily remove group chat voice call support due to unresolved bugs
- fix: remove unused field from data object to prevent bugs from arising
- refactor mobile notification service to use shared function instead of duplicating code
- fix: refactor mobile notification service to send reply messages directly via session index to prevent bugs
- fix: ensure last used account is updated (Flutter)
- fix: resolve issues arising when switching account
- fix: ensure last used account is updated correctly
- fix: configure eventBus to be directly fetched each time instead of caching reference
- fix: make broadcastStream private and ensure isLoggedIn resets on disconnect
- fix: modify structure of AppEventBus to ensure only active EventBus is used and referenced
- add: ensure voice calls on background execute as system overlay - if authorized
- refactor: migrate from keep_screen_on to wakelock_plus (Flutter)
- fix: correct WakelockPlus usage
- fix: correct BootBroadcastReceiver to initiate background service and not app on system boot
- refactor: restrict call orientation to portrait mode only
- feat: ensure system overlay permission is only prompted once
- fix: ensure end-call functionality works after exiting and re-entering voice calls by referencing current state
- fix: ensure 'voice call ended' screen is popped correctly
- feat: add user warning regarding system overlay potential failure in voice calls
- fix: correct screen-on lock in voice calls
- fix: restrict orientation of login/registration screen to portrait mode only
Full Changelog: client-mobile-v1.2.0...client-mobile-v1.3.0
Mobile Client v1.2.0
Mobile Client v1.2.0 resolves a vast array of bugs and enhances voice call functionality by enabling voice calls to run as system overlay.
Changes
- refactor: major overhaul of voice call WebRTC connection logic which resolves numerous issues
- refactor: remove redundant & unrelated receivers from AndroidManifest.xml (Flutter)
- fix: add check to ensure background client connection initializes only once
- fix: ensure voice call history is updated after voice call
- fix: correct inequality evaluating whether or not to display achievement screen
- fix: upgrade zstandard to v1.3.29 to support 16KB pages on Android 15+
- feat: implement WebRTC voice call as system overlay
- fix: configure app to be installed in internal storage in order for ACTION_BOOT_COMPLETED to be received
- fix: ensure background service client conn to server is destroyed when app debuts
Full Changelog: client-mobile-v1.1.0...client-mobile-v1.2.0
Server v1.1.0-C
Server v1.1.0-C addresses numerous bugs and, most notably, revokes sudo privileges previously granted to the server user.
Changes
- chore: increase default maximum amount of bytes a file sent by client can be
- chore: add warning about potential bugs when binding server to 0.0.0.0
- refactor: major overhaul of voice call WebRTC connection logic which resolves numerous issues
- fix: add check to ensure session is not null
- fix: duplicate ByteBuf before passing it to writeAndFlush to ensure read/write indices are preserved
- fix: add check ensuring the evaluation of client status does not fail
- fix: proactively enable and debut postgresql service in postinst
- fix: modify permissions of /etc/nginx to 755 during postinst
- fix: correct 'ermis' user account creation in postinst
- refactor: remove sudo usage from ermis user scripts - instead back up only non-root directories
- refactor: change default SMPT port used by server emailer
- fix: replace raw IP with 'IP_ADDRESS' placeholder
- fix: ensure device UUID is read correctly by server
- remove unnecessary code
Full Changelog: server-v1.0.0...server-v1.1.0-C
Mobile Client v1.1.0
Mobile Client v1.1.0 issues numerous patches and most notably (1) restricts mobile app orientation to portrait mode only (2) adds screen-on lock during voice/video calls (3) proactively requests all app permissions on startup to ensure proper functioning.
Obviously, the list of changes is not as succinct - refer to the changelog for more details.
Changes
- feat: configure background service to initialize on system boot (Works on emulator only)
- fix: proactively request all app permissions on startup to ensure proper functioning
- feat: configure mobile client to reconnect to server if disconnected once connection is available
- fix: add screen-on lock during voice/video calls
- refactor: restrict mobile app orientation to portrait mode only
- fix: ensure subscription listening to cancel voice call incoming event is destroyed
- fix: ensure all contexts are popped before pushing new voice call screen
- fix: correct voice call history colors to adapt to theme
- refactor: make mobile entropy calculation stricter
- fix: ensure popup item for logging off linked device works
- feat: add 'image not supported' icon on messages with invalid images (Flutter)
- fix(webrtc): ensure multiple incoming call screens are removed correctly
- feat: ensure speaker phone is enabled automatically with video (Flutter)
- refactor: ensure self is not displayed in linked devices (Flutter)
- fix: resolve user information leaking from previous account when switching to new one
- fix(auth): eliminate extraneous verification attempt
- feat: add capability to open transmitted files (Flutter)
- refactor: place message bubbles into their own distinct files for readability
Full Changelog: ermis-1.0.0...client-mobile-v1.1.0
Ermis Server v1.0.0-C
Ermis Server v1.0.0-C is the first major release for the server, issuing a comprehensive overhaul of both the authentication process and WebRTC signalling server.
Changes
- Replace IP address used to allow hashed login with UUID (3)
- Replace IP address used to allow hashed login with UUID (2)
- Replace IP address used to allow hashed login with UUID
- Add dedicated email template to backup verification codes sent to email
- Fix restoration of backup folders in ermis-server.sh
- Fix discrepancy between hashing algorithm used when creating backup codes and verifying codes
- Resolve odd symbols in backup verification codes by specifying legible chars
- chore(deps): update server dependency versions
- fix: ensure mobile client fetch correct user info based on account info
- feat: correct evaluation of chat session existing already in group chat creation
- feat: redirect user to active voice call if he attempts to initiate call
- fix(auth): ensure correct errors are displayed during verification
- fix: change WebRTC signalling server structure to fix issues associated with NAT
- fix: resolve bug where web socket is not sending correct byte data
- feat: correct evaluation of chat session existing already in group chat creation
- feat: ensure password hash is automatically updated on 'change password'
- feat: ensure users logged in via backup code receive password hash to remain signed in
- feat(auth): add capability to client to specify device UUID if one has been already designated to him
- A multitude of other bug fixes
Full Changelog: server-v0.101.1...server-v1.0.0
Ermis v1.0.0
Ermis v1.0.0 is the first major release of the Ermis platform - resolving a wide array of bugs, multiple UI enhancements and a comprehensive overhaul of both the authentication process and WebRTC signalling server.
Changes
- Replace IP address used to allow hashed login with UUID (3)
- Replace IP address used to allow hashed login with UUID (2)
- Replace IP address used to allow hashed login with UUID
- Configure mobile app to reset to starting screen when logging off (2)
- Configure mobile app to reset to starting screen when logging off
- Configure client to reset to starting screen if user deletes account
- Add dedicated email template to backup verification codes sent to email
- Fix restoration of backup folders in ermis-server.sh
- Fix discrepancy between hashing algorithm used when creating backup codes and verifying codes
- Resolve odd symbols in backup verification codes by specifying legible chars
- refactor: update code to not use now deprecated APIs (desktop client)
- refactor: update code to not use now deprecated APIs
- chore(deps): update desktop client dependency versions
- chore(deps): update common dependency versions
- chore(deps): update server dependency versions
- feat: add ermis loading messages to and eliminate check for resolved issue in ermis_background_service
- fix: ensure mobile client fetch correct user info based on account info
- feat: correct evaluation of chat session existing already in group chat creation
- feat: add loading messages on splash screen in mobile
- feat: redirect user to active voice call if he attempts to initiate call
- fix(auth): ensure correct errors are displayed during verification
- fix: ensure incoming voice call screen is popped only if it is displayed
- fix: remove loading dialog on logout due to issues arising with BuildContext
- feat: add cyberpunk-looking glitch effect on connection refused/reset
- fix: bug wherein deleting chat session would result in 'new chat' achievement
- feat: configure mobile background service to fetch previously sent unread messages
- fix: resolve issues with reply and end call actions in notifications not working
- add: voice call history event to update voice call history in convos
- fix: change WebRTC signalling server structure to fix issues associated with NAT
- fix: resolve bug where web socket is not sending correct byte data
- fix: resolve desktop database to actually save server designated device uuid
- fix: refactor WebRTC calls to ensure only one can be active
- fix: resolve issues regarding fetching chat sessions
- feat: add loading messages on splash screen in mobile
- feat: correct evaluation of chat session existing already in group chat creation
- fix: ensure mobile client fetch correct user info based on account info
- feat: ensure password hash is automatically updated on 'change password'
- feat: ensure users logged in via backup code receive password hash to remain signed in
- feat(auth): add capability to client to specify device UUID if one has been already designated to him
- A multitude of other bug fixes
Mobile Client Changelog: client-mobile-v0.101.4...ermis-release-1.0.0
Desktop Client Changelog: client-desktop-v0.101.0...ermis-release-1.0.0
Server Changelog: server-0.101.1...ermis-release-1.0.0
Full Changelog: ermis-release-0.99.0...ermis-release-1.0.0