Skip to content
KAMOUniverse

Changelog

What's new.

Every improvement to the platform, as it ships.

  1. · kamo-shared-library

    Add multi-language support with 26 languages, update CountryType with language mappings, replace BitcoinJ with web3j crypto

  2. · kamo-register

    Replace emoji icons with high-quality Material UI icons for avatar styles

  3. · kamo-register

    Age Check improvements and Passport ID enhancements

  4. · kamo-register

    Compact avatar creator with side-by-side gradients and age check improvements

  5. · kamo-register

    Innovative compact avatar creator with advanced color picker and eyedropper

  6. · kamo-register

    Enhanced avatar creator with comprehensive Avatar Creator options and fixed container sizing

  7. · kamo-register

    Age-based Personal Info page with avatar creator for under 13 and photo upload for 13+

  8. · kamo-register

    Add modern Avatar Creator avatar creator to Personal Info page with compact name fields

  9. · kamo-register

    Modernize Personal Info component and button styling

    PERSONAL INFO MODERNIZATION: - Remove card wrapper for cleaner, integrated look - Update header to use var(--color-primary) from globals.css - Increase icon size to 36px for better visual hierarchy - Remove unnecessary Divider - Increase field spacing to 3 (from 2) for better breathing room - Add consistent 2px border width to all text fields - Add 'Optional' helper text to Middle Name field - Remove Card, CardContent, Divider from imports BUTTON STYLING: - Back button now uses var(--color-primary) color - Next/Finish buttons use var(--color-primary) background - Hover states use var(--color-primary-light) - Increased font weight to 600 for better readability - Professional hover effect on Back button - Consistent styling across all navigation buttons - CircularProgress on Finish button uses white color

  10. · kamo-register

    Dynamic Member Alias/E-Mail mode and UI improvements

    HEADER UPDATES: - Change title from 'Create KamoCRM Passport' to 'Join {OrganizationName}' - Update sign-in text to 'Already have a {Organization Name} member?' - Fix sign-in link to swap register.* with login.* dynamically PASSPORT ID -> MEMBER ALIAS/EMAIL: - Ages 12 and under: 'Member Alias' with passport ID validation - Ages 13 and up: 'E-Mail' with email validation - Dynamic label: '{Organization Name} Member Alias' or '{Organization Name} E-Mail Address' - Email mode: validates email format, checks for @ symbol, domain, etc. - Member Alias mode: validates alphanumeric + hyphens, no consecutive hyphens - Show appropriate icons (EmailIcon vs BadgeIcon) - Display success chip when valid - Check uniqueness via different endpoints based on mode MY COUNTRY FIX: - Remove memoization that was blocking country selection - Simplify click handlers to always call handleInputChange - Users can now select any country (not stuck with detected) - Fix useEffect dependency to prevent infinite loops VALIDATION FIX: - Fix duplicate activeStep === 2 validation blocks - Password validation now correctly occurs on step 3 - Member Alias/Email validation on step 2 - Personal Info validation on step 4 - Proper error messages with dynamic field names

  11. · kamo-register

    Implement comprehensive country-based ATF verification and slide reordering

    MAJOR CHANGES: - Rename FormWelcome to FormAgeCheck component - Reorder registration flow: MyCountry first (step 0), AgeCheck second (step 1) - Bump all other slides up by one position - Update step validation logic for new ordering ATF VERIFICATION: - Add isAlcohol, isTobacco, isFirearms flags to Organization interface - Check user country ATF categories against organization offerings - Redirect to sorry page if org has prohibited content for user's country - Use HIGHER age requirement between user country and org country - Generate dynamic ATF text (e.g., 'alcohol and tobacco' vs 'alcohol, tobacco, and firearms') COUNTRY-SPECIFIC FEATURES: - Update CountryType with legalAdultAge, legalAtfAge, legalAtfCategories - Support variable age requirements (18, 19, 20, 21 depending on country) - Display correct ATF products based on what's legal in both countries - Examples: US=21 for ATF, Japan=20 for alcohol/tobacco only, Kuwait=21 tobacco only USER COUNTRY TRACKING: - MyCountry component now sets userCountry field instead of country - AgeCheck receives userCountry as prop - Age verification uses max(userCountryAge, orgCountryAge) SORRY PAGE ENHANCEMENTS: - Add COUNTRYPROHIBITED reason type - Hide Go Back button for country prohibition cases - Show specific prohibited category (alcohol, tobacco, firearms) - Only allow Exit Website option for prohibited content UI IMPROVEMENTS: - Change 'and/or' to 'and' throughout ATF text - Rename all Welcome references to Age Check - Update step labels and navigation

  12. · SecurityService

    Return organization ATF fields in org/domain endpoint

    - Return isAlcohol, isTobacco, isFirearms boolean flags - Enable frontend to check content against user country restrictions - Support dynamic ATF text generation based on org offerings

  13. · kamo-shared-library

    Add IS_ALCOHOL, IS_TOBACCO, IS_FIREARMS fields to Organization

    - Add isAlcohol boolean field (nullable=false, default false) - Add isTobacco boolean field (nullable=false, default false) - Add isFirearms boolean field (nullable=false, default false) - Enable country-specific content restriction checking - Support ATF category verification during registration

  14. · kamo-register

    Implement country-specific legal ages and dynamic ATF text

    - Update CountryType to include legalAdultAge, legalAtfAge, legalAtfCategories - Dynamically display age requirements based on country (18, 19, 21, etc.) - Generate ATF text based on what's legal (alcohol, tobacco, firearms combinations) - Use organization address fields from backend for legal ages - Fallback to CountryType lookup if address fields not provided - XXX_RATED page shows country-specific adult age - ATF_ONLY page shows country-specific ATF age and relevant products - Age validation uses country-specific thresholds - Support variations like 'alcohol and tobacco' for countries without firearms

  15. · SecurityService

    Include country legal ages in organization endpoint

    - Return country date format and separator in org/domain endpoint - Include legalAdultAge, legalAtfAge, and legalAtfCategories - Enable frontend to dynamically display age requirements - Support country-specific age verification text

  16. · kamo-shared-library

    Add legal age fields and ATF categories to CountryType

    - Add legalAdultAge field for adult content verification - Add legalAtfAge field for alcohol/tobacco/firearms age requirements - Add legalAtfCategories field to track what is legal per country - Update all 197 countries with appropriate values - Countries use appropriate ages (18-21) based on local laws - ATF categories reflect local regulations (some countries ban alcohol, guns, etc.) - Support country-specific age verification for registration

  17. · kamo-register

    Align XXX/ATF buttons left-right and add meaningful icons

    - Change button layout from centered to space-between (left and right alignment) - Add ExitToApp icon to EXIT button (startIcon on left) - Add VerifiedUser icon to ENTER button (endIcon on right) - Icons emphasize the importance of the age verification choice - Apply to both XXX_RATED (18+) and ATF_ONLY (21+) pages

  18. · kamo-register

    Update sorry page buttons to Go Back and Exit Website

    - Change Home button to Exit Website with error color styling - Implement window.close() functionality to close tab/window - Add fallback to redirect to about:blank if close is blocked by browser - Keep Go Back button with primary color - Improve button styling with consistent borders

  19. · kamo-register

    Add EXIT and ENTER buttons for XXX_RATED and ATF_ONLY age verification

    - Remove birth date input forms for XXX_RATED and ATF_ONLY - Add EXIT button that redirects to sorry page - Add ENTER button with age confirmation (18 for XXX, 21 for ATF) - Style EXIT as outlined button and ENTER as contained button - Hide standard Next/Back navigation buttons for these special pages - Center buttons with proper spacing and styling - Update text to match requirements exactly

  20. · kamo-register

    Enhance age verification with modernized date inputs and comprehensive validation

    - Add polished, card-based date input UI with visual feedback - Implement comprehensive date validation (valid ranges, actual calendar dates, not future) - Show real-time validation status with icons and color-coded borders - Display clear, detailed error messages for invalid dates - Add success feedback showing calculated age when date is valid - Improve UX with proper field ordering based on country format - Add validation before proceeding to next step - Handle KIDS_ONLY age selection with validation - Integrate age verification flow with main registration form

  21. · kamo-register

    Implement comprehensive age verification system with country-specific date formats

    - Add WORLD_WIDE_BAN to AgeReqType enum - Update CountryType with date format and separator properties - Create /sorry page for age restriction redirects - Completely rewrite FormWelcome with dynamic age verification - Add special welcome pages for XXX_RATED and ATF_ONLY - Implement age validation for all AgeReqType cases - Move age field from PersonalInfo to Welcome component - Add birth date support for accurate age calculation - Support country-specific date input formats (MDY/DMY/YMD)

  22. · SecurityService

    Add registration and org domain endpoints for age verification

  23. · kamo-shared-library

    Add date format and separator fields to CountryType enum

  24. · APIService

    Add domain-agnostic IngressRoute for api subdomain

  25. · kamo-register

    Add domain-agnostic IngressRoute for register subdomain

  26. · kamo-internal

    Add domain-agnostic IngressRoute for internal subdomain

  27. · kamo-login

    Add domain-agnostic IngressRoute for automatic SSL and routing

    - Added k8s/ingressroute.yaml with HostRegexp pattern for login subdomain - Updated CI/CD to deploy IngressRoute automatically - Enables Cloudflare-like automatic SSL certificate generation - Works with any domain pointed at the cluster (kamocrm.com, baddi3.com, etc.) - Added k8s/README.md documenting the configuration

  28. · InitializerService

    Update timezone field to use TimezoneType enum - Changed User.timezone from String to TimezoneType enum - Updated .gitignore to exclude m2-repository cache - Supports timezone hierarchy: Member > User > Organization

  29. · kamo-shared-library

    Add comprehensive data storage imaging system with timezone support - Added TimezoneType enum with UTC offset fields and conversion methods - Added timezone fields to Organization (required, defaults to PACIFIC), User (nullable), and Member (nullable) - Updated EmbRecordState to use LocalDateTime for UTC date/time storage - Created 16 new entity classes for imaging system (Img, ImgFolder, ImgDat, etc.) - Created 5 new enum types (ImageAssocType, ImageMimeType, ImageSetType, etc.) - Created 10 ne...

  30. · kamo-internal

    Add themed colors and background logo to calendar page

Your universe is waiting.

Start free in minutes. Add products whenever you are ready — no migration, no new logins.

Free forever — no credit card required