Project

General

Profile

Wiki » History » Version 2

Redmine Admin, 07/21/2026 08:58 PM

1 2 Redmine Admin
# Green Chat 0.2.0 — памятка бета-тестера
2 1 Redmine Admin
3 2 Redmine Admin
Спасибо, что участвуете в тестировании Green Chat. Эта памятка объясняет,
4
как подготовиться к бете, что особенно важно проверить в версии 0.2.0 и как
5
составить полезный баг-репорт.
6 1 Redmine Admin
7 2 Redmine Admin
Полный список изменений находится в
8
[changelog версии 0.2.0](beta-changelog-0.2.0.md).
9 1 Redmine Admin
10 2 Redmine Admin
## Перед началом тестирования
11 1 Redmine Admin
12 2 Redmine Admin
1. Установите версию **0.2.0 на все свои устройства**. Старые клиенты
13
   несовместимы с новой синхронизацией участников каналов и могут работать
14
   некорректно.
15
2. Проверьте номер версии в **Settings → Profile**.
16
3. По возможности подготовьте два тестовых аккаунта и два устройства для
17
   одного из аккаунтов. Это позволит проверить доставку, роли и
18
   мультиустройство.
19
4. Не используйте единственный рабочий аккаунт для сценариев с выходом из
20
   системы: logout безвозвратно удаляет историю на текущем устройстве.
21
5. Бета-версия может содержать ошибки. Не отправляйте через неё данные,
22
   потеря которых будет критичной.
23 1 Redmine Admin
24 2 Redmine Admin
## Как устроено хранение сообщений
25 1 Redmine Admin
26 2 Redmine Admin
Green Chat — корпоративный мессенджер со сквозным шифрованием MLS. Сервер
27
хранит сообщения и файлы в зашифрованном виде и не располагает ключами для
28
их чтения.
29 1 Redmine Admin
30 2 Redmine Admin
Из этого следуют важные ограничения:
31 1 Redmine Admin
32 2 Redmine Admin
- история расшифровывается и хранится на устройствах пользователя;
33
- сервер и служба поддержки не могут прочитать переписку или восстановить
34
  уничтоженные ключи;
35
- выход из аккаунта очищает локальную историю и ключи на этом устройстве;
36
- если выйти со всех устройств, прежнюю историю восстановить будет нельзя;
37
- для поиска ошибки особенно важны точное время события, участники, канал и
38
  последовательность действий.
39 1 Redmine Admin
40 2 Redmine Admin
## Что особенно важно проверить в версии 0.2.0
41 1 Redmine Admin
42 2 Redmine Admin
### 1. Обычные сообщения и восстановление соединения
43 1 Redmine Admin
44 2 Redmine Admin
- Отправьте сообщения в канал и личный чат.
45
- Проверьте доставку текста, эмодзи, форматирования и ответов в треде.
46
- Полностью отключите сеть на одном из устройств на несколько минут, затем
47
  включите её обратно.
48
- Убедитесь, что клиент подключился самостоятельно и получил сообщения,
49
  отправленные во время офлайна.
50
- Проверьте, что статус online/offline обновляется без повторного открытия
51
  канала.
52 1 Redmine Admin
53 2 Redmine Admin
Сообщение со статусом `sent`, которое после восстановления соединения так и
54
не появилось у получателя, считается важным багом.
55 1 Redmine Admin
56 2 Redmine Admin
### 2. Треды
57 1 Redmine Admin
58 2 Redmine Admin
- Создайте несколько тредов в разных каналах.
59
- Откройте раздел **Threads** и проверьте сортировку по последней активности.
60
- Переключите фильтры **All** и **Unread**.
61
- Нажмите на тред в списке и убедитесь, что открылись правильный канал и
62
  исходное сообщение.
63
- Ответьте с `@mention`, добавьте вложение или перетащите файл в область
64
  ответа.
65
- При наличии второго устройства проверьте синхронизацию прочитанности
66
  тредов.
67 1 Redmine Admin
68 2 Redmine Admin
### 3. Роли и участники каналов
69 1 Redmine Admin
70 2 Redmine Admin
Для полноценной проверки нужны минимум три аккаунта: владелец, модератор и
71
обычный участник.
72 1 Redmine Admin
73 2 Redmine Admin
1. Создайте приватный канал и пригласите двух участников.
74
2. Убедитесь, что создатель отмечен как owner.
75
3. Назначьте одного участника модератором и затем снимите роль.
76
4. Проверьте, что owner может приглашать и исключать участников.
77
5. Проверьте, что moderator может управлять обычными участниками, но не
78
   владельцем или другим модератором.
79
6. Исключите обычного участника: канал должен сразу исчезнуть у него из
80
   интерфейса, а новые сообщения не должны быть доступны.
