Зафиксировали текущие изменения UI и документации

This commit is contained in:
AidarKC
2026-08-28 12:55:28 +04:00
parent f6b95d94bc
commit ef1fd9f579
12 changed files with 522 additions and 54 deletions
@@ -682,3 +682,15 @@ Legacy-таблица `dm_sync_peer_state` после миграции v12 фи
- ротация `clientKey`;
- финальная конкретная UI-реализация массовой перешифровки;
- межсерверная авторизация DM-синхронизации и доставки.
## 15. UI списка диалогов и загрузки истории
Актуальные правила клиентского интерфейса:
- превью диалога выбирается по самому новому контентному сообщению независимо от направления `in/out`;
- если локально уже есть более новое расшифрованное сообщение, чем в серверной сводке `ListContacts`, клиент использует локальный текст и время до следующего согласования с сервером;
- локальное сообщение сравнивается с `lastMessageTimeMs`, поэтому входящие и исходящие сообщения участвуют в выборе на равных;
- индикатор загрузки истории всегда является компактным элементом фиксированной высоты сверху списка и не растягивается на высоту пустого чата;
- клик по аватару или логину собеседника открывает меню перехода в профиль или связи этого пользователя.
Эти правила относятся только к UI и не изменяют сетевой или байтовый формат DM v1.
@@ -341,3 +341,9 @@ ReadReceiptBody_v1_0
В версии DM v1 все типы `1..8` используют единый контейнер `SHiNE_DM`.
Межсерверные операции `ReceiveOutcomingMessage`, `ReceiveIncomingMessage` и `DmSyncBatch` не вводят новый байтовый формат DM. Они передают уже сохранённые raw-контейнеры `SHiNE_DM` в Base64. `ackSyncIds` подтверждает только факт сохранения синхронизированной ревизии; delivery-state между серверами не передаётся. Принимающий сервер заново проверяет подпись и применяет контейнер по его `messageType`.
## 14. Превью в списке диалогов
Выбор последнего сообщения для клиентского превью не является частью байтового формата. Клиент сравнивает время сообщений обоих направлений и показывает текст самого нового входящего или исходящего сообщения. Локальная расшифрованная копия может временно иметь приоритет над более старым `lastMessageBlobB64` из серверной сводки.
Контейнер `SHiNE_DM`, подписи, `messageType`, порядок полей и правила шифрования этой UI-доработкой не изменяются.