Журнал изменений
Что нового.
Каждое усовершенствование платформы, как только она появится.
· kamo-shared-library
Добавить 7 прав доступа к модулю (ID 112-118)
ACCESS COMMERCE, VIEW CALENDAR, ACCESS CHAT, ACCESS MAIL ACCESS VOIP, VIEW SUPPORT, VIEW ANALYTICS
· SecurityService
Pass human-readable expiry time to email verification template
Add humanizeMinutes() helper that formats minutes as days/hours/minutes (e.g. "1 day" for 1440 min). Pass as {{expiryText}} to match updated canonical template variable.
· kamo-shared-library
Улучшить шаблон проверки электронной почты — обратный URL, текст истечения срока действия, тема
Добавить ссылку проверки простого текста ниже кнопки в качестве резервного копирования - Переключить переменную истечения срока действия с {{expiryMinutes}} на {{expiryText}} для считываемый человеком формат (например, "1 день" вместо "1440 минут") Обновление с темой «Проверить электронную почту, связанную с вашей учетной записью {{orgName}}»
· kamo-internal
Сериализация полного HTML электронной почты с внешним фреймом на сохранение шаблона
- serializeFullEmailHtml заворачивает внутренние блоки в фирменный внешний кадр (Логотип заголовка, название/подзаголовок, область контента, логотип футера + название организации) Использование абсолютных URL-адресов, чтобы клиенты электронной почты могли получать изображения - Настройки внешнего кадра (варианты логотипа, заголовок, подзаголовок) сохраняются bodyBlocks.outerFrame и восстановленные в шаблоне нагрузки - handleSave теперь использует сериализованныйFullEmailHtml, поэтому отправленные электронные письма соответствуют Разработчик Preview
· SecurityService
Add code-based email verification path to /verify-email endpoint
The endpoint now handles both token (link click) and userId+code (manual 6-digit entry). Token path unchanged; code path hashes the supplied code and matches against the active token for that userId.
· KlusterServices
Add weekly image prune and journal vacuum CronJob for k1m1
CronJob runs every Sunday 3am, privileged, pinned to k1m1. - crictl rmi --prune removes unused container images - nsenter journal vacuum enforces 500MB cap - CI/CD step added to deploy-services workflow
· KlusterServices
Add Docs deploy step to workflow
· kamo-register
Требовать *** на странице проверки перед каждой попыткой проверки / отправки
*** перезагружается после каждого действия (успеха или неудачи) таким образом, решение требуется для каждой последующей попытки.
· kamo-register
Переименовать /отправить страницу проверки в /верификация
· kamo-register
Добавить /resend-верификация страницы для переадресации входа
Создает автономный маршрут проверки /resend, который принимает электронную почту и ?userId запрос парам, повторное использование PostCompletionScreen для последовательного Проверка электронной почты UX. делает RegisterResponse.alias необязательным Страница работает без регистрационного псевдонима.
· kamo-register
Redesign email verification screen + fix resend email bug
PostCompletionScreen: полностраничный макет с анимированным фоном, карта стекломорфизма, логотип, визуальные 6-значные кодовые коробки, успех / проверенные состояния - resendVerification: передайте электронное письмо в орган запроса (backend требует этого)
· kamo-register
Сопоставление камо-внутреннего хранилища аватаров — 3 размера, MinIO, отдельный шаг загрузки
Диалог на полях теперь производит три капли PNG (50/150/350px) через холст, идентичный Аватар Менеджер Камо-интернала. После регистрации возвращает userId, blobs ****************************************** (новая неаутентифицированная конечная точка) Охраняется по электронной почте Verified=false. AvatarUrl больше не отправляется на регистрацию Тело Джона. Сбой загрузки Avatar не является фатальным, поэтому регистрация все еще завершается.
· SecurityService
Add register-photo endpoint for unauthenticated post-registration avatar upload
POST **************** accepts userId + file/fileSm/fileMd/fileLg without a session. Guards: user must be unverified and have no avatar yet, preventing abuse against existing accounts. Stores files to MinIO with the same path structure and sized variants as the authenticated /avatars/photo endpoint.
· kamo-login
Заменить ошибку EMAIL NOT VERIFIED на карту проверки
Когда логин выходит из строя с EMAIL NOT VERIFIED, карта входа заменяется на Полированный экран «Проверь свой почтовый ящик»: анимированный конверт SVG с открывающимся лоскутом и Плавающие искры, маскированный дисплей электронной почты, кнопка пересылки электронной почты с 30-секундной кнопкой Кольцо обратного отсчета SVG, оповещения об успехах/ошибках/ограничениях скорости и "Назад к Введите ссылку. Все переходы используют AnimatePresence с масштабированием+fade. - app/api/login/route.ts: передайте все поля ошибок бэкэнда (а не только сообщения) Пользователь достигает клиента ************* Новый прокси-сервер **************************** - app/page.tsx: EmailVerify Компонент карты, emailVerifyState / resendLoading / resendCooldown / resendStatus state, resendVerification callback, 30-секундный Охлаждение с помощьюEffect, EMAIL NOT VERIFIED обнаружения в исполненииLogin
· kamo-register
Расширение загрузки фотографий для поддержки форматов AVIF и SVG
Добавляет изображение/avif и изображение/svg+xml в список приемлемых файлов и Валидационный регекс. Обновляет метку подсказки, чтобы перечислить все шесть форматов. Камо-внутренний уже принимает изображение, поэтому никаких изменений там не требуется.
· kamo-register
Добавить редактор фотографий с легкой реакцией на загрузку регистрации
Зеркала PhotoCropDialog от AvatarManager: Диалог культур открывается сразу после выбора файла - сковорода путем перетаскивания, масштабирования с помощью прокрутки или слайдера (1-5×) - пунктирный круговой накладной гид показывает обрезанную область - холст производит 400×400 PNG, хранящийся в виде base64 avatarUrl - кнопка повторного сканирования в предварительном просмотре позволяет пользователю настраиваться после сохранения
· kamo-register
Добавить /api/geoip маршрут и провод страны авто-обнаружение
Прокси-клиент IP для поиска SecurityService GeoLite2 затем устанавливает Страна, обнаруженная в FormMyCountry, автоматически загружается на страницу.
· SecurityService
Add GET /api/security/geoip/me for client IP country lookup
Reads real client IP from X-Forwarded-For / X-Real-IP headers, does a GeoLite2 lookup, and returns { country_code, country_name }. Used by kamo-register's country auto-detection step.
· kamo-register
Заменить h*** строкой камо-капча-виджета в конце шага
· kamo-register
Добавить /api/capcha/challenge
· kamo-register
Добавить поставщика камо-капча-виджета, удалить h*** пакеты
· kamo-register
Рефактор регистра SP6 — разделите PersonalInfo, добавьте реальный API регистрации
- Заменить FormPersonalInfo на FormName (именные поля) и FormAvatar (генератор Avatar Creator с режимами генерации/загрузки/пропуска для 13+) Удалить FormRecoveryEnforcement (поля восстановления удалены из потока) - Refactor FormPassportID для макета с двумя полями: псевдоним всегда отображается, электронная почта только для 13+; обратные вызовы заменяют глобальное окно - Добавить registerApi.ts с типом **************** Добавить PostCompletionScreen для ввода кода проверки электронной почты и перенаправления SIGNED IN - Refactor RegisterFlow: динамический список шагов на основе shouldIncludeAgeCheck и isUser13Plus, замена ручки***Submit stub реальным вызовом API, рендер PostCompletionScreen на успех
· InitializerService
SP5 migrate KamoCRM agereq to ALL_WORK_ELIGIBLE
Add KamoCRMAgeReqUpdateRunner (order 10) — conditional idempotent UPDATE on startup; WHERE clause checks old value so re-runs are no-ops. Errors are swallowed so startup is not blocked. Update DataLoader to seed ALL_WORK_ELIGIBLE on fresh installs.
· SecurityService
Implement SP4 email verification and registration wiring
- Delete legacy email/VerificationEmail.java (hardcoded SMTP stub) - Add **************** (mirrors recovery package pattern) - Add **************** — token generation/SHA-256 hashing, send/verify/resend flows backed by **************** - Add **************** — alias+email uniqueness checks, User creation, triggers verification email on register - SecurityController: wire RegistrationService into /register endpoint, add EMAIL_NOT_VERIFIED (403) gate on login, add POST /verify-email and POST /register/resend-verification endpoints - Bump kamo-shared-library to 1.4.0
· kamo-shared-library
Добавить EmailVerification Субъект токенов + repo + User.alias/emailVerified + запросы UserRepo; бамп 1.4.0 (SP4)
· InitializerService
Add SP4 email_verification_tokens DDL + User alias/email_verified columns
· kamo-marketing
Добавить отказ от товарного знака в нижний юридический текст
· kamo-internal
Добавить страницы настроек учетной записи для телефона + вопросы безопасности (SP3)
Добавляет **************** с API-проводкой Служба безопасности /api/account/*. Синхронизация nav во всех 3 местах.
· kamo-login
Проводите реальные вызовы API на страницу восстановления (SP3)
Заменяет все поддельные заглушки с помощью вызовов RecoveryApi. Добавить SMS OTP проверка фазы, ввод семенной электронной почты, шаг нового пароля и посадка токена ?token = URL param.
· kamo-login
Добавить /api / восстановить прокси + RecoveryApi клиент (SP3)

Ваша вселенная ждет.
Начните бесплатно через несколько минут. Добавляйте продукты, когда будете готовы — без миграции, без новых логинов.
Бесплатно навсегда — не требуется кредитная карта