From 5344c42ceb5edfa040a4f0ff6fd81cb73ba3cbc2a9a41c46209316f800694614 Mon Sep 17 00:00:00 2001 From: AidarKC Date: Thu, 21 May 2026 15:03:28 +0300 Subject: [PATCH] =?UTF-8?q?chore:=20=D0=BE=D1=87=D0=B8=D1=81=D1=82=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20Pending=5FFeatures=20=D0=B8=20=D0=BE=D0=B1=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=B8=D1=82=D1=8C=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-05-14_1236_thread-действия-и-счетчики.md | 25 ------------ ...026-05-13_0201_голосовые-инструменты-openai-tts-и-stt.md | 34 ----------------- .../2026-05-13_0222_argon2id-логин-и-регистрация.md | 36 ------------------ ..._0248_вкладки-каналов-и-legacy-fallback-createchannel.md | 26 ------------- .../2026-05-13_0258_исправление-версии-createchannel.md | 22 ----------- .../2026-05-14_1243_каналы-поиск-просмотр-и-подписка.md | 24 ------------ ..._1414_ui-ошибки-в-сервер-и-персональный-публичный-чат.md | 31 --------------- ...-05-14_1627_мультиаккаунты-и-улучшенный-поиск-каналов.md | 32 ---------------- ...4_1945_персональный-чат-формат-блока-и-обратный-канал.md | 38 ------------------- .../2026-05-16_2123_solana-генерация-кошелька-base58.md | 36 ------------------ ...26-05-19_0046_навигация-по-тредам-и-история-сообщения.md | 19 ---------- ...19_0112_короткая-ссылка-на-сообщение-m-блокчейн-номер.md | 19 ---------- .../2026-05-19_1012_history-router-без-hash.md | 21 ---------- ...5-19_1359_карточка-автора-в-канале-и-назад-по-истории.md | 25 ------------ ...26-05-19_1428_шапка-канала-и-унификация-тред-карточек.md | 27 ------------- ...506_поднятие-верхней-фиксированной-шапки-канал-и-тред.md | 18 --------- .../2026-05-19_1548_профиль-упрощение-и-чат-ux-меню-речи.md | 26 ------------- ...-05-19_1613_dm-ctrl-enter-автоскролл-и-время-в-списке.md | 28 -------------- .../2026-05-19_1618_dm-список-и-поведение-enter-в-чате.md | 24 ------------ ...2026-05-19_1620_деплой-на-93.170.12.154-caddy-systemd.md | 33 ---------------- ..._2032_редактирование-сообщений-история-и-delete-empty.md | 24 ------------ ...9_2047_каналы-убрать-тред-две-вкладки-и-dm-автоскролл.md | 23 ----------- .../2026-05-19_2113_аватары-в-каналах-тредах-и-лс.md | 15 -------- .../2026-05-20_1134_connection-shine-known-codes.md | 23 ----------- .../2026-05-20_1221_profile-opinion-ui-and-order.md | 25 ------------ VERSION.properties | 4 +- 26 files changed, 2 insertions(+), 656 deletions(-) delete mode 100644 Dev_Docs/Pending_Features/Сделаные/2026-05-14_1236_thread-действия-и-счетчики.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0201_голосовые-инструменты-openai-tts-и-stt.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0222_argon2id-логин-и-регистрация.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0248_вкладки-каналов-и-legacy-fallback-createchannel.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0258_исправление-версии-createchannel.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1243_каналы-поиск-просмотр-и-подписка.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1414_ui-ошибки-в-сервер-и-персональный-публичный-чат.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1627_мультиаккаунты-и-улучшенный-поиск-каналов.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1945_персональный-чат-формат-блока-и-обратный-канал.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-16_2123_solana-генерация-кошелька-base58.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_0046_навигация-по-тредам-и-история-сообщения.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_0112_короткая-ссылка-на-сообщение-m-блокчейн-номер.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1012_history-router-без-hash.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1359_карточка-автора-в-канале-и-назад-по-истории.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1428_шапка-канала-и-унификация-тред-карточек.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1506_поднятие-верхней-фиксированной-шапки-канал-и-тред.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1548_профиль-упрощение-и-чат-ux-меню-речи.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1613_dm-ctrl-enter-автоскролл-и-время-в-списке.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1618_dm-список-и-поведение-enter-в-чате.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1620_деплой-на-93.170.12.154-caddy-systemd.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_2032_редактирование-сообщений-история-и-delete-empty.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_2047_каналы-убрать-тред-две-вкладки-и-dm-автоскролл.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_2113_аватары-в-каналах-тредах-и-лс.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-20_1134_connection-shine-known-codes.md delete mode 100644 Dev_Docs/Pending_Features/вроде сделанное/2026-05-20_1221_profile-opinion-ui-and-order.md diff --git a/Dev_Docs/Pending_Features/Сделаные/2026-05-14_1236_thread-действия-и-счетчики.md b/Dev_Docs/Pending_Features/Сделаные/2026-05-14_1236_thread-действия-и-счетчики.md deleted file mode 100644 index 2b36076..0000000 --- a/Dev_Docs/Pending_Features/Сделаные/2026-05-14_1236_thread-действия-и-счетчики.md +++ /dev/null @@ -1,25 +0,0 @@ -# Thread: стабильная нижняя панель действий со счётчиками - -- краткое описание фичи: - - На карточках сообщений во вкладке thread нижняя панель действий теперь всегда стабильная и содержит: - - сердечко + количество лайков; - - иконка ответа + количество ответов; - - иконка изменений + количество изменений (только если изменений больше 0); - - справа кнопку отправки (`↗ Отправить`). - - Логика изменений: `изменения = versionsTotal - 1`. - - Если `versionsTotal = 1`, поле изменений не показывается. - - Убрано поведение с появлением дополнительной верхней надписи/статистики после первого взаимодействия. - -- что именно проверять: - - Открыть любой thread и убедиться, что у каждой карточки внизу всегда видны кнопки/счётчики. - - Проверить, что лайк и ответ отображают корректные числа сразу, без дополнительного клика. - - Для сообщения с `versionsTotal = 1` убедиться, что поле изменений отсутствует. - - Для сообщения с `versionsTotal > 1` убедиться, что показывается `✏️ N`, где `N = versionsTotal - 1`. - - Проверить, что справа всегда есть `↗ Отправить`. - -- ожидаемый результат: - - Нижняя панель действий во thread ведёт себя одинаково и не меняет структуру после кликов/ответов. - - Счётчики соответствуют данным API. - -- статус: - - pending diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0201_голосовые-инструменты-openai-tts-и-stt.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0201_голосовые-инструменты-openai-tts-и-stt.md deleted file mode 100644 index b83af1c..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0201_голосовые-инструменты-openai-tts-и-stt.md +++ /dev/null @@ -1,34 +0,0 @@ -# Голосовой ввод и озвучка (STT/TTS) - -Статус: `pending` - -## Что сделано - -- Добавлен голосовой ввод в: - - личный чат; - - форму ответа в канале; - - форму нового сообщения в канале; - - форму ответа в треде. -- Добавлен инструмент «Прочесть вслух» для текста в чате. -- Добавлен экран `Настройки инструментов ввода`: - - STT через OpenAI (base URL, API key, качество, модель); - - TTS через Browser / Piper HTTP / OpenAI TTS. -- Для TTS добавлена кнопка «Проверить озвучку». -- Если инструмент не настроен, показывается предложение перейти в настройки. -- Настройки сохраняются локально и сохраняются между сессиями. - -## Как проверять - -1. Открыть `Настройки -> Настройки инструментов ввода`. -2. В блоке STT заполнить OpenAI API key (и при необходимости URL/модель). -3. В блоке TTS выбрать OpenAI, заполнить API key, при необходимости модель/голос. -4. Нажать «Проверить озвучку» и убедиться, что звук воспроизводится. -5. Открыть чат/канал/тред, нажать кнопку `🎤`, записать голос, нажать `OK`. -6. Убедиться, что распознанный текст подставился в поле ввода. -7. Отправить сообщение и проверить, что оно дошло. - -## Ожидаемый результат - -- Голосовой ввод работает во всех указанных формах. -- Озвучка через OpenAI TTS работает с тем же ключом, что и STT (если ключ имеет нужные права). -- При пустых настройках показывается понятный переход в настройки. diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0222_argon2id-логин-и-регистрация.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0222_argon2id-логин-и-регистрация.md deleted file mode 100644 index a41f650..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0222_argon2id-логин-и-регистрация.md +++ /dev/null @@ -1,36 +0,0 @@ -# Argon2id для входа/регистрации + блок «Расширенные» - -Статус: `pending` - -## Что сделано - -- При непустом пароле derivation ключей переведён на Argon2id. -- В derivation участвуют и логин, и пароль. -- Для пустого пароля оставлен прежний тестовый режим (старый детерминированный вариант), чтобы сохранить текущий тестовый сценарий. -- На экранах входа и регистрации добавлен блок `Расширенные` с кратким описанием схемы и параметров. - -## Параметры Argon2id (текущий профиль) - -- `t = 3` -- `m = 262144 KiB` (256 MB) -- `p = 1` -- `dkLen = 32` - -Формат salt: - -- `saltSource = "shine-auth-v2|login=|suffix="` -- `salt = first16bytes( SHA-256(saltSource) )` -- `keySuffix` = `root.key` / `bch.key` / `dev.key` - -## Как проверять - -1. На входе/регистрации открыть `Расширенные` и проверить отображение описания. -2. Проверить тестовый режим: оставить пароль пустым и убедиться, что вход работает по старому сценарию. -3. Проверить новый режим: ввести непустой пароль и выполнить вход/регистрацию. -4. Проверить, что одинаковый пароль при разных логинах даёт разные ключи (например, вход под двумя логинами с тем же паролем и проверка несовпадения производных ключей/сессий). - -## Ожидаемый результат - -- Непустой пароль использует Argon2id. -- Пустой пароль остаётся тестовым legacy-вариантом. -- UI показывает пользователю, как сейчас считается секрет. diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0248_вкладки-каналов-и-legacy-fallback-createchannel.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0248_вкладки-каналов-и-legacy-fallback-createchannel.md deleted file mode 100644 index 43a1d87..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0248_вкладки-каналов-и-legacy-fallback-createchannel.md +++ /dev/null @@ -1,26 +0,0 @@ -# Каналы: явные вкладки + fallback CreateChannel для legacy-сервера - -Статус: `pending` - -## Что сделано - -- На экране каналов добавлены явные вкладки: - - `Каналы` - - `Чаты` - - `Мои` -- Переключение теперь работает по обычному тапу, без необходимости long-press на кнопке toolbar. -- В `addBlockCreateChannel` добавлен fallback: - - сначала отправляется текущий формат CreateChannel (с description/type/version), - - если сервер возвращает `bad_block_format`, выполняется повтор с legacy-форматом тела (без description/type/version) для совместимости со старым сервером. - -## Как проверять - -1. Открыть экран каналов и проверить переключение всех трёх вкладок по тапу. -2. Нажимать на строки каналов и убедиться, что переход в канал работает. -3. Создать новый канал и убедиться, что при старом сервере создание не падает с `Некорректный формат блока`. - -## Ожидаемый результат - -- Вкладки `Каналы/Чаты/Мои` переключаются стабильно. -- Каналы открываются по тапу. -- Создание канала устойчиво к legacy-формату сервера. diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0258_исправление-версии-createchannel.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0258_исправление-версии-createchannel.md deleted file mode 100644 index 8c66a3c..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-13_0258_исправление-версии-createchannel.md +++ /dev/null @@ -1,22 +0,0 @@ -# Fix: CreateChannel версия формата (v3) - -Статус: `pending` - -## Что исправлено - -- Найдена причина `bad_block_format` при создании канала: - UI отправлял тело CreateChannel нового формата (с description/type/version), но с `msgVersion=1`. -- Исправлено на корректный `msgVersion=3` для нового формата. -- Оставлен fallback для старого сервера: - - при `bad_block_format` повтор с legacy-телом и `msgVersion=1`. - -## Как проверять - -1. Открыть `Каналы` и создать новый канал. -2. Убедиться, что создание проходит без ошибки `Некорректный формат блока`. -3. Проверить, что канал появляется в списке и открывается. - -## Ожидаемый результат - -- Основной путь работает в едином корректном формате `CreateChannel v3`. -- На старом сервере сохраняется совместимость через fallback. diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1243_каналы-поиск-просмотр-и-подписка.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1243_каналы-поиск-просмотр-и-подписка.md deleted file mode 100644 index a81a49e..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1243_каналы-поиск-просмотр-и-подписка.md +++ /dev/null @@ -1,24 +0,0 @@ -# Каналы: новые табы + поиск/просмотр + подписка в канале - -- краткое описание фичи: - - На вкладке «Каналы» верхние табы переставлены в порядок: `Чаты`, `Каналы`, `Мои`. - - По умолчанию открывается вкладка `Каналы` (центральная). - - Нижняя кнопка на вкладке `Каналы` переименована: `Найти канал` (вместо `Подписаться на канал`). - - В модальном поиске канала оставлен сценарий выбора по `user/channel` (и по имени канала через существующие подсказки), без использования формата `blockchain:number:hash`. - - В результатах поиска канала добавлена явная кнопка `Просмотреть` для перехода в канал. - - На экране канала кнопка `Подписаться на канал` показывается только если пользователь ещё не подписан. - - После подтверждённой подписки кнопка исчезает (повторный ререндер с обновлённым feed). - -- что именно проверять: - - Открыть `Каналы`: убедиться, что порядок табов `Чаты | Каналы | Мои`, активна по умолчанию `Каналы`. - - На `Каналы` проверить нижнюю кнопку `Найти канал`. - - В `Найти канал` выбрать канал и нажать `Просмотреть`: должен открыться экран канала. - - На экране чужого канала (без подписки) нажать `Подписаться на канал`, подтвердить `Ок`. - - Убедиться, что после успешной подписки кнопка `Подписаться на канал` исчезает. - -- ожидаемый результат: - - Пользователь находит и открывает канал через `Найти канал` → `Просмотреть`. - - Подписка выполняется на экране канала и не предлагается повторно сразу после успеха. - -- статус: - - pending diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1414_ui-ошибки-в-сервер-и-персональный-публичный-чат.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1414_ui-ошибки-в-сервер-и-персональный-публичный-чат.md deleted file mode 100644 index 5b4452b..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1414_ui-ошибки-в-сервер-и-персональный-публичный-чат.md +++ /dev/null @@ -1,31 +0,0 @@ -# UI-ошибки в сервер + новый сценарий персонального публичного чата - -- краткое описание фичи: - - Добавлена настройка разработчика «Отправлять ошибки на сервер» (по умолчанию выключена), с локальным сохранением. - - При включенной настройке UI-ошибки отправляются в `CallDeliveryReport` с `type=ui_error` и отдельным кодом `UI_RUNTIME_ERROR`. - - После успешной отправки показывается toast: «Ошибка отправлена на сервер · · <время>». - - Для вкладки `Чаты` кнопка переименована в «Новый персональный публичный чат». - - Добавлен отдельный экран создания персонального публичного чата: - - фиксированный `channelType=100`; - - ввод логина второго пользователя; - - поиск/подсказки пользователей; - - создание канала с каноническим логином из сервера; - - опциональное описание; - - предупреждение про публичность и хранение в блокчейне. - - Обновлены правила документации: имена pending-файлов и описания новых фич рекомендованы на русском. - -- что именно проверять: - - В `Настройки разработчика` открыть «Отправлять ошибки на сервер», включить и сохранить. - - Сгенерировать UI-ошибку и проверить: - - появляется toast об отправке; - - запись появляется в `logs/call-delivery-events.log` с `type=ui_error`. - - На вкладке `Каналы -> Чаты` проверить новую кнопку «Новый персональный публичный чат». - - Проверить форму создания: подсказки логинов, создание с правильным регистром логина, описание и инфоблок. - -- ожидаемый результат: - - UI-ошибки начинают отправляться только при включенной настройке. - - В логах сервера UI-ошибки отделяются по типу `ui_error`. - - Персональный публичный чат создается через отдельный, более понятный пользовательский сценарий. - -- статус: - - pending diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1627_мультиаккаунты-и-улучшенный-поиск-каналов.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1627_мультиаккаунты-и-улучшенный-поиск-каналов.md deleted file mode 100644 index bf2a1dd..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1627_мультиаккаунты-и-улучшенный-поиск-каналов.md +++ /dev/null @@ -1,32 +0,0 @@ -# Мультиаккаунты + улучшенный поиск каналов/чатов - -- краткое описание фичи: - - Добавлен long-press на кнопку `Профиль` в нижнем тулбаре. - - По удержанию открывается меню с кнопкой `Сменить профиль`. - - Добавлен экран `Сменить профиль`: - - список уже добавленных аккаунтов; - - пометка активного аккаунта; - - переключение на другой аккаунт; - - кнопки `Добавить аккаунт (Войти)` и `Добавить аккаунт (Регистрация)`. - - Сессии нескольких аккаунтов сохраняются локально; при `authorizeSession` аккаунт добавляется/обновляется в списке. - - Выход из текущей сессии теперь удаляет только текущий аккаунт из списка аккаунтов. - - В `Новый персональный публичный чат` разрешён логин длиной 1 символ (тип канала `100`). - - В `Найти канал` улучшен UX: - - кнопка `Найти`; - - поиск пользователей по началу логина; - - понятные сообщения при отсутствии совпадений/каналов. - -- что именно проверять: - - Удержать кнопку `Профиль` и открыть `Сменить профиль`. - - Проверить отображение активного аккаунта и переключение на другой. - - Проверить сценарий `Добавить аккаунт` (войти/зарегистрироваться) без вылета из текущего аккаунта. - - Проверить создание персонального публичного чата с логином из 1 символа. - - Проверить поиск каналов по префиксу логина и работу кнопки `Найти`. - -- ожидаемый результат: - - Переключение между несколькими аккаунтами работает из UI. - - Поиск каналов стал управляемым и понятным. - - Ограничение 3+ символов для персонального чата снято. - -- статус: - - pending diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1945_персональный-чат-формат-блока-и-обратный-канал.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1945_персональный-чат-формат-блока-и-обратный-канал.md deleted file mode 100644 index af03aea..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-14_1945_персональный-чат-формат-блока-и-обратный-канал.md +++ /dev/null @@ -1,38 +0,0 @@ -# Персональный публичный чат: исправление формата блока и обратный канал - -- краткое описание фичи: - - Исправлен формат отправки `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`. - Это снижает число ложных `Канал не найден` при открытии сторис/каналов других пользователей. - - В форме «Создать канал» (вкладка «Мои») удалён выбор типа канала: создаётся только публичный канал `type=1` с полями «название + описание». - - Минимальная длина названия канала изменена с `3` на `1` (новый диапазон: `1..32`). - - Перед записью сообщения в канал UI теперь получает актуальное состояние линии канала (последний блок в линии) и строит `TEXT_POST` от свежего `prevLine`, что убирает постоянные конфликты состояния (`bad_prev_line_hash` / `line_err_prev_hash_mismatch`) при добавлении в свои сторис/каналы. - -- что именно проверять: - - Создать персональный публичный чат через UI (`Каналы -> Чаты -> Новый персональный публичный чат`) и убедиться, что ошибка `BAD_BLOCK_FORMAT` больше не появляется. - - Открыть созданный персональный чат `A -> B`, написать сообщение. - - С аккаунта `B` создать зеркальный чат `B -> A`, отправить ответ. - - Снова открыть чат у `A` и проверить, что в одном экране видны и исходящие, и входящие сообщения из зеркального канала. - - Проверить, что при отсутствии зеркального канала в шапке отображается предупреждение. - - Вкладка «Мои сторис»: открыть канал и отправить сообщение кнопкой «Добавить сообщение» — ошибка про неготовый идентификатор не должна появляться. - - Вкладка «Найти канал»: открыть чужой сторис/канал по формату `user/channel` и убедиться, что канал открывается (если реально существует и доступен в выдаче). - -- ожидаемый результат: - - Персональный публичный чат создаётся без ошибки формата блока. - - При наличии зеркального канала переписка отображается единым диалогом. - - При отсутствии зеркального канала пользователь видит явное уведомление. - - В «мои сторис» сообщение добавляется без ошибки `Идентификатор канала не готов`. - - Открытие чужих каналов из поиска/ссылки работает стабильнее без ложного `Канал не найден`. - -- статус: - - pending diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-16_2123_solana-генерация-кошелька-base58.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-16_2123_solana-генерация-кошелька-base58.md deleted file mode 100644 index 76f9490..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-16_2123_solana-генерация-кошелька-base58.md +++ /dev/null @@ -1,36 +0,0 @@ -## Краткое описание - -На экране `Кошелёк -> Solana кошелёк` добавлен блок создания нового Solana-кошелька: -- генерация случайного кошелька; -- генерация публичного ключа из введённого приватного ключа Base58 (32 байта). - -Добавлены: -- валидация формата Base58; -- проверка точной длины приватного ключа (ровно 32 байта после декодирования); -- запрет ввода слишком длинного значения (`maxlength=44`); -- статус `Подходит` для валидного ввода; -- нередактируемое поле публичного ключа с возможностью копирования. - -## Что проверять - -1. Открыть `Кошелёк -> Solana кошелёк`. -2. В блоке создания кошелька нажать `Сгенерировать случайный кошелёк`. -3. Проверить, что появились: - - приватный ключ Base58; - - публичный ключ Base58 (в нередактируемом поле). -4. Нажать `Копировать приватный` и `Копировать публичный` — убедиться, что значения копируются. -5. Ввести невалидный приватный ключ (символы не из Base58) — увидеть ошибку формата. -6. Ввести слишком короткий ключ — увидеть сообщение, что значение слишком короткое. -7. Ввести валидный Base58-ключ на 32 байта — увидеть статус `Подходит`. -8. Нажать `Сгенерировать из приватного ключа` — публичный ключ должен сгенерироваться. -9. Проверить, что в поле ввода приватного ключа нельзя вставить/ввести более 44 символов. - -## Ожидаемый результат - -- Оба сценария генерации работают стабильно. -- Для невалидного ввода показываются корректные сообщения. -- Поле публичного ключа не редактируется, но значение можно скопировать. - -## Статус - -`pending` diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_0046_навигация-по-тредам-и-история-сообщения.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_0046_навигация-по-тредам-и-история-сообщения.md deleted file mode 100644 index c0a0365..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_0046_навигация-по-тредам-и-история-сообщения.md +++ /dev/null @@ -1,19 +0,0 @@ -# Навигация по тредам и история сообщения - -Статус: `pending` - -## Краткое описание -В экране треда добавлен явный переход `🧵 В тред` для каждого сообщения (включая ответы), чтобы можно было углубляться в любую ветку обсуждения. -Также уточнены заголовки блоков: сверху история сообщений, отдельно текущее сообщение. - -## Что проверять -1. Открыть любой канал и перейти в тред сообщения. -2. Нажать `🧵 В тред` у одного из ответов. -3. Убедиться, что открывается тред выбранного ответа, а не исходного сообщения. -4. Проверить, что в новом треде сверху показывается блок истории (`История выше...`), затем блок `Текущее сообщение`, затем `Ответы`. -5. Проверить на мобильной ширине, что кнопки действий в карточке не ломают верстку. - -## Ожидаемый результат -- Переход в тред ответа работает стабильно для всех узлов дерева. -- Пользователь видит структуру треда в логичном порядке: предки → текущее сообщение → потомки. -- UI остаётся читаемым на мобильных экранах. diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_0112_короткая-ссылка-на-сообщение-m-блокчейн-номер.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_0112_короткая-ссылка-на-сообщение-m-блокчейн-номер.md deleted file mode 100644 index 73de89b..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_0112_короткая-ссылка-на-сообщение-m-блокчейн-номер.md +++ /dev/null @@ -1,19 +0,0 @@ -# Короткая ссылка на сообщение `#/m/{blockchainName}/{blockNumber}` - -Статус: `pending` - -## Краткое описание -Добавлен короткий роут сообщения `#/m/{blockchainName}/{blockNumber}` (поддерживает и вариант с hash). -Переходы в тред из канала и из треда теперь формируются через `#/m/...`, а не через длинный путь канала. - -## Что проверять -1. Открыть сообщение в канале и перейти в тред — адрес должен быть формата `#/m/...`. -2. Скопировать ссылку на тред сообщения и открыть в новой вкладке. -3. Для ответа (reply) нажать `🧵 В тред` и убедиться, что тред открывается без ошибок `BAD_FIELDS`/`Не удалось определить hash`. -4. Проверить шапку треда: UI должен попытаться восстановить красивый заголовок канала (`owner/channel`). -5. Проверить, что старый маршрут `#/channel-thread-view/...` тоже продолжает работать. - -## Ожидаемый результат -- Короткий роут работает стабильно для постов и ответов. -- Тред открывается даже если в URL нет hash (опциональный случай). -- Ошибка про невозможность определить hash для открытия треда не воспроизводится. diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1012_history-router-без-hash.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1012_history-router-без-hash.md deleted file mode 100644 index 10c9836..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1012_history-router-без-hash.md +++ /dev/null @@ -1,21 +0,0 @@ -# Переход на history-router без `#` в URL - -- Краткое описание: - - UI переведён с hash-router на history API роутинг. - - Ссылки на треды переведены в формат без hash сообщения: `/m/{blockchainName}/{blockNumber}`. - - Навигация и шаринг-ссылки обновлены под `pathname`. - -- Что проверять: - - Открытие UI с корня (`/`) и переход на стартовую страницу без тёмного экрана. - - Навигация между основными экранами (сообщения, каналы, профиль, настройки). - - Переход в канал, открытие треда, ответ/лайк, шаринг ссылки. - - Прямое открытие URL формата `/m/{blockchain}/{number}`. - - Поведение после refresh (F5) при настроенном серверном fallback на `index.html`. - -- Ожидаемый результат: - - Приложение работает без `#` в адресе. - - Треды открываются и действия по сообщению (reply/like/share) работают корректно. - - Нет зависания на пустом/тёмном экране при входе. - -- Статус: - - `pending` diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1359_карточка-автора-в-канале-и-назад-по-истории.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1359_карточка-автора-в-канале-и-назад-по-истории.md deleted file mode 100644 index 294cec8..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1359_карточка-автора-в-канале-и-назад-по-истории.md +++ /dev/null @@ -1,25 +0,0 @@ -# Карточка автора в сообщении канала и стрелка «назад» по истории - -- Краткое описание: - - В `channel-view` в карточке сообщения добавлена вложенная плитка автора (аватар, логин, номер сообщения, дата/время). - - Клик по плитке автора открывает профиль пользователя. - - Клик по области сообщения (вне плитки автора и вне action-кнопок) открывает тред, как кнопка `Тред`. - - Стрелка `назад` в `channel-view`, `channel-thread-view` и профиле переведена на реальную навигацию `history.back()`. - - Маршрут профиля переименован с `user-profile-view` на `user`. - -- Что проверять: - - В канале у каждого сообщения сверху есть вложенная плитка автора. - - Клик по вложенной плитке открывает профиль автора. - - Клик по тексту/телу сообщения открывает тред. - - Кнопки `Лайк`, `Ответить`, `Тред`, `Отправить` работают отдельно и не конфликтуют с кликом по карточке. - - Стрелка `назад` возвращает на предыдущий экран по реальной истории переходов. - - При отсутствии истории стрелка `назад` не делает переход. - - Переходы на профиль работают по новому маршруту `user/{login}/...`. - -- Ожидаемый результат: - - Навигация в каналах и тредах соответствует ожидаемому UX. - - Переходы в профиль и назад по истории работают стабильно. - - Старый маршрут `user-profile-view` больше не используется. - -- Статус: - - `pending` diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1428_шапка-канала-и-унификация-тред-карточек.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1428_шапка-канала-и-унификация-тред-карточек.md deleted file mode 100644 index da13232..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1428_шапка-канала-и-унификация-тред-карточек.md +++ /dev/null @@ -1,27 +0,0 @@ -# Шапка канала и унификация карточек в треде - -- Краткое описание: - - В `channel-view` убрана отдельная кнопка `О канале` из тела экрана. - - В шапке добавлена одна кнопка-лейбл формата `owner/channel` на уровне стрелки назад. - - Нажатие по кнопке `owner/channel` открывает тот же модал «О канале». - - В `channel-thread-view` карточки сообщений приведены к виду, аналогичному карточкам в канале: - - верхняя плитка автора (аватар, логин, номер, время), - - действия `Лайк`, `Ответить`, `Тред`, `Отправить`. - - Клик по телу карточки в треде теперь открывает вложенный (более глубокий) тред этого сообщения. - - Уменьшены отступы между карточками/блоками в треде. - -- Что проверять: - - В канале в шапке справа отображается единая кнопка `owner/channel`. - - Кнопка `owner/channel` открывает модал «О канале». - - Старой кнопки `О канале` в контенте экрана нет. - - В треде визуал карточек совпадает по паттерну с каналом. - - В треде клик по телу сообщения ведёт глубже в тред. - - Клик по плитке автора в треде ведёт в профиль пользователя. - - Межкарточные отступы в треде компактнее. - -- Ожидаемый результат: - - Шапка канала и карточки треда выглядят и работают единообразно. - - Навигация по вложенным тредам выполняется кликом по сообщению. - -- Статус: - - `pending` diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1506_поднятие-верхней-фиксированной-шапки-канал-и-тред.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1506_поднятие-верхней-фиксированной-шапки-канал-и-тред.md deleted file mode 100644 index e6dee12..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1506_поднятие-верхней-фиксированной-шапки-канал-и-тред.md +++ /dev/null @@ -1,18 +0,0 @@ -# Поднятие верхней фиксированной шапки (канал и тред) - -- Краткое описание: - - В `channel-view` и `channel-thread-view` верхняя фиксированная шапка (стрелка назад + центральная кнопка с названием) поднята выше к верхней границе экрана. - - Центральная кнопка и стрелка дополнительно подняты внутри шапки для более плотного позиционирования. - - Поведение hover/focus сохранено без визуального «прыжка» центральной кнопки. - -- Что проверять: - - В канале и в треде верхняя шапка визуально выше, чем до правки. - - Кнопка по центру и стрелка назад подняты и находятся на одной линии. - - При наведении курсора центральная кнопка не смещается. - - Шапка остаётся фиксированной при прокрутке. - -- Ожидаемый результат: - - Верхняя навигационная область выглядит компактнее и стабильнее. - -- Статус: - - `pending` diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1548_профиль-упрощение-и-чат-ux-меню-речи.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1548_профиль-упрощение-и-чат-ux-меню-речи.md deleted file mode 100644 index 105e068..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1548_профиль-упрощение-и-чат-ux-меню-речи.md +++ /dev/null @@ -1,26 +0,0 @@ -# Профиль: упрощение + чат: UX меню и голосовой ввод - -- Краткое описание: - - В `profile-view` убрана кнопка `Обновить` и статусная строка (`Профиль обновлён`/ошибки). - - Кнопка `Изменить профиль` переименована в `Редактировать профиль`. - - В личном чате обновлены UX-сценарии: - - контекстное меню на сообщении (`Копировать`, `Прочесть`) с закрытием кликом вне меню; - - тост `Сообщение скопированно` при копировании; - - обновлённый модал голосового ввода (`Отмена`, `OK`, `Распознать и сразу отправить сообщение`); - - фоновое распознавание и авто-отправка для сценария «сразу отправить»; - - для `OK` отображается режим ожидания распознавания с последующей вставкой текста в поле ввода. - -- Что проверять: - - На вкладке профиля отсутствуют кнопка `Обновить` и зелёный статус `Профиль обновлён`. - - Кнопка вверху профиля называется `Редактировать профиль`. - - В чате по клику на сообщение открывается компактное меню с двумя пунктами. - - Копирование текста сообщения работает и показывает короткий тост. - - Прочтение сообщения вслух запускается сразу. - - Голосовой ввод корректно работает в двух режимах: вставка текста и авто-отправка после распознавания. - -- Ожидаемый результат: - - Профиль выглядит чище, без лишних статусов и ручной перезагрузки. - - В личных сообщениях управление сообщениями и голосовым вводом работает стабильно и предсказуемо. - -- Статус: - - `pending` diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1613_dm-ctrl-enter-автоскролл-и-время-в-списке.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1613_dm-ctrl-enter-автоскролл-и-время-в-списке.md deleted file mode 100644 index 4c31463..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1613_dm-ctrl-enter-автоскролл-и-время-в-списке.md +++ /dev/null @@ -1,28 +0,0 @@ -# DM: Ctrl+Enter, автоскролл и время в списке - -- Статус: `pending` - -## Что сделано - -- Исправлено поведение ввода в чате: - - `Enter` отправляет сообщение; - - `Ctrl+Enter` добавляет перенос строки в поле ввода. -- В списке личных сообщений время последнего сообщения всегда отображается в правой колонке снизу. -- Бейдж непрочитанных сообщений (если есть) отображается над временем, не заменяя его. -- Обновлены стили карточки диалога для компактного и стабильного выравнивания. - -## Что проверять - -- В чате: - - нажать `Ctrl+Enter` в середине текста и убедиться, что вставляется новая строка; - - нажать `Enter` и убедиться, что сообщение отправляется. -- В списке диалогов: - - при `unread=0` справа снизу показывается время; - - при `unread>0` сверху бейдж, снизу всё равно показывается время; - - длинный текст последнего сообщения обрезается многоточием и не наезжает на время. - -## Ожидаемый результат - -- Управление вводом работает как в постановке. -- Время в карточке диалога не исчезает при наличии непрочитанных сообщений. -- Верстка карточки остаётся компактной и без сдвигов. diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1618_dm-список-и-поведение-enter-в-чате.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1618_dm-список-и-поведение-enter-в-чате.md deleted file mode 100644 index 71b50fe..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1618_dm-список-и-поведение-enter-в-чате.md +++ /dev/null @@ -1,24 +0,0 @@ -# Личные сообщения: правая мета-колонка и Enter/Ctrl+Enter - -- Краткое описание: - - В списке `Личные сообщения` обновлена правая колонка карточки диалога: - - сверху отображается бейдж количества непрочитанных (если есть); - - снизу маленьким шрифтом отображается дата/время последнего сообщения; - - если сообщений нет, вместо времени отображается `-`. - - В экране чата нижний блок ввода закреплён (sticky) и остаётся на месте при прокрутке. - - В поле ввода чата изменено поведение клавиш: - - `Enter` отправляет сообщение; - - `Ctrl+Enter` добавляет перенос строки и не отправляет сообщение. - -- Что проверять: - - В карточках диалогов справа корректно показываются непрочитанные/время/прочерк. - - В чате нижний блок ввода не уезжает при прокрутке истории. - - `Enter` отправляет сообщение из textarea. - - `Ctrl+Enter` вставляет новую строку в textarea. - -- Ожидаемый результат: - - Список диалогов показывает полезную мета-информацию в стабильном формате. - - Ввод сообщений в чате работает в привычной схеме Enter/многострочность. - -- Статус: - - `pending` diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1620_деплой-на-93.170.12.154-caddy-systemd.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1620_деплой-на-93.170.12.154-caddy-systemd.md deleted file mode 100644 index 35ddb94..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_1620_деплой-на-93.170.12.154-caddy-systemd.md +++ /dev/null @@ -1,33 +0,0 @@ -# Деплой на `93.170.12.154`: Caddy + systemd - -- Статус: `pending` - -## Что сделано - -- Выполнен деплой UI и серверной части на `player@93.170.12.154`. -- Создана структура: - - `/home/player/SHiNE/caddy` - - `/home/player/SHiNE/SHiNE-server` - - `/home/player/SHiNE/SHiNE-UI` -- Перенесены локальные данные: - - `data/shine.sqlite` - - `data/*.bch` -- Настроен `shine-server.service` через `systemd`. -- Настроен `Caddy`: - - no-cache заголовки; - - SPA fallback на `index.html`; - - проксирование `/ws` на `127.0.0.1:7070`. -- Добавлена документация в `Dev_Docs/deploy/` и файл по legacy-серверу `45.136.124.227`. - -## Что проверять - -- Открыть `https://shineup.me/start-view`. -- Обновить страницу (`Ctrl+F5`) на роуте вида `/start-view` и убедиться, что нет 404. -- Проверить авторизацию и базовые действия в UI. -- Проверить, что вебсокет соединение устанавливается. - -## Ожидаемый результат - -- UI и сервер доступны на новом хосте. -- Сервисы `shine-server` и `caddy` в статусе `active`. -- Маршруты SPA и no-cache работают как ожидается. diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_2032_редактирование-сообщений-история-и-delete-empty.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_2032_редактирование-сообщений-история-и-delete-empty.md deleted file mode 100644 index de66ae9..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_2032_редактирование-сообщений-история-и-delete-empty.md +++ /dev/null @@ -1,24 +0,0 @@ -# Редактирование сообщений: история и delete через пустой edit - -Статус: `pending` - -## Краткое описание -- Исправлено применение edit-блоков в чтении канала/треда (актуальный текст и версии). -- Для удаления сообщения используется edit с пустым `text` (`textLen=0`). -- В UI добавлена метка `изменено N`, по нажатию открывается история версий. -- Кнопка редактирования оставлена как иконка карандаша без текста. -- В модалке редактирования: сверху `Отмена` и `ОК`, снизу отдельная `Удалить`. - -## Что проверять -1. В канале отредактировать свой пост обычным текстом. -2. Убедиться, что текст сообщения сразу обновился и появилась метка `изменено 1`. -3. Нажать на метку `изменено 1` и проверить историю: сверху оригинал, ниже изменения, последнее внизу. -4. Нажать `Удалить` в модалке редактирования, убедиться, что сообщение отображается как `удалено`. -5. Повторно отредактировать удалённое сообщение непустым текстом и проверить, что текст снова отображается. -6. Повторить пп.1-5 в экране треда. -7. Проверить личный канал (пара A↔B), что edit и история корректно видны для сообщений владельца. - -## Ожидаемый результат -- Edit всегда влияет на отображаемый текст сообщения. -- История версий открывается из метки `изменено N` и содержит полный хронологический список версий. -- Удаление работает как edit с пустым текстом, без физического удаления блока. diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_2047_каналы-убрать-тред-две-вкладки-и-dm-автоскролл.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_2047_каналы-убрать-тред-две-вкладки-и-dm-автоскролл.md deleted file mode 100644 index 9058005..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_2047_каналы-убрать-тред-две-вкладки-и-dm-автоскролл.md +++ /dev/null @@ -1,23 +0,0 @@ -# Каналы: убрать кнопку тред, две вкладки, и автоскролл DM - -Статус: `pending` - -## Краткое описание -- В карточках сообщений канала и треда убрана кнопка `Тред` (`#`). -- В `channels-list` оставлены только две вкладки: `Каналы` и `Мои каналы` (вкладка `Чаты` удалена). -- Удалённые сообщения в канале и треде отображаются с красной пометкой `Сообщение удалено`. -- В личных сообщениях усилен автоскролл вниз: при открытии чата и после отправки нового сообщения. - -## Что проверять -1. Открыть канал, проверить, что в действиях сообщения нет кнопки `Тред`. -2. Открыть тред, проверить, что в действиях сообщения также нет кнопки `Тред`. -3. В списке каналов сверху проверить только 2 вкладки: `Каналы` и `Мои каналы`. -4. Удалить сообщение edit-ом в канале и в треде, убедиться, что видно красную пометку `Сообщение удалено`. -5. Открыть любой личный чат, убедиться, что экран сразу внизу ленты. -6. Отправить новое сообщение в личке, убедиться, что лента остаётся прокрученной вниз и сообщение видно сразу. - -## Ожидаемый результат -- Лишняя кнопка `Тред` отсутствует. -- Вкладка `Чаты` отсутствует, навигация в списке каналов состоит из 2 вкладок. -- Удалённые сообщения визуально выделены красным в канале и в треде. -- В DM нет ручной прокрутки после входа в чат и после отправки новых сообщений. diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_2113_аватары-в-каналах-тредах-и-лс.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_2113_аватары-в-каналах-тредах-и-лс.md deleted file mode 100644 index c839c8a..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-19_2113_аватары-в-каналах-тредах-и-лс.md +++ /dev/null @@ -1,15 +0,0 @@ -## Краткое описание -Добавлена отрисовка пользовательских аватаров (из профиля, Arweave) в карточках сообщений каналов, тредов и в списке личных сообщений. - -## Что проверять -1. В канале у сообщений вместо буквы показывается аватар автора (если в профиле задан). -2. В треде у сообщений вместо буквы показывается аватар автора (если в профиле задан). -3. В списке личных сообщений у диалогов показывается аватар собеседника (если в профиле задан). -4. Если аватар не задан или недоступен, корректно остаётся fallback (буква). -5. Форма и размер остаются круглыми и визуально не ломают карточки. - -## Ожидаемый результат -Аватары подгружаются автоматически после открытия экрана; при отсутствии аватара отображается стандартный fallback без ошибок UI. - -## Статус -`pending` diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-20_1134_connection-shine-known-codes.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-20_1134_connection-shine-known-codes.md deleted file mode 100644 index 3124883..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-20_1134_connection-shine-known-codes.md +++ /dev/null @@ -1,23 +0,0 @@ -## Краткое описание -Добавлены новые типы connection-связей в блокчейне и API: -- `known_person` (`60/61`) -- `shine_confirmed` (`70/71`) -- `shine_seen` (`74/75`) - -## Что проверять -1. `AddBlock` принимает новые `msg_sub_type` для `type=3`. -2. Связи корректно попадают в `connections_state`: - - ON создаёт/обновляет запись; - - OFF удаляет запись соответствующего ON-типа. -3. `GetUserConnectionsGraph` возвращает новые поля: - - `outKnownPersons`, `inKnownPersons` - - `outShineConfirmed`, `inShineConfirmed` - - `outShineSeen`, `inShineSeen` -4. Клиент `setUserRelation` принимает `kind`: - - `known_person`, `shine_confirmed`, `shine_seen`. - -## Ожидаемый результат -Новые связи работают как обычные ON/OFF relation-типы, но не ломают текущие friend/contact/follow и остальные существующие связи. - -## Статус -`pending` diff --git a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-20_1221_profile-opinion-ui-and-order.md b/Dev_Docs/Pending_Features/вроде сделанное/2026-05-20_1221_profile-opinion-ui-and-order.md deleted file mode 100644 index 9651779..0000000 --- a/Dev_Docs/Pending_Features/вроде сделанное/2026-05-20_1221_profile-opinion-ui-and-order.md +++ /dev/null @@ -1,25 +0,0 @@ -## Краткое описание -Перестроен блок связей в профиле чужого пользователя и добавлен UI для одностороннего "мнения" (`known_person` / `shine_confirmed` / `shine_seen`) с взаимным исключением на уровне UI. - -## Что проверять -1. Порядок базовых строк в профиле: - - Контакт - - Близкий друг - - Подписка -2. Под этими строками отображается блок мнений: - - при отсутствии мнения кнопка `Добавить связь`; - - при наличии мнения кнопка `Изменить связи`; - - показываются текстовые формулировки для активного мнения. -3. В модальном меню: - - варианты добавления (синие); - - `Убрать мнение` (красная). -4. При смене мнения отправляется последовательность: - - OFF старой связи, - - ON новой связи. -5. Для новых мнений показываются только исходящие (`out*`) оценки текущего пользователя (односторонняя логика). - -## Ожидаемый результат -Пользователь управляет одним активным мнением через UI, состояние читается корректно и не ломает существующие friend/contact/follow кнопки. - -## Статус -`pending` diff --git a/VERSION.properties b/VERSION.properties index 99ffef1..3453e07 100644 --- a/VERSION.properties +++ b/VERSION.properties @@ -1,2 +1,2 @@ -client.version=1.2.80 -server.version=1.2.74 +client.version=1.2.81 +server.version=1.2.75