- Full message history synchronization from the server
- Message preload in dialogues
- Processing UNC links and absolute paths in the chat
- Various improvements
- Full list of changes + development history
- How to update to the latest version?
1. Full message history synchronization from the server
The issue was the following. We install MyChat Client on a new computer. Message history is stored on the server, and we have used the corporate messenger for a couple of years. There are a lot of messages for our account — over hundreds of thousands. How to read them in a client application, if a message history local database is empty?
Previously, the history was loaded from the server when were opening a dialogue. But it was not full, around 100 of the last messages for each dialogue. As a result, if an application was deleted or installed on a new computer, the old history for a year before last was not available — you could only view it on the Admin Panel.
The version 2024.2 provides a system of full synchronization. It works in an automatic mode, no need to do anything additionally. As soon as you open a history window (Alt+H), MyChat Client decides whether you need to synchronize or not. If yes, the program calculates what to synchronize, and then the console displays a notification and progress status:
When synchronization completes, the history window will open itself. Until then, you can use the program as usual — all features are available. If you were on holiday, and now need to synchronize a couple of hundreds of messages, then there will be no switching to the console, because the program will quickly load missing data from the server and open the history window.
Synchronization speed depends on a lot of factors: number and volume of messages, current server load, network speed, and computer performance. But the program displays approximate estimating time (how long you need to wait until it completes). Usually, it adjusts downward. For example, at the beginning, the program displayed that it needed half an hour, but it took only 6 minutes. It is normal behavior. The closer the end of the process, the more precise estimation of speed and time.
Moreover, you can interrupt the process: for example, exit the program or shut down the computer. Nothing bad will happen, and MyChat will figure out which stage is interrupted and continue the work on the next launch.
Notice, that you may not need such synchronization, if you only open different dialogues and read messages. The cache system in MyChat is smart enough to reduce requests to the server as much as possible to keep the better speed and save the traffic.
2. Message preload in dialogues
This is also some kind of synchronization, but with some differences. People who use mobile messengers are used to scrolling the message feed without thinking about where it comes from. It seems endless.
We have done something similar in MyChat for Windows. The history can load from the server via the network, but usually, it loads from a local database. Sometimes, if some history parts are missing, the program requests them from the server and caches them in the local database.
Scroll up messages by using the mouse (or Alt+Up / Alt+Home), and read to the very beginning, if necessary:
All magic is hidden as it is supposed to.
3. Processing UNC links and absolute paths in the chat
Automatic detection and displaying of links like "c:\temp\", "C:\tools\WiFi\nirsoft\WifiInfoView.exe", "\\192.168.10.13\public", etc.
If you click on the UNC link, it will open the Explorer that will try to open this link via the network. If this link is forwarded to a local directory or file, then the chat will check if the specified path exists. If not, you will see a special toast notification.
If the path exists, then the Explorer will open. If the path specifies a file, then The Explorer will select it for a user to open or run the file but by themselves. These are security measures because you do not know: perhaps, it is an execution file or malicious script.
If a local path exists, but a file is specified incorrectly, the Explorer will open regardless but with a folder without a selected file.
4. Various improvements
A console command /mini resizes the window to the minimum, but no longer switches to the console (you already know, that you can run command directly in the chat input text).
When clicking on an image or file you need to download from the server, but the file is deleted — the program does not switch to the console to display the error. Instead, you keep the focus and context and read the toast notification:
The record is written to a log as usual.
For Android and iOS applications we have added a setting for optimizing sent messages. If this setting is on, the image resolution is reduced to FullHD (maximum is 1920 pixels on the bigger side). The size is reduced by 60-75%. As a result, photos are sent faster, and their previews for a recipient are generated quicker.
5. Full list of changes + development history
Development history with developers' comments
MyChat Client
[+] system of full message synchronization on the server;
[+] (win32) automatic rendering of local and UNC links, and clicking on them in chat text;
[+] (android) (ios) added a setting for optimizing sent messages. If this setting is on, the image resolution is reduced to FullHD (maximum is 1920 pixels on the bigger side). The size is reduced by 60-75%. As a result, photos are sent faster, and their previews for a recipient are generated quicker;
[+] (win32) automatic scrolling for messages from conferences to chat window when scrolling the mouse wheel or using a keyboard;
[+] (win32) automatic scrolling for messages from private dialogue history to chat window when scrolling the mouse wheel or using a keyboard;
[*] (win32) updated render for message history, now all message types are displayed without duplicates;
[*] (win32) console command /mini resizes the window to the minimum but no longer switches to the console;
[*] (win32)correct processing and work with UNC links and links to local folder/files with spaces in names (copying, transition, rendering);
[*] (win32) pauses have been removed when processing right-clicks on UNC links that are currently unavailable;
[*] (win32) when clicking on an image of a file that you need to download from the server, but it is already deleted, the program does not switch to the console for displaying the error to not miss the focus and context. Instead, it displays a toast notification. The record is written to a log as usual;
[-] (win32) when sending a user a private message when they are offline for some time, the counter does not display relevant information. Fixed;
[-] (win32) render error in message history when requesting a huge block of history and switching between conferences/private dialogues. Fixed;
[-] (win32) incorrect sorting of private dialogues in the window for viewing history; incorrect display of last activity date. Fixed;
[-] (ios) after sending the image: on the viewing screen it was downloaded from the server instead of local storage. Fixed;
[-] (android) (ios) the function for deleting all private messages does not work correctly and requires logging out of the account. Fixed;
[-] (ios) fixed an error that occurred after sharing content via the "Share" menu while the app is active. The client stop processing any events until it is restarted;
[-] (ios) files sent from Android were not displayed correctly and were unavailable for download. Fixed;
[-] (win32) fixed error ID 117323F8 "Cannot focus a disabled or invisible window";
[-] (win32) fixed error ID F43D7638 "Call DeactivateFontsInfo before calling this";
[-] (win32) a mistake in the French localization file causes a cyclical error during the update process. Fixed;
[-] (win32) filter for users in conference; sometimes, a placeholder is not visible when switching to the conference from a private dialogue;
MyChat Server
[-] (admin) in the section "Settings" -> "Configuring SMTP", when inserting the text via the context menu, the program does not offer to save new parameters but allows to use the button "Check connection". Fixed;
[-] issue with a first server launch when it should create the very first new account in a clean installation. Fixed.
6. How to update to the latest version?
Both commercial and free versions are updated in the same way. The server is updated first, then the clients. In general, this process is performed automatically.