Добавил гостевой режим, единые shine-ссылки и пометку о нестабильности мнений

This commit is contained in:
AidarKC
2026-05-20 16:14:59 +03:00
parent aa35d87885
commit 21413268f3
46 changed files with 1125 additions and 310 deletions
@@ -0,0 +1,15 @@
## Краткое описание
Добавлена отрисовка пользовательских аватаров (из профиля, Arweave) в карточках сообщений каналов, тредов и в списке личных сообщений.
## Что проверять
1. В канале у сообщений вместо буквы показывается аватар автора (если в профиле задан).
2. В треде у сообщений вместо буквы показывается аватар автора (если в профиле задан).
3. В списке личных сообщений у диалогов показывается аватар собеседника (если в профиле задан).
4. Если аватар не задан или недоступен, корректно остаётся fallback (буква).
5. Форма и размер остаются круглыми и визуально не ломают карточки.
## Ожидаемый результат
Аватары подгружаются автоматически после открытия экрана; при отсутствии аватара отображается стандартный fallback без ошибок UI.
## Статус
`pending`
@@ -0,0 +1,42 @@
# TODO: доработка персональных сообщений для агентов
Статус: отложено.
## Что хотели сделать
Добавить упрощённую маршрутизацию персональных сообщений через служебную инструкцию в начале текстового payload (внутри подписанного DM-блока), чтобы:
- отличать сообщения человеку от сообщений агенту;
- отличать сообщения от человека и от агента;
- скрывать в обычном UI сообщения, адресованные агенту (`target=agent`);
- поддержать сценарий «сообщения самому себе между своими клиентами/устройствами», где один клиент/агент пишет другому в рамках одного логина.
## Базовая идея формата (черновик)
Пример префикса:
```text
@shine:pm:v1 {"target":"agent","agentId":"assistant","author":"human"}
Текст сообщения...
```
Пример ответа агента:
```text
@shine:pm:v1 {"target":"user","author":"agent","agentId":"assistant","agentLabel":"My Bot"}
Ответ агента...
```
## Почему отложено
- нужно отдельно согласовать финальный формат инструкции;
- нужно определить строгие правила UI-фильтрации и fallback;
- нужно определить, нужен ли позднее отдельный серверный роутинг для agent-сессий.
## Что сделать при возвращении к задаче
1. Зафиксировать окончательный формат префикса и JSON-полей.
2. Описать правила парсинга/валидации (включая битые/неполные префиксы).
3. Добавить UI-логику показа/скрытия agent-сообщений.
4. Добавить маркировку «ответ агента» в диалоге.
5. Продумать режим self-chat (между своими клиентами/агентом) в рамках одного логина.
+2 -2
View File
@@ -4,9 +4,9 @@
## Базовый сервер
- SSH: `player@93.170.12.154`
- SSH: `player@45.136.124.227`
- Домен: `shineup.me`
- Базовый путь: `/home/player/SHiNE`
- Базовый путь: `/home/player`
## Локальные команды
@@ -1,7 +1,23 @@
# Сервер `45.136.124.227` (legacy)
# Сервер `45.136.124.227` (`shineup.me`) — основной
- Исторический сервер SHiNE: `player@45.136.124.227`.
- Ранее на нём выполнялся рабочий деплой.
- Текущий статус (по данным пользователя): сервер недоступен, проблема на стороне провайдера, ответа нет второй день.
- Пользователь: `player`
- Базовый путь: `/home/player`
- Каталог SHiNE: `/home/player/SHiNE`
- UI публикация: `/home/player/SHiNE/shine-ui`
- Сервер: `/home/player/SHiNE/shine-server/shine-server.jar`
- Данные: `/home/player/SHiNE/shine-server/data/`
- Логи сервера: `/home/player/SHiNE/shine-server/logs/app.log`
Использовать для текущих деплоев новый сервер: `player@93.170.12.154` (`shineup.me`).
## Сервисы
- `shine-server.service` (systemd)
- `caddy.service` (systemd)
## Caddy
- Активный конфиг (через systemd `ExecStart`): `/home/player/SHiNE/caddy/Caddyfile`
- Для UI:
- `root * /home/player/SHiNE/shine-ui`
- `try_files {path} /index.html` (SPA fallback)
- no-cache заголовки
- `reverse_proxy /ws* -> 127.0.0.1:7070`
@@ -1,4 +1,4 @@
# Сервер `93.170.12.154` (`shineup.me`)
# Сервер `93.170.12.154` — резервный
- Пользователь: `player`
- Каталог SHiNE: `/home/player/SHiNE`
@@ -15,6 +15,11 @@
- `shine-server.service` (systemd)
- `caddy.service` (systemd)
## Статус
- Резервный сервер для SHiNE.
- Основной прод-сервер: `45.136.124.227` (`shineup.me`).
## Caddy
- Конфиг: `/etc/caddy/Caddyfile`