81
7. Повторно пригласите участника и убедитесь, что устаревшее событие удаления
82
   не убирает канал снова.
83 1 Redmine Admin
84 2 Redmine Admin
Дополнительно можно проверить выход из канала:
85 1 Redmine Admin
86 2 Redmine Admin
- обычный участник и модератор могут выйти самостоятельно;
87
- owner с другими участниками должен сначала назначить модератора;
88
- при выходе owner владение автоматически переходит назначенному модератору;
89
- из DM выйти нельзя, но его можно скрыть через **Remove for me**;
90
- для публичного канала исключение участника недоступно, поскольку он может
91
  вступить обратно самостоятельно.
92
93
### 4. Профили
94
95
- Заполните аватар, должность, описание и рабочий телефон.
96
- Откройте карточку профиля из сообщения и панели участников.
97
- Проверьте копирование email и телефона.
98
- Измените аватар или данные профиля на одном устройстве и убедитесь, что
99
  изменения появились у другого пользователя без перезапуска приложения.
100
101
Поля профиля видны всем пользователям организации — это справочная информация,
102
а не приватная часть переписки.
103
104
### 5. Поиск и действия с сообщениями
105
106
- Найдите старое сообщение через поиск и перейдите к нему.
107
- Убедитесь, что чат прокрутился к правильному сообщению и выделил его.
108
- Проверьте доступные контекстные действия: ответ, редактирование, сохранение,
109
  закрепление и удаление там, где они разрешены.
110
- Отредактируйте длинное сообщение и ответ в треде: поле ввода должно
111
  увеличиваться вместе с текстом.
112
- Попробуйте превысить допустимую длину сообщения. Клиент должен показать
113
  понятное ограничение, а не зависнуть или молча потерять текст.
114
115
Поиск работает по локально доступной истории устройства. Отсутствие сообщения,
116
которого никогда не было на этом устройстве, само по себе не является багом.
117
118
### 6. Файлы, изображения и GIF
119
120
- выберите файл через кнопку вложения и убедитесь, что он сначала появился в
121
  области подготовки к отправке;
122
- удалите подготовленный файл, не отправляя сообщение;
123
- перетащите файлы в основной чат и отдельно в открытый тред;
124
- вставьте изображение из буфера обмена;
125
- отправьте несколько файлов и проверьте, что они остались в исходном чате,
126
  даже если во время загрузки переключиться на другой канал;
127
- откройте изображение во встроенном просмотрщике;
128
- проверьте воспроизведение GIF и отсутствие чрезмерной нагрузки интерфейса;
129
- удалите собственное сообщение с вложением и убедитесь, что файл больше не
130
  доступен из чата;
131
- скачайте файл и проверьте его содержимое после расшифровки.
132
133
Ошибки загрузки, повреждённый скачанный файл, вложение в неправильном канале
134
или зависшая подготовка файла считаются багами.
135
136
### 7. Сохранённые сообщения и загрузки
137
138
- Сохраните сообщения из разных каналов через контекстное меню.
139
- Откройте раздел **Saved**, перейдите из него к исходному сообщению и удалите
140
  закладку.
141
- При наличии второго устройства проверьте, что список сохранённых сообщений
142
  синхронизировался.
143
- Скачайте несколько файлов и откройте раздел **Downloads**.
144
- Проверьте действия **Open file**, **Show in folder** и
145
  **Remove from history**.
146
147
Сохранённые сообщения синхронизируются между устройствами и видны только
148
владельцу аккаунта. История загрузок хранится только на конкретном устройстве.
149
Удаление записи из Downloads не удаляет сам файл с диска. Файлы, скачанные до
150
установки 0.2.0, в историю автоматически не добавляются.
151
152
### 8. Уведомления и звук
153
154
- В **Settings → Notifications** нажмите **Send test**.
155
- Оставьте окно приложения без фокуса и попросите другого тестера отправить
156
  DM — должен появиться системный попап и прозвучать звук.
157
- Проверьте `@mention` в канале. Обычное сообщение без упоминания по умолчанию
158
  не показывает попап.
159
- Отключите звук в настройках и убедитесь, что новые сообщения приходят без
160
  звукового сигнала.
161
- Проверьте DND, mute канала и quiet hours.
162
- Полностью закройте приложение через tray → **Quit**, отправьте на аккаунт
163
  DM и проверьте email-уведомление, если SMTP включён на сервере.
164
165
Попапы показывает запущенное приложение. После полного выхода через **Quit**
166
desktop-клиент не может показать системное уведомление; в этом случае для DM
167
может прийти только email.
168
169
### 9. Несколько устройств
170
171
- Войдите на второе устройство по паролю или привяжите его по QR-коду.
172
- Создайте приватный канал и пригласите пользователя с несколькими активными
173
  устройствами.
