Каналы: создавать профиль одним блоком

This commit is contained in:
AidarKC
2026-08-01 02:19:29 +04:00
parent 8125d1a124
commit 8303682bd7
11 changed files with 201 additions and 118 deletions
@@ -9,6 +9,23 @@ Payload включает:
4. `channelType` (`uint16`, 2 байта);
5. `channelTypeVersion` (`uint16`, 2 байта).
### `channelDescription`
`channelDescription` хранится как `uint16 length + UTF-8`, максимум `2048` байт.
Для публичных каналов (`channelType=1`) поле является начальным снимком профиля канала и использует тот же текстовый meta-формат, что `TEXT_CHANNEL_META`:
```text
<SHiNE:title;v=1;Название канала>
<SHiNE:avatar;v=1;size=248193;sha256=3f2c8a...;ar=AbCdEf...>
Описание канала.
```
Если `title` отсутствует, человекочитаемым именем считается техническое `channelName`.
Если `avatar` отсутствует, канал создаётся без аватара.
Новые UI-клиенты создают публичный канал одним блоком `TECH_CREATE_CHANNEL`; отдельный `TEXT_CHANNEL_META` при создании не пишется. `TEXT_CHANNEL_META` используется для последующих изменений профиля канала.
## 2. Типы каналов
- `0``stories` (root-канал пользователя).
- `1` — публичный канал.
+4 -2
View File
@@ -1,6 +1,6 @@
# TEXT_CHANNEL_META: профиль канала
`TEXT_CHANNEL_META` — скрытый технический `TEXT`-блок для полного снимка профиля канала.
`TEXT_CHANNEL_META` — скрытый технический `TEXT`-блок для полного снимка профиля канала после создания.
## Блок
@@ -11,6 +11,8 @@
Блок пишется только в линию канала владельца. В обычной ленте сообщений он не отображается как пользовательский пост.
Первый снимок профиля публичного канала хранится прямо в `TECH_CREATE_CHANNEL.channelDescription` тем же текстовым форматом. Отдельный `TEXT_CHANNEL_META` при создании нового публичного канала UI не пишет.
## Текстовый формат
В начале текста могут идти технические теги, после них обычный текст описания:
@@ -48,7 +50,7 @@
## UI
- При создании канала UI может сразу после `TECH_CREATE_CHANNEL` записать первый `TEXT_CHANNEL_META` с человекочитаемым именем, аватаром и описанием.
- При создании публичного канала UI записывает человекочитаемое имя, аватар и описание в `TECH_CREATE_CHANNEL.channelDescription`.
- При создании канала UI показывает системную карточку `Создан канал ...`.
- При записи `TEXT_CHANNEL_META` UI показывает системную карточку `Изменён профиль канала`.
- У системных карточек нет лайка, ответа, репоста, редактирования и других действий обычного сообщения.
+7
View File
@@ -121,6 +121,13 @@
- Команда `/.desc` удалена из актуальной модели изменения описания канала; профиль канала меняется только через `TEXT_CHANNEL_META`.
- API чтения каналов расширен полями `displayName`, `avaAr`, `avaSha256`, `avaSize`, `metaUpdatedAtMs` и списком `metaEvents`.
## 2026-08-01 02:18:00 +0400
- Базовый коммит-ориентир: `8125d1a`.
- Увеличен лимит `CreateChannelBody.channelDescription` до `2048` UTF-8 байт.
- Для публичных каналов начальный профиль канала теперь хранится прямо в `TECH_CREATE_CHANNEL.channelDescription` тем же meta-форматом, что `TEXT_CHANNEL_META`.
- UI создания публичного канала больше не пишет отдельный `TEXT_CHANNEL_META` сразу после создания; отдельный meta-блок используется только для последующих изменений профиля.
- Bootstrap `channel_names_state` при старте сервера теперь применяет последующие `TEXT_CHANNEL_META` поверх начального профиля из `TECH_CREATE_CHANNEL`.
## 2026-07-31 17:40:31 +0400
- Базовый коммит-ориентир: `d640dd6`.
- Формат блокчейна не менялся.