Use org short name and description in HTML head
Replace org-API-based title logic with config.json siteNameShort so the title follows the same pattern as other sites: "Register - {siteNameShort}". Adds descri...
Cache-bust logo URLs using themeRevision from config.json
DynamicMetaLoader now stores themeRevision in sessionStorage and fires KAMO_THEME_CONFIG_LOADED after fetching config.json. ThemeLogo listens for that event and...
Drop My Profile tip banner + unify section spacing
All four My Profile sections now share the same vertical rhythm — 8px between each section's header and its field(s), 16px between sections. The Alert banner ex...
Tidy My Profile layout + drop phone verification
Reorganize the My Profile step so all four sections share the same layout and title format. Order is now Legal Name, alias, e-mail, phone. - FormName: remove t...
Merge alias/email/name/phone into a single "My Profile" step
Combine the previously separate "My E-Mail & Alias", "My Name", and "Phone Number" steps into one "My Profile" step for 13+ registrants, with alias + e-mail + l...
Add phone verification + security questions steps
Insert two new steps between Password and Account Recovery for 13+ registrants: a phone-number step (optional, skippable, with SMS code verification) and a secu...
Remove deprecated OrganizationType enum
The enum is being retired — identification of the platform-owner org is now driven by the new Organization.isTopLevel flag, and the remaining values (CRM_CLIENT...
Read logoFullExt from config.json; fix site.webmanifest path to favicon subdirectory
Upload Avatar Creator avatar to server after registration
Avatar Creator avatars were only stored as SVG data URLs in local form state and never sent to the server, leaving new users with no avatar set. Convert the SVG...
SSE-driven live verification status on /verification page
- Add streaming SSE proxy at **************** - PostCompletionScreen subscribes to SSE; auto-sets verified when email link is clicked in another tab - Verifie...
Pass email_verified and email params on redirect to login
Both the code-verify and token-verify paths now redirect to **************** so the login page can show a success banner and pre-fill the username field.
Remove /recover page and proxy (moved to kamo-login as /reset-password)
Add /recover password reset page and API proxy
Three-stage flow: email → 8-char code entry → new password. Auto-verifies token from URL query param, background carousel, glass-morphism card, Capcha ***, matc...
Restore verification page layout by zeroing hidden input dimensions
MUI Box interprets numeric width/height values 0–1 as percentages, so width:1 made the hidden input cover the full card. Changed to 0 so the input is invisible ...
Token link auto-verifies and redirects to login; add code focus indicator
- /verification?token=xxx now calls verifyEmailByToken on mount and redirects to login on success; falls back to code entry on failure - Active code box shows...
Lift *** widget above click-to-focus overlay (z-index)
The overlay (position:absolute, z-index:0) was covering the Capcha widget because it appeared later in DOM order. Adding z-index:1 to the *** container lets poi...
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.
Redirect to /verification after registration instead of rendering inline
Keeps the URL accurate — browser shows /verification not /member.
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 U...
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 - resendVe...
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...
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 acce...
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 slide...
Pass upstream error body through security proxy instead of generic message
Previously returned {error: "Upstream error"} on non-2xx, losing the real error message from SecurityService. Now forwards status code and body directly.
Replace Redis session caching with direct Java API fetch in org route
Prevent stale ageReqType cache from showing age check incorrectly
- Org route: reduce Redis TTL from 24h to 5min and add ageReqTypeMember to stale detection so security fields stay fresh after DB changes - RegisterFlow: defa...
Set browser tab title to 'Register - {org name}'
DynamicMetaLoader now calls useThemeConfig and updates document.title to 'Register - {org.title}' once the org loads. Static fallback in layout.tsx changed from...
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.
Resolve TS errors from steps used before declaration and Capcha style cast
Move **************** useMemos above the useEffects that depend on them; import CSSVariables type and use it for the Capcha-widget style prop.
Apply SP6 correctness and implementation quality fixes
C1: use NEXT_PUBLIC_H***_SITE_KEY env var instead of hardcoded placeholder C2: change RegisterResponse.userId and all API params from number to string (Cockroac...
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 FormRecoveryEn...
Make PoweredByKamo legible with WCAG-grade contrast
Mirrors the kamo-login change. Text switched to solid white; background at rest is var(--color-secondary), background on hover/focus is var(--color-primary). Su...
Add subtle KamoCRM backlink to registration pages
Mirrors the PoweredByKamo badge shipped in kamo-login. Since kamo-register is served on each white-label client's domain, this creates a stable dofollow backlin...
Add concurrency group to prevent duplicate workflow runs
When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...
Upgrade to Next.js 16.2.3, TypeScript 6.0.2, Node 24, React 19 types
- Pin next to 16.2.3 and eslint-config-next to match - Upgrade typescript to exact 6.0.2, @types/node to ^24 - Replace framer-motion with motion ^12 (motion/rea...
Invalidate stale Redis cache missing org label fields
Cached org data from before the SecurityService update lacks the memberTitleNonPlural field. Detect this and re-fetch fresh data so custom member/team labels di...
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.