DNS прицепился. app.panicmath.academy + api.panicmath.academy отвечают 200, HTTPS от Let's Encrypt, миграции накатаны, Umami пишет. На сегодня (15 мая) добавлено: словацкий и польский, AI-наставник отвечает на языке ученика, регистрация по email с 6-значным кодом.
Три параллельных большие фичи поверх вчерашней раскатки.
UI олимпиады переведён на русский, английский, узбекский, словацкий и польский. Канонические имена из локальных изданий Перси Джексона (Daidalos / Dedal, Ariadné / Ariadna). Переключатель в шапке, выбор хранится в браузере. Нарратив, инвентарь, таймер, правила — всё на 5 языков.
Приёмщик задач (Зал Дедала / Ариадны) и ассистент учителя отвечают на том языке, что выбран в шапке — даже если условие задачи написано по-русски. Прокидываем Accept-Language от фронта через очередь до воркера; педагогические промпты переведены, в системный промпт добавлена директива «отвечай на X».
На app.panicmath.academy теперь модалка «Войти / Регистрация», 2 шага: форма (имя, email, логин, пароль) → 6-значный код в инбоксе → автоматический вход в Лабиринт. Письмо в тёмной panicmath-стилистике, локализовано под язык пользователя, контекст «олимпиада 17 мая 10:00 UTC», CTA-кнопка обратно в Лабиринт.
Базовая раскатка олимпиады на прод. Каждая фича — отдельный кусок.
Тёмная palette (#0e0d0a + золото #f5c344), нарратив «Перси Джексон в Лабиринте» от Дмитрия Фадина, 24 артефакта (Прощение + Время), брендовый таймер. Отдельный визуальный язык — не путается с основной платформой.
Параллельный API под олимпу. Делит с основным NLogN только базу (с накатанной обратимой дельтой). Свой Redis, свои очереди, свой деплой. Если что-то взорвётся — прод-курсы продолжат работать.
Браузер просит доступ к камере, короткая калибровка, дальше фоном пишется видео и считается доверие. Подмена лица, выход из кадра, второй человек — всё попадает в отчёт. Без отдельной программы, прямо в браузере.
Каждое значимое событие (зашёл в зал, решил задачу, нашёл ключ, закончил) пишется в append-only журнал. Сверху Umami на pulse.marshub.uz — на 15 мая 18:00 UTC: 9 visitors / 12 sessions / 73s avg. Поверх потом можно крутить любые отчёты.
Коралл — новые ресурсы, зелёная полоска — общее с продом, без полоски — прод как был.
Что под капотом.
Baseline прод-БД на момент деплоя + параметры самой олимпы.
Зелёное — готово. Жёлтое — на завтра / 17 мая.
nlogn-2026 + 8 задач + 5 тест-юзеров (olymp_test_1..5)panicmath.academy прицепленUPDATE Olympiads SET startsAt='...'is_public на Postgres (BUG-014)Документированы в docs/bugs.md.
OlympiadParticipations без UNIQUE — дубликаты в race, service и worker писали в разные строки → 0 баллов. Фикс — композитные UNIQUE индексы.allowedFileTypes в minio.config.ts не включает video/webm. Сейчас пофикшено env-override'ом в Olymp-Api — но в коде стоит починить через PR в main.is_public=true на порту 5446. Закрыть после события одной curl-командой через Coolify API.Всё в ветке olymp. Следующий дев разберётся без меня.