Changelog
What's new.
Every improvement to the platform, as it ships.
· kamo-internal
Implement god mode toggle in NavTop
Backend changes (app/api/user-info/route.ts): - Read GD field from Redis session data - Map to isGod in API response Frontend changes (app/hooks/useUserInfo.tsx): - Add isGod field to UserInfo interface - Add getIsGod() method to hook - Export getIsGod for components UI changes (app/components/NavTop.tsx): - Add god mode toggle (purple theme) - Only visible to users with isGod permission (GD=true) - Toggle state stored in localStorage - Independent on/off control for god mode Flow: 1. User has is_god=true in database 2. SecurityService stores GD=true in Redis session 3. /api/user-info returns isGod=true 4. NavTop shows god mode toggle 5. User can enable/disable god mode (UI state only) Two-level permission: - isGod: Permission to SEE the toggle (from database) - godModeActive: Current UI state (localStorage)
· SecurityService
Implement god mode permission in sessions
Changes to SecurityController: - Query is_god field from users table during login - Pass isGod to kSessionService.createSession Changes to KSessionService: - Add isGod parameter to createSession method - Store as 'GD' field in Redis session data - GD field indicates if user has god mode permission Flow: 1. User logs in → Query is_god from database 2. Create session in Redis with GD parameter 3. Frontend reads GD to show/hide god mode toggle 4. God mode toggle state managed separately in UI This implements the god mode permission system.
· kamo-shared-library
Add isGod field to User.java for god mode permission
- Add is_god column with database default false - Field indicates if user can access god mode toggle in UI - Used in SecurityService session creation to populate GD parameter - Part of god mode feature implementation
· SecurityService
Add titleShort to organization API response
- Added titleShort field to /org/domain/{domain} endpoint response - Enables frontend to display organization's short name in UI - Used in session expiration warning and other dynamic org branding
· kamo-internal
Dynamically show org short name in session warning
- Added titleShort property to Organization class - Updated SessionExpirationWarning to use organization's short name - Changed text from 'Kamo applications' to '{Org Short Name} applications' - Falls back to full title or 'Kamo' if short name unavailable - Uses useOrgContext to access organization data
· kamo-internal
Double-check Redis before showing session warning
- Always verify Redis TTL right before showing expiration warning - Prevents false warnings if another Kamo app extended the session - Ensures warning popup only shows when Redis confirms expiration is imminent - Works with sliding expiration implemented in SecurityService
· SecurityService
Implement sliding session expiration - CRITICAL SESSION FIX
- Refresh Redis TTL on every session access (sliding expiration) - Sessions now stay alive as long as user is active in ANY Kamo app - Change Redis key prefix from SESSION to *** (matches cookie name) - Redis object TTL is the ONLY source of truth for session expiration - Cookie expiration is now meaningless - Redis controls session lifetime
· kamo-internal
Integrate session debug functionality into root dashboard
· SecurityService
Add session info and extend endpoints for cross-app session management
· kamo-internal
Add session expiration warning system with Redis-based monitoring and animated popup
· kamo-internal
Read timezone from *** cookie instead of making API calls
· SecurityService
Update KTokenSessionService to accept timezone parameter for *** cookie
· kamo-shared-library
Add timezone (TZ) field to KToken for user-specific timezone support in *** cookie
· kamo-internal
Implement timezone service with IANA zone ID support to fix 'Invalid time zone' error
· SecurityService
Add effective timezone endpoint with Member->User->Organization cascade
· kamo-login
Add standalone output mode and expand remote image patterns
· kamo-register
Optimize Dockerfile for production with multi-stage builds and update next.config for standalone mode
· kamo-register
Auto-enable nickname field when clicking on disabled textbox
· kamo-register
Redesign name details with prefix/suffix dropdowns and nickname checkbox
· SecurityService
Add endpoints for name prefixes and suffixes
· kamo-shared-library
Add NamePrefixType and NameSuffixType enums with international titles
· kamo-register
Complete redesign of sorry page with modern, polished UI
· kamo-register
Enhance country selector with live search and improved interactivity
· kamo-register
Filter banned countries and redirect to sorry page if detected
· SecurityService
Add countries endpoint to return list with banned status
· kamo-shared-library
Add isBanned field to CountryType enum for 30 sanctioned countries including Cuba, Iran, North Korea, Syria, Russia, Belarus, and Balkans region
· SecurityService
Comprehensively enhance all 18 custom language phonetic patterns for better word generation
· SecurityService
Implement multi-language BIP39 seed phrase generation with official word lists and custom phonetic patterns for 26 languages
· kamo-register
Add multi-language seed phrase support with language dropdown on Account Recovery page, defaults to user's country language
· SecurityService
Add MultiLanguageSeedPhraseService with web3j for multi-language seed phrase generation, update RecoveryController with language support

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