Change widget label from 'I'm not a robot' to 'Verify' across all locales
Use widget's CSSVariables type instead of React.CSSProperties for style prop
Remove duplicate Capcha-widget JSX type declarations (widget ships its own)
Vendor kamo-capcha-widget locally instead of git URL (Docker can't resolve k0m1)
Replace Capcha npm package with private-labeled kamo-capcha-widget fork
Switched from upstream Capcha npm package to our MIT-forked kamo-capcha-widget with all branding stripped at source. Removed shadow DOM hacks and CSS overrides ...
Fork Capcha v3.0.2 widget with branding removed for private labeling
Block login until *** verified, remove all Capcha branding via shadow DOM, use onfocus auto mode
Remove Capcha branding and upgrade to PBKDF2/SHA-256 with deterministic effort
Upgrade to Capcha-lib v2 with PBKDF2/SHA-256 and deterministic effort
- Algorithm: PBKDF2/SHA-256 (recommended for production) - Deterministic effort: counter range 5000-10000 - Cost: 5000 PBKDF2 iterations - Challenge expiry: 300...
Integrate Capcha proof-of-work *** widget into login and recovery pages
Replace Google re*** with Capcha *** verification
Remove Re***Service and all Google re*** configuration. Add CapchaVerificationService that verifies *** payloads via kamo-capcha service's /api/verify endpoint....
Add explicit AS keyword for PostgreSQL column alias in session and event queries
The session and event expanded metrics queries use implicit column aliasing (`${column} name`) which causes a PostgreSQL syntax error when the column name (like...
Read OTK from Redis master after SecurityService login
Avoids missing *** when REDIS_REPLICA_HOST points at a lagging replica.
Revert "Merge pull request #4048 from ****************
This reverts commit **************** reversing changes made to ****************
Make hexagon icon borders thicker and visible
Replace invisible CSS border (clipped by clip-path) with a ::before pseudo-element border that extends 3px outside the hexagon shape.
Auto-flatten 3D scroll elements when user stops scrolling
Adds scroll-idle detection so perspective-rotated elements animate to flat after 300ms of no scrolling, instead of staying tilted. Once flat, they stay flat unt...
Add debug logging and robust rights parsing for webinar controller
Adds info/warn logging for session data and rights on POST /types to diagnose 403 errors. Also adds fallback parsing for rights stored as JSON strings in Redis ...
Align field name to isAvailableToChildren and enhance advance booking UI
Fixes 400 Bad Request when creating webinar types by sending isAvailableToChildren to match the Java DTO field name (Lombok generates getIsAvailableToChildren f...
Merge pull request #3642 from ****************
Set tracker’s fetch call priority to low
Make webinar settings forms and table fill available content area
Removes maxWidth constraint from the details form so it fills the full width. Makes the types table and its container use flex layout to fill the available heig...
Widen formStrategy state type to string for TypeScript compatibility
The const assertion on WebinarPresenterStrategy made useState infer a literal type, causing a type mismatch with the string prop setter.
Redesign webinar settings from dialog-based to sub-page navigation
Replaces popup dialogs and separate accordion sections with a two-level inline navigation flow: - Level 1: clean webinar types table with click-to-navigate - Le...
Add minimum advance booking field to webinar settings UI
Adds a number input for configuring how far in advance a slot must be to allow reservations, with helper text explaining the field.
Enforce minimum advance booking when filtering available slots
Filters out slots that fall within the configured minAdvanceBookingMinutes window, and persists the field on create/update of webinar types.
Add minimum advance booking field to webinar type
Adds minAdvanceBookingMinutes to WebinarType entity and DTOs, allowing admins to require slots be booked a minimum time in advance (e.g., 24 hours). Slots close...
Update WebinarReminderJob to use renamed repository method
Calls **************** with a 24-hour max window instead of the removed findWebinarsWithDueReminders method.
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.