Attach widget event listeners when password step renders, not on initial mount
Listen for both statechange and verified events, remove payload requirement from login gate
Use identical explicit pixel spacing on both username and password option rows
Context-aware *** error messages, tighten spacing between fields and options
Swap spacing on username/password views, label to 'I am Human', update error message
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....
Read OTK from Redis master after SecurityService login
Avoids missing *** when REDIS_REPLICA_HOST points at a lagging replica.
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...
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.
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
