SHiNE-server/Dev_Docs/Pending_Features/2026-05-14_1945_персональный-чат-формат-блока-и-обратный-канал.md

4.5 KiB
Raw Blame History

Персональный публичный чат: исправление формата блока и обратный канал

  • краткое описание фичи:

    • Исправлен формат отправки CreateChannel из UI: для создания канала теперь используется версия body 1, совместимая с серверным парсером.
    • Убрана ошибка AddBlock: Некорректный формат блока (BAD_BLOCK_FORMAT) при создании персонального публичного чата (тип 100) на актуальном сервере.
    • В channel-view для персонального чата добавлена клиентская склейка диалога:
      • основной канал A -> B (владелец A, имя канала B, тип 100);
      • зеркальный канал B -> A (владелец B, имя канала A, тип 100);
      • сообщения обоих каналов показываются в одном диалоге, отсортированном по времени.
    • Если зеркальный канал не найден, показывается уведомление в шапке канала о том, что у собеседника пока не создан ответный чат.
    • Исправлена ошибка Идентификатор канала не готов при добавлении сообщения в ряде сценариев (например, «мои сторис»): отправка теперь использует фактически загруженный селектор канала, а не только параметры маршрута.
    • Улучшен резолв канала при открытии из поиска/прямой ссылки:
      • сначала попытка по ownerBlockchainName + channelName;
      • fallback по ownerLogin + channelName;
      • дополнительный fallback через GetUser(owner) с сопоставлением blockchainName. Это снижает число ложных Канал не найден при открытии сторис/каналов других пользователей.
  • что именно проверять:

    • Создать персональный публичный чат через UI (Каналы -> Чаты -> Новый персональный публичный чат) и убедиться, что ошибка BAD_BLOCK_FORMAT больше не появляется.
    • Открыть созданный персональный чат A -> B, написать сообщение.
    • С аккаунта B создать зеркальный чат B -> A, отправить ответ.
    • Снова открыть чат у A и проверить, что в одном экране видны и исходящие, и входящие сообщения из зеркального канала.
    • Проверить, что при отсутствии зеркального канала в шапке отображается предупреждение.
    • Вкладка «Мои сторис»: открыть канал и отправить сообщение кнопкой «Добавить сообщение» — ошибка про неготовый идентификатор не должна появляться.
    • Вкладка «Найти канал»: открыть чужой сторис/канал по формату user/channel и убедиться, что канал открывается (если реально существует и доступен в выдаче).
  • ожидаемый результат:

    • Персональный публичный чат создаётся без ошибки формата блока.
    • При наличии зеркального канала переписка отображается единым диалогом.
    • При отсутствии зеркального канала пользователь видит явное уведомление.
    • В «мои сторис» сообщение добавляется без ошибки Идентификатор канала не готов.
    • Открытие чужих каналов из поиска/ссылки работает стабильнее без ложного Канал не найден.
  • статус:

    • pending