174
- Убедитесь, что канал, его название и новые сообщения появились на всех
175
  устройствах приглашённого.
176
- Проверьте синхронизацию прочитанности, черновиков, сохранённых сообщений и
177
  скрытых чатов.
178
- Измените аватар и убедитесь, что он обновился на других клиентах.
179
- Закройте одно устройство, продолжите работу на втором, затем верните первое
180
  в сеть и проверьте восстановление состояния.
181
182
### 10. Выход со всех устройств
183
184
Этот сценарий выполняйте только на специально созданном тестовом аккаунте.
185
Перед выходом убедитесь, что клиент подключён к серверу.
186
187
1. Выйдите из аккаунта на последнем активном устройстве и подтвердите
188
   предупреждение об удалении истории.
189
2. У другого пользователя аккаунт должен получить отметку **Logged out** в
190
   списке DM, профиле, панели участников и выборе пользователя.
191
3. В существующем DM история должна остаться читаемой, но поле отправки должно
192
   замениться предупреждением.
193
4. Создание нового DM с вышедшим пользователем должно быть заблокировано.
194
5. Отправьте в канал сообщение с его персональным `@mention`: сообщение
195
   должно отправиться остальным участникам, а автор должен увидеть
196
   предупреждение о недоставке упомянутому пользователю.
197
6. Снова войдите этим аккаунтом. Отметка Logged out должна исчезнуть у других
198
   пользователей.
199
200
Повторный вход создаёт новое активное устройство, но не возвращает историю,
201
уничтоженную при logout.
202
203
## Что обязательно считать багом
204
205
- Падение, зависание или бесконечная загрузка приложения.
206
- Потеря уже отправленного сообщения или его появление в неправильном чате.
207
- Ошибка расшифровки, нечитаемый текст или повреждённый файл.
208
- Получение доступа к чужому каналу, профилю или данным без разрешения.
209
- Возможность обычного участника выполнить действие owner/moderator.
210
- Доступ исключённого участника к новым сообщениям приватного канала.
211
- Расхождение каналов, ролей, сохранённых сообщений или прочитанности между
212
  устройствами, которое не исправляется после переподключения.
213
- Отсутствие DM или `@mention`-уведомления при выполненных условиях доставки.
214
- Неправильный адресат, канал или тред у вложения.
215
- Неработающая кнопка, обрезанный интерфейс или нечитаемый текст, особенно в
216
  тёмной теме.
217
218
Проблемы безопасности, потерю данных и воспроизводимые падения отмечайте
219
приоритетом **High**.
220
221
## Известные ограничения беты
222
223
- Вход обычно доступен только по приглашению; вкладки создания свободного
224
  аккаунта может не быть.
225
- Автоматического обновления нет — новую версию нужно устанавливать вручную.
226
- Windows может показать SmartScreen с предупреждением о неизвестном
227
  издателе.
228
- Неподписанная macOS-сборка может быть заблокирована Gatekeeper. После
229
  переноса приложения в `/Applications` выполните:
230
231
  ```sh
232
  xattr -cr "/Applications/Green Chat.app"
233
  ```
234
235
- На macOS системные попапы бета-сборки могут отображаться от имени
236
  **Script Editor**.
237
- На части серверов отправка файлов и email-уведомления могут быть отключены.
238
- Числовой бейдж учитывает DM и упоминания; обычное непрочитанное сообщение в
239
  канале отображается точкой.
240
- Сообщение `SPKI pin mismatch` после плановой смены серверного ключа требует
241
  повторного входа. Клиент намеренно не принимает новый ключ молча.
