Добавлен серверный канал MAX для уведомлений пациента с сайта: подключение одноразовой ссылкой, подтверждение завершённых тестов и нейтральные напоминания с кнопкой в личный кабинет. Webhook сохраняет события до ответа MAX, worker доставляет из постоянной очереди с повторами и повторной проверкой согласия. /stop и остановка бота отключают привязку и отменяют ожидающие уведомления.
Токены, ответы на тесты, оценки, диагнозы и медицинский текст в сообщения MAX не попадают. Входящие сообщения не передаются в LLM.
A. Серверные зависимости #84 и #86 уже объединены. Защита диагностики настроек — отдельный contract MR по #87. Интерфейс сайта не изменяется.
Подключение будущим владельцем
Инструкция: app/channels/MAX_SETUP.md. Владелец создаёт бота, администратор заполняет MAX_* и HTTPS-адреса, затем выполняет check → включает MAX_ENABLED → subscribe → status → пробную привязку. По умолчанию MAX выключен; бот и токен сейчас не создавались, реальная доставка не проверялась.
Как проверить
make lint test: 1030 passed, 1 skipped. Проверены полный серверный сценарий подключения/отключения, обе модели завершённых тестов, дедупликация webhook, фильтрация групп/ботов, нейтральное содержимое сообщений, отзыв согласия, очередь и 429, HTTP-контракт MAX, команды настройки и жизненный цикл.
Ограничения
До выдачи токена и публичного HTTPS возможны только автономные проверки с подменённым транспортом. Один API-процесс с MAX на токен; при падении между отправкой в MAX и подтверждением в БД возможен повтор сообщения.
Чек-лист
rebase на актуальную серверную основу
make lint + make test зелёные
Лог в issue
Синтетические данные, секреты в окружении
Общие файлы изменены отдельными contract MR
## Что меняется
Добавлен серверный канал MAX для уведомлений пациента с сайта: подключение одноразовой ссылкой, подтверждение завершённых тестов и нейтральные напоминания с кнопкой в личный кабинет. Webhook сохраняет события до ответа MAX, worker доставляет из постоянной очереди с повторами и повторной проверкой согласия. /stop и остановка бота отключают привязку и отменяют ожидающие уведомления.
Токены, ответы на тесты, оценки, диагнозы и медицинский текст в сообщения MAX не попадают. Входящие сообщения не передаются в LLM.
Closes #83
## Зона
A. Серверные зависимости #84 и #86 уже объединены. Защита диагностики настроек — отдельный contract MR по #87. Интерфейс сайта не изменяется.
## Подключение будущим владельцем
Инструкция: app/channels/MAX_SETUP.md. Владелец создаёт бота, администратор заполняет MAX_* и HTTPS-адреса, затем выполняет check → включает MAX_ENABLED → subscribe → status → пробную привязку. По умолчанию MAX выключен; бот и токен сейчас не создавались, реальная доставка не проверялась.
## Как проверить
make lint test: 1030 passed, 1 skipped. Проверены полный серверный сценарий подключения/отключения, обе модели завершённых тестов, дедупликация webhook, фильтрация групп/ботов, нейтральное содержимое сообщений, отзыв согласия, очередь и 429, HTTP-контракт MAX, команды настройки и жизненный цикл.
## Ограничения
До выдачи токена и публичного HTTPS возможны только автономные проверки с подменённым транспортом. Один API-процесс с MAX на токен; при падении между отправкой в MAX и подтверждением в БД возможен повтор сообщения.
## Чек-лист
- [x] rebase на актуальную серверную основу
- [x] make lint + make test зелёные
- [x] Лог в issue
- [x] Синтетические данные, секреты в окружении
- [x] Общие файлы изменены отдельными contract MR
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Что меняется
Добавлен серверный канал MAX для уведомлений пациента с сайта: подключение одноразовой ссылкой, подтверждение завершённых тестов и нейтральные напоминания с кнопкой в личный кабинет. Webhook сохраняет события до ответа MAX, worker доставляет из постоянной очереди с повторами и повторной проверкой согласия. /stop и остановка бота отключают привязку и отменяют ожидающие уведомления.
Токены, ответы на тесты, оценки, диагнозы и медицинский текст в сообщения MAX не попадают. Входящие сообщения не передаются в LLM.
Closes #83
Зона
A. Серверные зависимости #84 и #86 уже объединены. Защита диагностики настроек — отдельный contract MR по #87. Интерфейс сайта не изменяется.
Подключение будущим владельцем
Инструкция: app/channels/MAX_SETUP.md. Владелец создаёт бота, администратор заполняет MAX_* и HTTPS-адреса, затем выполняет check → включает MAX_ENABLED → subscribe → status → пробную привязку. По умолчанию MAX выключен; бот и токен сейчас не создавались, реальная доставка не проверялась.
Как проверить
make lint test: 1030 passed, 1 skipped. Проверены полный серверный сценарий подключения/отключения, обе модели завершённых тестов, дедупликация webhook, фильтрация групп/ботов, нейтральное содержимое сообщений, отзыв согласия, очередь и 429, HTTP-контракт MAX, команды настройки и жизненный цикл.
Ограничения
До выдачи токена и публичного HTTPS возможны только автономные проверки с подменённым транспортом. Один API-процесс с MAX на токен; при падении между отправкой в MAX и подтверждением в БД возможен повтор сообщения.
Чек-лист