Wiki » History » Revision 4
« Previous |
Revision 4/8
(diff)
| Next »
Redmine Admin, 07/22/2026 09:53 PM
Green Chat Desktop 0.2.1 — Beta Update¶
Дата выпуска: 22 июля 2026 года.
Версия 0.2.1 исправляет проблемы доставки сообщений и уведомлений,
обнаруженные во время бета-тестирования 0.2.0.
Главное¶
- Доставка больше не зависит только от WebSocket-событий. Клиент сверяет
локальное состояние с сервером после подключения, при ошибке live-доставки
и каждые две минуты, пока соединение активно. - Пропущенные во время офлайна сообщения автоматически догружаются в
правильном порядке вместе с необходимыми MLS-коммитами. - Счётчики непрочитанных, список тредов и сохранённые сообщения обновляются
после каждой сверки с сервером. - Для сообщений, полученных через фоновую сверку, показывается одно сводное
уведомление вместо серии попапов, даже если окно получило фокус сразу после
выхода ноутбука из сна. Если звук сообщений включён, сводное уведомление
сопровождается нативным звуком. Настройки DND, mute, quiet hours и режим
уведомлений канала продолжают учитываться.
Исправление личных сообщений после повторного входа¶
- Исправлена ситуация, когда после logout и повторного входа личный чат
оставался доступен, но новые сообщения фактически шифровались без устройства
собеседника. - Клиент автоматически обнаруживает отсутствующее устройство участника и
повторно добавляет его в MLS-группу личного чата. - Одновременное восстановление несколькими устройствами защищено коротким
серверным lease: проигравший клиент останавливается до изменения локальной
MLS-эпохи. - Пока устройство собеседника ещё не восстановлено в личном чате, поле ввода
заменяется сообщением о синхронизации, а отправка временно блокируется.
Отметка✓✓в этом состоянии заменяется честным предупреждением
not delivered. - После успешного восстановления чат разблокируется по долговременному
состоянию клиента, даже если соответствующее WebSocket-событие потерялось. - Если KeyPackage нового устройства ещё загружается, повторная попытка теперь
выполняется через несколько секунд с постепенным увеличением интервала. Чат
больше не зависает в состоянииre-syncingиз-за двухминутного ожидания,
которое при каждом перезапуске начиналось заново. - Исправлена ложная блокировка отправки после password login или привязки
устройства: старые клиенты создавали пустую MLS BasicCredential, поэтому
два реальных листа ошибочно считались одним пользователем. Готовность личного
чата теперь проверяется по фактическому MLS roster, а новые устройства
сохраняют credential с серверным username. - После выхода ноутбука из сна клиент больше не ждёт до 90 секунд, считая старый
WebSocket подключённым. Resume watchdog обнаруживает паузу системных часов,
переподключается в течение нескольких секунд, сразу забирает пропущенные
сообщения и восстанавливает видимый другим устройствам presence.
Надёжность и диагностика¶
- Ошибка обработки live-сообщения теперь запускает ускоренную сверку с
сервером вместо ожидания следующего переподключения. - Исправлена потеря полной проверки групп, если переподключение совпало по
времени с уже выполняющейся фоновой сверкой. - Отложенные reconcile-задачи корректно отменяются при logout.
- Desktop-клиент пишет диагностический лог в
glchat.logв каталоге данных
приложения. - Добавлена ротация лога при достижении 5 MiB с сохранением одной предыдущей
копииglchat.log.old, включая повторную ротацию на Windows.
Сервер¶
- Добавлены авторизованные endpoints состояния синхронизации: хвосты сообщений
по группам и отсутствующие membership-листы. - Добавлен одноразовый lease-token для безопасного восстановления membership.
- Добавлена метрика Prometheus для количества обнаруженных membership gaps.
- Добавлена миграция
022_membership_repair_claims.sql.
Содержимое сообщений, ключи и настройки уведомлений по-прежнему не передаются
серверу в открытом виде. Новые endpoints работают только с уже известными
серверу метаданными групп, устройств и последовательностей сообщений.
Обновление¶
Для проверки исправлений установите Green Chat Desktop 0.2.1 на все свои
устройства. Сервер также должен быть обновлён и иметь применённую миграцию
022_membership_repair_claims.sql.
Особенно важно повторно проверить:
- получение сообщений после временного отключения сети;
- непрочитанные, звук и системный попап после фоновой догрузки;
- личный чат после logout и повторного входа одного из участников;
- одновременную работу двух устройств одного аккаунта;
- наличие
glchat.logпосле перезапуска desktop-приложения.
VERSIONS CHANGE LOG¶
Green Chat Desktop 0.2.1 — Beta Update¶
Дата выпуска: 22 июля 2026 года.
Версия 0.2.1 исправляет проблемы доставки сообщений и уведомлений,
обнаруженные во время бета-тестирования 0.2.0.
Главное¶
- Доставка больше не зависит только от WebSocket-событий. Клиент сверяет
локальное состояние с сервером после подключения, при ошибке live-доставки
и каждые две минуты, пока соединение активно. - Пропущенные во время офлайна сообщения автоматически догружаются в
правильном порядке вместе с необходимыми MLS-коммитами. - Счётчики непрочитанных, список тредов и сохранённые сообщения обновляются
после каждой сверки с сервером. - Для сообщений, полученных через фоновую сверку, показывается одно сводное
уведомление вместо серии попапов, даже если окно получило фокус сразу после
выхода ноутбука из сна. Если звук сообщений включён, сводное уведомление
сопровождается нативным звуком. Настройки DND, mute, quiet hours и режим
уведомлений канала продолжают учитываться.
Исправление личных сообщений после повторного входа¶
- Исправлена ситуация, когда после logout и повторного входа личный чат
оставался доступен, но новые сообщения фактически шифровались без устройства
собеседника. - Клиент автоматически обнаруживает отсутствующее устройство участника и
повторно добавляет его в MLS-группу личного чата. - Одновременное восстановление несколькими устройствами защищено коротким
серверным lease: проигравший клиент останавливается до изменения локальной
MLS-эпохи. - Пока устройство собеседника ещё не восстановлено в личном чате, поле ввода
заменяется сообщением о синхронизации, а отправка временно блокируется.
Отметка✓✓в этом состоянии заменяется честным предупреждением
not delivered. - После успешного восстановления чат разблокируется по долговременному
состоянию клиента, даже если соответствующее WebSocket-событие потерялось. - Если KeyPackage нового устройства ещё загружается, повторная попытка теперь
выполняется через несколько секунд с постепенным увеличением интервала. Чат
больше не зависает в состоянииre-syncingиз-за двухминутного ожидания,
которое при каждом перезапуске начиналось заново. - Исправлена ложная блокировка отправки после password login или привязки
устройства: старые клиенты создавали пустую MLS BasicCredential, поэтому
два реальных листа ошибочно считались одним пользователем. Готовность личного
чата теперь проверяется по фактическому MLS roster, а новые устройства
сохраняют credential с серверным username. - После выхода ноутбука из сна клиент больше не ждёт до 90 секунд, считая старый
WebSocket подключённым. Resume watchdog обнаруживает паузу системных часов,
переподключается в течение нескольких секунд, сразу забирает пропущенные
сообщения и восстанавливает видимый другим устройствам presence.
Надёжность и диагностика¶
- Ошибка обработки live-сообщения теперь запускает ускоренную сверку с
сервером вместо ожидания следующего переподключения. - Исправлена потеря полной проверки групп, если переподключение совпало по
времени с уже выполняющейся фоновой сверкой. - Отложенные reconcile-задачи корректно отменяются при logout.
- Desktop-клиент пишет диагностический лог в
glchat.logв каталоге данных
приложения. - Добавлена ротация лога при достижении 5 MiB с сохранением одной предыдущей
копииglchat.log.old, включая повторную ротацию на Windows.
Сервер¶
- Добавлены авторизованные endpoints состояния синхронизации: хвосты сообщений
по группам и отсутствующие membership-листы. - Добавлен одноразовый lease-token для безопасного восстановления membership.
- Добавлена метрика Prometheus для количества обнаруженных membership gaps.
- Добавлена миграция
022_membership_repair_claims.sql.
Содержимое сообщений, ключи и настройки уведомлений по-прежнему не передаются
серверу в открытом виде. Новые endpoints работают только с уже известными
серверу метаданными групп, устройств и последовательностей сообщений.
Обновление¶
Для проверки исправлений установите Green Chat Desktop 0.2.1 на все свои
устройства.
Особенно важно повторно проверить:
- получение сообщений после временного отключения сети;
- непрочитанные, звук и системный попап после фоновой догрузки;
- личный чат после logout и повторного входа одного из участников;
- одновременную работу двух устройств одного аккаунта;
- наличие
glchat.logпосле перезапуска desktop-приложения.
glchat Desktop 0.2.0 — Beta Update¶
Изменения с 9 по 20 июля 2026 года.
Новые возможности¶
- Добавлены роли владельца и модератора канала, управление участниками, выход из канала и локальное скрытие чатов.
- Появились карточки профилей с аватаром, должностью, описанием и контактами.
- Добавлен единый раздел «Треды» со всеми обсуждениями и фильтром непрочитанных.
- Сообщения теперь можно сохранять в личные закладки с синхронизацией между устройствами.
- Добавлена локальная история загрузок: файл можно открыть, показать в папке или убрать из списка.
- Изображения открываются во встроенном просмотрщике, добавлена безопасная анимация GIF.
- Изображения из буфера обмена можно вставлять прямо в сообщение.
- Добавлены звуковые уведомления о новых сообщениях и настройка звука.
- Пользователи, вышедшие со всех устройств, теперь отмечаются в интерфейсе. Перед отправкой им личного сообщения или упоминания показывается предупреждение.
Улучшения интерфейса¶
- Добавлены контекстные действия для сообщений.
- Улучшены редакторы сообщений и ответов в тредах.
- Добавлены упоминания пользователей в ответах треда.
- Улучшена работа с вложениями: предварительная подготовка, drag-and-drop в треды и удаление отправленных файлов.
- Поиск теперь прокручивает чат до найденного сообщения и ограничивает слишком тяжёлые запросы.
- Улучшены индикаторы присутствия, подсчёт участников и расположение боковых панелей.
- После отправки сообщения чат автоматически прокручивается к нему.
- Исправлено восстановление окна приложения из системного трея.
Исправления и стабильность¶
- Исправлена синхронизация каналов, участников и метаданных между несколькими устройствами.
- Восстановлена доставка уведомлений после длительного офлайна.
- Статус пользователя обновляется сразу после подключения.
- Исправлен учёт непрочитанных сообщений при переключении фокуса окна.
- Исключённые каналы сразу удаляются из интерфейса, а устаревшие события больше не удаляют канал после повторного вступления.
- Исправлены отображение закреплённых файлов и привязка вложений к исходному чату.
- Добавлена корректная обработка максимальной длины сообщений.
- Аватары профилей теперь обновляются в реальном времени.
- Улучшено восстановление личных чатов после выхода всех участников со всех устройств.
- При выходе устройство отзывается на сервере, чтобы не оставлять неактивные устройства и ключи.
Сервер и эксплуатация¶
- Добавлены Prometheus-метрики для HTTP, WebSocket, PostgreSQL, Redis и Go runtime.
- Подготовлены базовые правила мониторинга и алертов.
- Улучшена конфигурация TLS для файлового хранилища.
Итого: 40 коммитов и 178 изменённых файлов в ветке main.
Updated by Redmine Admin about 1 month ago · 8 revisions