242
243
Если поведение не перечислено здесь и выглядит неправильным, лучше отправить
244
репорт.
245
246
## Как оставить баг-репорт
247
248
Трекер:
249
<https://bug.green-lab.space/projects/greenchat/issues/new>. Регистрация не
250
нужна, репорт можно отправить анонимно.
251
252
### Что указать
253
254 1 Redmine Admin
```text
255 2 Redmine Admin
Краткое название: что сломалось и где
256
257 1 Redmine Admin
Шаги:
258
1. …
259
2. …
260
3. …
261
262
Ожидал: …
263
Получил: …
264
265 2 Redmine Admin
Окружение:
266
- Green Chat 0.2.0
267
- ОС и версия
268
- один или несколько аккаунтов/устройств
269
- название канала или DM
270
- точное время события и часовой пояс
271 1 Redmine Admin
272 2 Redmine Admin
Воспроизводится: всегда / иногда / один раз
273
Дополнительно: скриншот или короткое видео
274 1 Redmine Admin
```
275
276 2 Redmine Admin
Для проблем синхронизации укажите ОС и версию клиента **на каждой стороне**,
277
а также какое устройство было офлайн.
278 1 Redmine Admin
279 2 Redmine Admin
Трекер публичный. Не прикладывайте пароли, invite-коды, ключи, приватные
280
логи или скриншоты с конфиденциальной перепиской. Перед отправкой замажьте
281
лишние данные.
282 1 Redmine Admin
283 2 Redmine Admin
### Приоритет
284 1 Redmine Admin
285 2 Redmine Admin
| Приоритет | Когда использовать |
286
|---|---|
287
| `Normal` | Большинство ошибок интерфейса и поведения |
288
| `High` | Падение, потеря данных, недоставка сообщений, нарушение прав или безопасности |
289
| `Urgent` / `Immediate` | Не выбирайте без отдельной просьбы команды |
290 1 Redmine Admin
291 2 Redmine Admin
## Быстрая диагностика уведомлений
292 1 Redmine Admin
293 2 Redmine Admin
1. Нажмите **Settings → Notifications → Send test**.
294
2. Если тест пришёл, проверьте DND, mute, quiet hours и фокус окна.
295
3. Для канала используйте персональный `@mention`; обычное сообщение может не
296
   создавать попап.
297
4. Если приложение было закрыто через tray → Quit, системного попапа быть не
298
   должно.
299
5. Если Send test не работает при разрешённых уведомлениях ОС, создайте
300
   баг-репорт и обязательно укажите операционную систему.
301 1 Redmine Admin
302
303 2 Redmine Admin
# glchat Desktop 0.2.0 — Beta Update
304 1 Redmine Admin
305 2 Redmine Admin
Изменения с 9 по 20 июля 2026 года.
306
307
## Новые возможности
308
309
- Добавлены роли владельца и модератора канала, управление участниками, выход из канала и локальное скрытие чатов.
310
- Появились карточки профилей с аватаром, должностью, описанием и контактами.
311
- Добавлен единый раздел «Треды» со всеми обсуждениями и фильтром непрочитанных.
312
- Сообщения теперь можно сохранять в личные закладки с синхронизацией между устройствами.
313
- Добавлена локальная история загрузок: файл можно открыть, показать в папке или убрать из списка.
314
- Изображения открываются во встроенном просмотрщике, добавлена безопасная анимация GIF.
315
- Изображения из буфера обмена можно вставлять прямо в сообщение.
316
- Добавлены звуковые уведомления о новых сообщениях и настройка звука.
317
- Пользователи, вышедшие со всех устройств, теперь отмечаются в интерфейсе. Перед отправкой им личного сообщения или упоминания показывается предупреждение.
318
319
## Улучшения интерфейса
320
321
- Добавлены контекстные действия для сообщений.
322
- Улучшены редакторы сообщений и ответов в тредах.
323
- Добавлены упоминания пользователей в ответах треда.
324
- Улучшена работа с вложениями: предварительная подготовка, drag-and-drop в треды и удаление отправленных файлов.
325
- Поиск теперь прокручивает чат до найденного сообщения и ограничивает слишком тяжёлые запросы.
326
- Улучшены индикаторы присутствия, подсчёт участников и расположение боковых панелей.
327
- После отправки сообщения чат автоматически прокручивается к нему.
328
- Исправлено восстановление окна приложения из системного трея.
329
330
## Исправления и стабильность
331
332
- Исправлена синхронизация каналов, участников и метаданных между несколькими устройствами.
333
- Восстановлена доставка уведомлений после длительного офлайна.
334
- Статус пользователя обновляется сразу после подключения.
335
- Исправлен учёт непрочитанных сообщений при переключении фокуса окна.
336
- Исключённые каналы сразу удаляются из интерфейса, а устаревшие события больше не удаляют канал после повторного вступления.
337
- Исправлены отображение закреплённых файлов и привязка вложений к исходному чату.
338
- Добавлена корректная обработка максимальной длины сообщений.
339
- Аватары профилей теперь обновляются в реальном времени.
340
- Улучшено восстановление личных чатов после выхода всех участников со всех устройств.
341
- При выходе устройство отзывается на сервере, чтобы не оставлять неактивные устройства и ключи.
342
343
## Сервер и эксплуатация
344
345
- Добавлены Prometheus-метрики для HTTP, WebSocket, PostgreSQL, Redis и Go runtime.
346
- Подготовлены базовые правила мониторинга и алертов.
347
- Улучшена конфигурация TLS для файлового хранилища.
348
349
Итого: **40 коммитов и 178 изменённых файлов** в ветке `main`.