diff --git a/.env.example b/.env.example index 92681ce..5f49dcc 100644 --- a/.env.example +++ b/.env.example @@ -128,7 +128,7 @@ SMTP_TIMEOUT_S=30 # --- Версия инстанса (релиз v0.0.1) --- # install.sh копирует значение из корневого файла VERSION при каждой # установке/обновлении — руками менять не нужно. -VIDCONF_VERSION=0.0.32 +VIDCONF_VERSION=0.0.33 # --- Профили compose. Дефолт ниже (`media,monitoring`) — только для ручного # `docker compose up` БЕЗ install.sh: медиа (LiveKit+coturn) + мониторинг, diff --git a/CHANGELOG.md b/CHANGELOG.md index c692202..bac4868 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,40 @@ Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.1.0/), проект придерживается [семантического версионирования](https://semver.org/lang/ru/). +## [0.0.33] — 2026-08-09 + +Проверка устройств на входе — отключаемый модуль (по умолчанию выключен). +Раньше при первом включении микрофона/камеры уже внутри конференции у +участника всплывал системный диалог разрешения браузера; теперь его можно +пройти заранее, на странице логина и в карточке «Как вас зовут?» при +гостевом входе, вместе с живым превью камеры. + +### Добавлено +- Запрос доступа к камере и микрофону на `LoginPage` и в карточке + гостевого входа `JoinPage` — привязан к первому жесту на карточке + (клик/тап/клавиша), не спрашивается повторно, если браузер уже помнит + разрешение (`navigator.permissions`, с фолбэком на жест там, где API + недоступен, например в Safari). Камера и микрофон запрашиваются + независимо — отказ в одном не блокирует другой. +- Живое зеркальное превью камеры на `JoinPage` (карточка «Как вас + зовут?») с кнопками-пиктограммами «микрофон»/«камера»: реально + останавливают и перезапускают поток, а не просто прячут картинку. + На `JoinPage` кнопки определяют, с чем гость войдёт в конференцию + (передаётся в `RoomPage`); на `LoginPage` — только пре-авторизация + разрешения без интерфейса (страница ведёт в лобби, а не в конкретную + конференцию, применить выбор там негде). +- Публичный `GET /api/v1/public/settings` — флаг модуля, нужный обеим + страницам до аутентификации. +- Тумблер «Проверка устройств на входе» в админке (Настройки → Модули). + +### Изменено +- Отказ в доступе не блокирует ни вход в систему, ни в конференцию — + показывается понятная подсказка, дальше можно идти как раньше. +- Камера гарантированно освобождается при уходе с карточки, сабмите + формы, размонтировании и любой ошибке — включая явный `release()` + перед переходом в комнату, чтобы устройство не досталось LiveKit + «занятым». + ## [0.0.32] — 2026-08-09 Метрики состояния БД и пулов соединений + алерты в Prometheus — по решению diff --git a/VERSION b/VERSION index f9d08f8..2b80db2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.32 \ No newline at end of file +0.0.33 \ No newline at end of file diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml index 992fbdd..a27bf25 100644 --- a/deploy/docker-compose.yml +++ b/deploy/docker-compose.yml @@ -89,7 +89,7 @@ services: MEDIA_ROOT: ${MEDIA_ROOT:-/app/media} # Версия инстанса (релиз v0.0.1) — install.sh копирует значение # из файла VERSION (корень репозитория) в .env; отдаётся в GET /api/health. - VIDCONF_VERSION: ${VIDCONF_VERSION:-0.0.32} + VIDCONF_VERSION: ${VIDCONF_VERSION:-0.0.33} # Число процессов uvicorn (см. backend/Dockerfile). Дефолт 2 рассчитан # на 4-ядерный сервер, где ядра делятся с LiveKit. Поднимая значение, # проверьте бюджет соединений с БД: каждый воркер держит свой пул