Browse Source

Document localized invitation titles and compact link presentation

master
evgeny 1 week ago
parent
commit
ec7ec2a229
  1. 19
      doc/pm_invites.md

19
doc/pm_invites.md

@ -5,7 +5,11 @@
и выбором группы, в которой отправитель состоит. Группа не выбирается автоматически.
После нажатия «Пригласить» клиент создаёт свежую ссылку через `invite_build`,
ожидает подтверждения регистрации ключа и отправляет ссылку обычным текстовым PM.
ожидает подтверждения регистрации ключа и отправляет PM с `ct="invite"`.
Зашифрованное тело: `[group_name:UTF8][NUL][полная ссылка:UTF8]`, без конечного NUL.
Снимок для GUI содержит полную ссылку в `data` и название в `tags.group_name`.
GUI добавляет заголовок «Приглашение в группу «название»» из перевода интерфейса;
язык отправителя не фиксирует язык сообщения у получателя.
Успех означает сохранение сообщения и исходящей задачи в одной транзакции.
Доставку, повтор и шифрование обеспечивает существующий механизм DM.
После успешной отправки открывается личная беседа с получателем.
@ -17,8 +21,11 @@
без обратного отсчёта и вычисления оставшегося времени.
Нажатие на `utun://` в сообщении запускает существующий JOIN и показывает его результат.
Если клиент уже состоит в группе, открывается эта группа. Перенос длинной ссылки
не меняет её содержимое; на desktop перетаскивание выделяет текст без запуска JOIN.
Если клиент уже состоит в группе, открывается эта группа. Ссылка приглашения отображается
одной строкой с многоточием; нажатие и копирование используют полный адрес.
В Android долгое нажатие копирует ссылку, в desktop выделение сокращённой строки
копирует ссылку целиком без запуска JOIN. Обычные текстовые PM с вручную
вставленными ссылками сохраняют текстовое отображение.
## Контракт операции
@ -44,10 +51,12 @@ JOIN во вторую группу может использовать уже
- `tests/test_dm_invite`: настоящая UDP-доставка ссылки в другую группу, JOIN,
репликация участника и отправка группового сообщения после вступления;
отмена, BUSY, неверная группа, rollback при ошибке commit и остановка DM.
отмена, BUSY, неверная группа, rollback при ошибке commit и остановка DM;
передача названия с Unicode, кавычками и переводом строки.
- `tests/test_chat_join`, `tests/test_chat_join_e2e`, `tests/test_dm_e2e`:
существующие сценарии регистрации ключей, JOIN и PM-доставки.
- Qt `test_invite_links`: переносы двух ссылок, их полное содержимое при нажатии,
- Qt `test_invite_links`: одна строка приглашения на разных ширинах, полный адрес
при нажатии и копировании, переносы двух обычных ссылок, их полное содержимое при нажатии,
выделение текста и выбор получателя кнопкой в строке участника.
- Qt `test_emoji_playback`: перетаскивание ссылки не активирует подключение.

Loading…
Cancel
Save