Project

General

Profile

Wiki » History » Revision 2

Revision 1 (Redmine Admin, 07/07/2026 01:37 AM) → Revision 2/8 (Redmine Admin, 07/21/2026 08:58 PM)

# Green Chat 0.2.0 — памятка бета-тестера 

 Спасибо, что участвуете в тестировании бете! Этот документ — 5 минут чтения: что такое 
 Green Chat. Эта памятка объясняет, 
 как подготовиться к бете, Chat, что особенно важно проверить в версии 0.2.0 нём проверять, что считается багом, а что — задуманным 
 поведением, и как 
 составить полезный правильно оставить баг-репорт. 

 Полный список изменений находится в 
 [changelog версии 0.2.0](beta-changelog-0.2.0.md). 

 ## Перед началом тестирования Что это такое 

 1. Установите версию **0.2.0 на все свои устройства**. Старые клиенты 
    несовместимы с новой синхронизацией участников каналов и могут работать 
    некорректно. 
 2. Проверьте номер версии в **Settings → Profile**. 
 3. По возможности подготовьте два тестовых аккаунта и два устройства для 
    одного из аккаунтов. Это позволит проверить доставку, роли и 
    мультиустройство. 
 4. Не используйте единственный рабочий аккаунт для сценариев с выходом из 
    системы: logout безвозвратно удаляет историю на текущем устройстве. 
 5. Бета-версия может содержать ошибки. Не отправляйте через неё данные, 
    потеря которых будет критичной. 

 ## Как устроено хранение сообщений 

 Green Chat **Green Chat**self-hosted корпоративный мессенджер (аналог Slack) со сквозным шифрованием MLS. Сервер 
 хранит **сквозным шифрованием** по стандарту MLS (RFC 9420). Ключевое отличие от 
 Slack/Telegram: сервер **не может прочитать ваши сообщения и файлы в зашифрованном виде файлы** — он 
 хранит только зашифрованные блобы и не располагает ключами для имеет ключей. Всё шифрование 
 их чтения. происходит на вашем устройстве. 

 Из этого следуют две важные ограничения: для тестера вещи: 

 - Никто не «восстановит переписку с сервера»: история расшифровывается и хранится живёт на устройствах пользователя; 
 - сервер и служба поддержки ваших 
   устройствах. Потеряете все устройства — потеряете историю. Это не могут прочитать переписку или восстановить баг, 
   уничтоженные ключи; это цена E2E. 
 - выход из аккаунта очищает локальную историю и ключи на этом устройстве; 
 - если выйти со всех устройств, прежнюю историю восстановить будет нельзя; 
 - для поиска ошибки особенно Поддержка не видит содержимое сообщений, поэтому в баг-репортах важны точное время события, участники, канал 
   **точное время, название канала и 
   последовательность действий. шаги** — по ним ищут проблему в логах. 

 ## Что особенно важно проверить в версии 0.2.0 Ключевые возможности (что тестировать) 

 ### 1. Обычные сообщения - **Каналы и восстановление соединения 

 - Отправьте личные сообщения в канал и личный чат. (DM)**, справочник сотрудников (directory). 
 - Проверьте доставку текста, эмодзи, форматирования и ответов в треде. 
 - Полностью отключите сеть на одном из устройств на несколько минут, затем **Форматирование текста** (rich text), **эмодзи**, **@-упоминания**, 
   включите её обратно. **закреплённые сообщения** (pins). 
 - Убедитесь, что клиент подключился самостоятельно и получил сообщения, **Статусы**: presence (online/away/DND), индикатор «печатает», отметки 
   отправленные во время офлайна. 
 - Проверьте, что статус online/offline обновляется без повторного открытия 
   канала. 

 Сообщение со статусом `sent`, которое после восстановления соединения так и 
 не появилось sent/delivered у получателя, считается важным багом. 

 ### 2. Треды 

 - Создайте несколько тредов в разных каналах. сообщений, счётчики непрочитанного. 
 - Откройте раздел **Threads** и проверьте сортировку **Мультиустройство**: вход на второе устройство по последней активности. 
 - Переключите фильтры **All** паролю (Sign in) или 
   по QR-коду (Link device); прочитанность, черновики и **Unread**. 
 - Нажмите на тред в списке и убедитесь, что открылись правильный канал и список устройств 
   исходное сообщение. синхронизируются между вашими устройствами (тоже E2E). 
 - Ответьте с `@mention`, добавьте вложение или перетащите файл **Файлы-вложения** — отправка в область чат, drag-and-drop в окно 
   ответа. (⚠ на части бета-серверов вложения могут быть отключены — уточните у 
   организатора). 
 - При наличии второго устройства проверьте синхронизацию прочитанности **Уведомления**: системные попапы, счётчик на иконке приложения, tray, 
   тредов. 

 ### 3. Роли и участники каналов 

 Для полноценной проверки нужны минимум три аккаунта: владелец, модератор и 
 обычный участник. 

 1. Создайте приватный канал и пригласите двух участников. 
 2. Убедитесь, что создатель отмечен как owner. 
 3. Назначьте одного участника модератором и затем снимите роль. 
 4. Проверьте, что owner может приглашать и исключать участников. 
 5. Проверьте, что moderator может управлять обычными участниками, но не 
    владельцем или другим модератором. 
 6. Исключите обычного участника: канал должен сразу исчезнуть у него из 
    интерфейса, настройки уведомлений (per-channel, DND, quiet hours), 
   **email при офлайн-DM** (письмо, если вам написали в личку, а новые сообщения не должны быть доступны. 
 7. Повторно пригласите участника и убедитесь, что устаревшее событие удаления 
    не убирает канал снова. 

 Дополнительно можно проверить выход из канала: 

 - обычный участник и модератор могут выйти самостоятельно; 
 - owner с другими участниками должен сначала назначить модератора; 
 - при выходе owner владение автоматически переходит назначенному модератору; 
 - из DM выйти нельзя, но его можно скрыть через **Remove for me**; 
 - для публичного канала исключение участника недоступно, поскольку он может приложение 
   вступить обратно самостоятельно. 

 ### 4. Профили 

 - Заполните аватар, должность, описание и рабочий телефон. полностью закрыто). 
 - Откройте карточку профиля из сообщения **Темы**: светлая (по умолчанию) и панели участников. тёмная. 
 - Проверьте копирование email и телефона. 
 - Измените аватар или данные профиля Работает на одном устройстве и убедитесь, что 
   изменения появились у другого пользователя без перезапуска приложения. **Windows, macOS, Linux**. 

 Поля профиля видны всем пользователям организации ## Что считается багомэто справочная информация, 
 а не приватная часть переписки. что нет 

 ### 5. Поиск и действия с сообщениями Это баги — репортите обязательно 

 - Найдите старое сообщение через поиск и перейдите к нему. Падение или зависание приложения. 
 - Убедитесь, что чат прокрутился к правильному сообщению Сообщение отправлено (стоит «sent»), но получателю так и выделил его. не пришло. 
 - Проверьте доступные контекстные действия: ответ, редактирование, сохранение, 
   закрепление и удаление там, где они разрешены. Сообщение отображается как ошибка расшифровки или «кракозябрами». 
 - Отредактируйте длинное сообщение и ответ в треде: поле ввода должно 
   увеличиваться вместе с текстом. На двух ваших устройствах разошлись прочитанность/черновики/история. 
 - Попробуйте превысить допустимую длину сообщения. Клиент должен показать 
   понятное ограничение, а не зависнуть или молча потерять текст. 

 Поиск работает по локально доступной истории устройства. Отсутствие сообщения, 
 которого никогда не Не пришёл попап о **личном сообщении**, хотя окно было на этом устройстве, само по себе не является багом. 

 ### 6. Файлы, изображения в фокусе и GIF 

 - выберите файл через кнопку вложения и убедитесь, что он сначала появился в 
   области подготовки к отправке; DND/mute выключены. 
 - удалите подготовленный файл, Приложение не отправляя сообщение; переподключилось само после обрыва сети/рестарта сервера. 
 - перетащите файлы Сломанная вёрстка, нечитаемый текст (особенно в основной чат и отдельно в открытый тред; 
 - вставьте изображение из буфера обмена; 
 - отправьте несколько файлов и проверьте, что они остались в исходном чате, тёмной теме), «мёртвые» 
   даже если во время загрузки переключиться на другой канал; кнопки. 
 - откройте изображение во встроенном просмотрщике; 
 - проверьте воспроизведение GIF и отсутствие чрезмерной нагрузки интерфейса; 
 - удалите собственное сообщение с вложением и убедитесь, что файл больше не 
   доступен из чата; 
 - скачайте файл и проверьте его содержимое после расшифровки. 

 Ошибки загрузки, повреждённый скачанный файл, вложение в неправильном канале при загрузке/скачивании файлов (если вложения включены). 
 или зависшая подготовка файла считаются багами. 

 ### 7. Сохранённые сообщения и загрузки 

 - Сохраните сообщения из разных каналов через контекстное меню. 
 - Откройте раздел **Saved**, перейдите из него к исходному сообщению и удалите 
   закладку. 
 - При наличии второго устройства проверьте, Всё, что список сохранённых сообщений выглядит как проблема безопасности (видно чужое, вход без 
   синхронизировался. 
 - Скачайте несколько файлов пароля и откройте раздел **Downloads**. 
 - Проверьте действия **Open file**, **Show in folder** и 
   **Remove from history**. 

 Сохранённые сообщения синхронизируются между устройствами и видны только 
 владельцу аккаунта. История загрузок хранится только на конкретном устройстве. 
 Удаление записи из Downloads не удаляет сам файл т.п.) — репортите с диска. Файлы, скачанные до 
 установки 0.2.0, в историю автоматически не добавляются. приоритетом High. 

 ### 8. Уведомления и звук Это НЕ баги — так задумано 

 - В **Settings → Notifications** нажмите **Send test**. 
 - Оставьте окно приложения без фокуса и попросите другого тестера отправить 
   DM — должен появиться системный попап и прозвучать звук. 
 - Проверьте `@mention` **Нет попапа на обычное сообщение в канале. Обычное сообщение без упоминания по канале.** По умолчанию каналы 
   не показывает попап. 
 - Отключите звук уведомляют только при **@-упоминании** (как в настройках и убедитесь, что новые сообщения приходят без Slack). Хотите проверить 
   звукового сигнала. 
 - Проверьте DND, mute канала и quiet hours. 
 - Полностью закройте приложение попапы — тестируйте через tray → **Quit**, отправьте на аккаунт 
   DM и проверьте email-уведомление, если SMTP включён на сервере. 

 Попапы показывает запущенное приложение. После полного выхода через **Quit** 
 desktop-клиент не может показать системное уведомление; в этом случае для DM 
 может прийти только email. 

 ### 9. Несколько устройств 

 - Войдите на второе устройство по паролю или привяжите его по QR-коду. @-mention. 
 - Создайте приватный канал и пригласите пользователя с несколькими активными 
   устройствами. 
 - Убедитесь, что канал, его название и новые сообщения появились **Число на всех 
   устройствах приглашённого. 
 - Проверьте синхронизацию прочитанности, черновиков, сохранённых сообщений и 
   скрытых чатов. 
 - Измените аватар и убедитесь, что он обновился на других клиентах. 
 - Закройте одно устройство, продолжите работу на втором, затем верните первое 
   в сеть и проверьте восстановление состояния. 

 ### 10. Выход со всех устройств 

 Этот сценарий выполняйте иконке** считает только на специально созданном тестовом аккаунте. 
 Перед выходом убедитесь, что клиент подключён к серверу. 

 1. Выйдите из аккаунта на последнем активном устройстве DM и подтвердите 
    предупреждение об удалении истории. 
 2. У другого пользователя аккаунт должен получить отметку **Logged out** упоминания; непрочитанное в 
    списке DM, профиле, панели участников и выборе пользователя. 
 3. В существующем DM история должна остаться читаемой, но поле отправки должно 
    замениться предупреждением. 
 4. Создание нового DM с вышедшим пользователем должно быть заблокировано. 
 5. Отправьте в канал сообщение с его персональным `@mention`: сообщение 
    должно отправиться остальным участникам, а автор должен увидеть 
    предупреждение о недоставке упомянутому пользователю. 
 6. Снова войдите этим аккаунтом. Отметка Logged out должна исчезнуть у других 
    пользователей. 

 Повторный вход создаёт новое активное устройство, но 
   каналах — это «точка», не возвращает историю, число. 
 уничтоженную при logout. 

 ## Что обязательно считать багом 

 - Падение, зависание или бесконечная загрузка приложения. 
 - Потеря уже отправленного сообщения или его появление в неправильном чате. 
 - Ошибка расшифровки, нечитаемый текст или повреждённый файл. 
 - Получение доступа к чужому каналу, профилю или данным без разрешения. 
 - Возможность обычного участника выполнить действие owner/moderator. 
 - Доступ исключённого участника к новым сообщениям приватного канала. 
 - Расхождение каналов, ролей, сохранённых сообщений или прочитанности между 
   устройствами, которое **Email-уведомление не исправляется после переподключения. 
 - Отсутствие DM пришло**, если приложение было свёрнуто или `@mention`-уведомления при выполненных условиях доставки. 
 - Неправильный адресат, канал или тред у вложения. 
 - Неработающая кнопка, обрезанный интерфейс или нечитаемый текст, особенно в 
   тёмной теме. 

 Проблемы безопасности, потерю данных tray — вы считаетесь онлайн. Письмо уходит только про **DM** и воспроизводимые падения отмечайте 
 приоритетом **High**. 

 ## Известные ограничения беты 

 - Вход обычно доступен только по приглашению; вкладки создания свободного 
   аккаунта может когда приложение полностью закрыто (tray → Quit), не быть. чаще 1 письма на 
   диалог в 15 минут. 
 - Автоматического обновления нет **Нет вкладки «New account»**новую версию нужно устанавливать вручную. вход на бета-сервер только по инвайту. 
 - Windows может показать **Windows**: предупреждение SmartScreen с предупреждением о неизвестном «неизвестный издатель» — бета- 
   издателе. сборки пока не подписаны. 
 - Неподписанная macOS-сборка может быть заблокирована Gatekeeper. После 
   переноса приложения в `/Applications` выполните: 

   ```sh 
   xattr -cr "/Applications/Green Chat.app" 
   ``` 

 - На macOS системные **macOS**: попапы бета-сборки могут отображаться приходят от имени «Script Editor» — известный 
   **Script Editor**. бета-компромисс до подписания сборок. 
 - На части серверов отправка файлов и email-уведомления могут быть отключены. **macOS**: Gatekeeper может блокировать запуск .dmg — следуйте 
   инструкции организатора (снятие quarantine). 
 - Числовой бейдж учитывает DM и упоминания; обычное непрочитанное сообщение в 
   канале отображается точкой. **Нет автообновления** — новые версии ставятся вручную поверх старой. 
 - Сообщение `SPKI «SPKI pin mismatch` mismatch» после плановой смены серверного ключа требует сервера — лечится 
   повторного входа. Клиент logout и повторным входом (клиент намеренно не принимает новый ключ молча. 
   сервера молча). 
 - Проверка «Send test» в Settings → Notifications шлёт попап в обход всех 
   правил — если он приходит, а обычные уведомления нет, дело в настройках 
   (DND/mute/фокус окна), а не в поломке ОС. 

 Если поведение не перечислено здесь и выглядит неправильным, лучше отправить Сомневаетесь, баг это или нет? **Репортите.** Лучше лишний репорт, чем 
 репорт. пропущенный баг. 

 ## Как оставить баг-репорт 

 Трекер: **<https://bug.green-lab.space/projects/greenchat/issues/new>** — 
 <https://bug.green-lab.space/projects/greenchat/issues/new>. Регистрация регистрация не 
 нужна, репорт можно отправить анонимно. 

 ### Какие поля заполнять 

 | Поле | Что указать 

 ```text делать | 
 Краткое название: что |---|---| 
 | **Tracker** | `Bug` — для ошибок; `Feature` — для предложений; `Support` — для вопросов | 
 | **Subject** | Обязательно. Одна конкретная фраза: *что* сломалось и где *где* | 
 | **Description** | Главное поле — по шаблону ниже | 
 | **Priority** | `Normal` почти всегда. `High` — падение, потеря данных, безопасность. `Urgent`/`Immediate` — не ставьте | 
 | **Files** | Скриншот/видео очень помогают (до 5 MB) | 
 | Status, Assignee, Start/Due date, Estimated time, % Done | **Не трогайте** — это служебные поля команды | 

 ### Шаблон для Description 

 ```text 
 Шаги: 
 1. … 
 2. … 
 3. … 

 Ожидал: … 
 Получил: … 

 Окружение: 
 - Green Chat 0.2.0 
 - ОС и версия (напр. Windows 11 / Ubuntu 24.04 / macOS 15), 
 - один или несколько аккаунтов/устройств 
 - название канала или DM 
 - точное версия приложения (внизу страницы Settings → Profile), время события и часовой пояс 
 (с точностью до минуты, с часовым поясом). 

 Воспроизводится: всегда / иногда / один раз раз. 
 Дополнительно: скриншот или короткое видео 
 ``` 

 Для проблем синхронизации укажите ОС и версию клиента **на каждой стороне**, 
 а также какое устройство было офлайн. 

 Трекер публичный. ⚠ **Трекер публичный.** Не прикладывайте вставляйте в репорт пароли, invite-коды, ключи, приватные коды инвайтов и 
 логи или скриншоты с конфиденциальной перепиской. Перед отправкой перепиской — замажьте 
 лишние данные. лишнее. 

 ### Приоритет Пример хорошего репорта 

 | Приоритет | Когда использовать | > **Subject:** DM не доставляется, если получатель офлайн в момент отправки 
 |---|---| > 
 | `Normal` | Большинство ошибок интерфейса и поведения | > **Description:** 
 | `High` | Падение, потеря данных, недоставка сообщений, нарушение прав или безопасности | > Шаги: 
 | `Urgent` / `Immediate` | Не выбирайте без отдельной просьбы команды | 

 ## Быстрая диагностика уведомлений 

 > 1. Нажмите **Settings Коллега полностью закрыл приложение (trayNotifications → Send test**. Quit). 
 > 2. Если тест пришёл, проверьте DND, mute, quiet hours и фокус окна. Я отправил ему DM «тест 123» в 14:32 (UTC+3), у сообщения появилась 
 >      отметка sent. 
 > 3. Для канала используйте персональный `@mention`; обычное сообщение может не 
    создавать попап. 
 4. Если Коллега открыл приложение было закрыто через tray → Quit, системного попапа быть не 
    должно. в 14:40. 
 5. Если Send test не работает > 
 > Ожидал: сообщение появится у него при разрешённых уведомлениях ОС, создайте 
    баг-репорт и обязательно укажите операционную систему. 


 # glchat Desktop 0.2.0 — Beta Update 

 Изменения с 9 по 20 июля 2026 года. 

 ## Новые возможности 

 - Добавлены роли владельца и модератора канала, управление участниками, выход из канала и локальное скрытие чатов. запуске. 
 - Появились карточки профилей с аватаром, должностью, описанием > Получил: сообщения нет ни в 14:40, ни через час; у меня оно так и контактами. висит 
 - Добавлен единый раздел «Треды» со всеми обсуждениями и фильтром непрочитанных. > как sent, без delivered. 
 - Сообщения теперь можно сохранять в личные закладки с синхронизацией между устройствами. > 
 - Добавлена локальная история загрузок: файл можно открыть, показать в папке или убрать из списка. > Окружение: у меня Windows 11, приложение 0.1.0; у него Ubuntu 24.04, 
 - Изображения открываются во встроенном просмотрщике, добавлена безопасная анимация GIF. 
 - Изображения > тоже 0.1.0. Воспроизвели 2 раза из буфера обмена можно вставлять прямо в сообщение. 
 - Добавлены звуковые уведомления о новых сообщениях 2. Скриншоты обеих сторон приложил. 

 Почему он хороший: понятно, как повторить; есть ожидаемое и настройка звука. фактическое 
 - Пользователи, вышедшие со всех устройств, теперь отмечаются в интерфейсе. Перед отправкой им личного сообщения или упоминания показывается предупреждение. 

 ## Улучшения интерфейса 

 - Добавлены контекстные действия поведение; есть точное время для сообщений. 
 - Улучшены редакторы сообщений и ответов поиска в тредах. 
 - Добавлены упоминания пользователей в ответах треда. 
 - Улучшена работа с вложениями: предварительная подготовка, drag-and-drop в треды логах сервера; указаны ОС и удаление отправленных файлов. 
 - Поиск теперь прокручивает чат до найденного сообщения и ограничивает слишком тяжёлые запросы. 
 - Улучшены индикаторы присутствия, подсчёт участников и расположение боковых панелей. 
 - После отправки сообщения чат автоматически прокручивается к нему. 
 - Исправлено восстановление окна приложения из системного трея. версии обеих сторон; заявлена воспроизводимость. 

 ## Исправления и стабильность ### Пример плохого репорта 

 - Исправлена синхронизация каналов, участников и метаданных между несколькими устройствами. > **Subject:** ничего не работает!!! 
 - Восстановлена доставка уведомлений после длительного офлайна. > 
 - Статус пользователя обновляется сразу после подключения. > **Description:** уведомления не приходят, почините. Priority: Immediate 

 Почему он плохой: непонятно, какие уведомления (попап? бейдж? email?), 
 - Исправлен учёт непрочитанных сообщений на какой ОС, при переключении фокуса окна. каких условиях (канал или DM? окно в фокусе? включён 
 - Исключённые каналы сразу удаляются из интерфейса, а устаревшие события больше DND?), когда это было и как повторить. Скорее всего, это вообще не удаляют канал после повторного вступления. баг — 
 - Исправлены отображение закреплённых файлов и привязка вложений к исходному чату. 
 - Добавлена корректная обработка максимальной длины сообщений. 
 - Аватары профилей теперь обновляются см. раздел «Это НЕ баги» про уведомления в реальном времени. каналах. Завышенный приоритет 
 - Улучшено восстановление личных чатов после выхода всех участников со всех устройств. 
 - При выходе устройство отзывается на сервере, чтобы не оставлять неактивные устройства и ключи. только замедлит разбор. 

 ## Сервер и эксплуатация Быстрая самодиагностика перед репортом об уведомлениях 

 - Добавлены Prometheus-метрики для HTTP, WebSocket, PostgreSQL, Redis 1. Settings → Notifications → **Send test**. Попап пришёл? Значит ОС в 
    порядке — проверьте DND, mute канала, quiet hours и Go runtime. фокус окна. 
 - Подготовлены базовые правила мониторинга и алертов. 2. Помните: канал без @-упоминания попап не даёт — это по умолчанию. 
 - Улучшена конфигурация TLS для файлового хранилища. 

 Итого: **40 коммитов и 178 изменённых файлов** в ветке `main`. 

 3. Если Send test не пришёл — вот это уже баг, репортите с указанием ОС.