Nenda kwenye maudhui
KAMOUniverse

Mabadiliko

Nini kipya.

Kila kuboresha jukwaa, kama ni meli.

  1. · kamo-shared-library

    Add 7 module-access rights (IDs 112-118)

    ACCESS_COMMERCE, VIEW_CALENDAR, ACCESS_CHAT, ACCESS_MAIL, ACCESS_VOIP, VIEW_SUPPORT, VIEW_ANALYTICS

  2. · 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.

  3. · kamo-shared-library

    Improve email verification template — URL fallback, expiry text, subject

    - Add plain-text verification link below button as copy-paste fallback - Switch expiry variable from {{expiryMinutes}} to {{expiryText}} for human-readable format (e.g. "1 day" instead of "1440 minutes") - Update subject to "Verify the email associated with your {{orgName}} account"

  4. · kamo-internal

    Serialize full email HTML with outer frame on template save

    - serializeFullEmailHtml wraps inner blocks in the branded outer frame (header logo, title/subtitle, content area, footer logo + org name) using absolute URLs so email clients can fetch the images - Outer frame settings (logo options, title, subtitle) are saved to bodyBlocks.outerFrame and restored on template load - handleSave now uses serializeFullEmailHtml so sent emails match the builder preview

  5. · 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.

  6. · 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

  7. · KlusterServices

    Add Docs deploy step to workflow

  8. · kamo-register

    Require *** on verification page before each verify/resend attempt

    *** is reset after every action (success or failure) so a fresh solve is required for each subsequent attempt.

  9. · kamo-register

    Rename /resend-verification page to /verification

  10. · kamo-register

    Add /resend-verification page for login redirects

    Creates a standalone /resend-verification route that accepts ?email and ?userId query params, reusing PostCompletionScreen for a consistent email verification UX. Makes RegisterResponse.alias optional so the page works without a registration alias available.

  11. · kamo-register

    Redesign email verification screen + fix resend email bug

    - PostCompletionScreen: full-page layout with animated org background, glassmorphism card, logo, visual 6-digit code boxes, success/verified states - resendVerification: pass email in request body (backend requires it)

  12. · kamo-register

    Match kamo-internal avatar storage — 3 sizes, MinIO, separate upload step

    Crop dialog now produces three PNG blobs (50/150/350px) via canvas, identical to kamo-internal's AvatarManager. After registration returns userId, the blobs are POSTed to **************** (new unauthenticated endpoint guarded by emailVerified=false). avatarUrl is no longer sent in the registration JSON body. Avatar upload failure is non-fatal so registration still completes.

  13. · 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.

  14. · kamo-login

    Replace EMAIL_NOT_VERIFIED error with rich verification card

    When login fails with EMAIL_NOT_VERIFIED the login card is now replaced by a polished "Check your inbox" screen: animated envelope SVG with opening flap and floating sparkles, masked email display, resend-email button with a 30-second SVG countdown ring, success/error/rate-limit feedback alerts, and a "Back to sign in" link. All transitions use AnimatePresence with scale+fade. - app/api/login/route.ts: pass all backend error fields (not just message) so userId reaches the client - **************** new proxy to SecurityService **************** - app/page.tsx: EmailVerifyCard component, emailVerifyState / resendLoading / resendCooldown / resendStatus state, resendVerification callback, 30-second cooldown useEffect, EMAIL_NOT_VERIFIED detection in performLogin

  15. · kamo-register

    Extend photo upload to support AVIF and SVG formats

    Adds image/avif and image/svg+xml to the file input accept list and validation regex. Updates the hint label to list all six formats. kamo-internal already accepts image/* so no changes needed there.

  16. · kamo-register

    Add react-easy-crop photo editor to registration upload step

    Mirrors the PhotoCropDialog from kamo-internal's AvatarManager: - crop dialog opens immediately after file selection - pan by dragging, zoom via scroll or slider (1–5×) - dashed circular overlay guide shows the cropped area - canvas produces a 400×400 PNG stored as base64 avatarUrl - re-crop button on the preview lets user adjust after saving

  17. · kamo-register

    Add /api/geoip route and wire country auto-detection

    Proxies client IP to SecurityService GeoLite2 lookup, then sets the detected country in FormMyCountry automatically on page load.

  18. · 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.

  19. · kamo-register

    Replace h*** with kamo-capcha-widget inline in Finish step

  20. · kamo-register

    Add /api/capcha/challenge proxy route

  21. · kamo-register

    Add kamo-capcha-widget vendor, remove h*** packages

  22. · kamo-register

    SP6 register wizard refactor — split PersonalInfo, add real registration API

    - Replace FormPersonalInfo with FormName (name fields) and FormAvatar (Avatar Creator generator with generate/upload/skip modes for 13+) - Delete FormRecoveryEnforcement (recovery fields removed from flow) - Refactor FormPassportID to dual-field layout: alias always shown, email only for 13+; callbacks replace window global - Add registerApi.ts with typed **************** - Add PostCompletionScreen for email verification code entry and SIGNED_IN redirect - Refactor RegisterFlow: dynamic step list based on shouldIncludeAgeCheck and isUser13Plus, replace handle***Submit stub with real API call, render PostCompletionScreen on success

  23. · 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.

  24. · 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

  25. · kamo-shared-library

    Add EmailVerificationToken entity + repo + User.alias/emailVerified + UserRepo queries; bump 1.4.0 (SP4)

  26. · InitializerService

    Add SP4 email_verification_tokens DDL + User alias/email_verified columns

  27. · kamo-marketing

    Add trademark disclaimer to footer legal text

  28. · kamo-internal

    Add account settings pages for phone + security questions (SP3)

    Adds **************** with API wiring to SecurityService /api/account/*. Syncs nav across all 3 locations.

  29. · kamo-login

    Wire real API calls into /recover page (SP3)

    Replaces all fakeSubmit() stubs with recoveryApi calls. Adds SMS OTP verify phase, seed email input, new-password step, and token landing via ?token= URL param.

  30. · kamo-login

    Add /api/recover proxy + recoveryApi client (SP3)

Ulimwengu wako unasubiri.

Kuanza bure katika dakika. Ongeza bidhaa wakati wowote wewe ni tayari - hakuna uhamiaji, hakuna logins mpya.

Bure milele - hakuna kadi ya mkopo inahitajika