Use Grid2 for proper MUI Grid component support
- Changed Grid import to use @mui/material/Unstable_Grid2 - Fixes TypeScript error: Grid item prop not recognized - Grid2 properly supports item, xs, md, lg pro...
Replace any types with proper interfaces in SystemDiagnostics
- Replaced all 'any' types with detailed TypeScript interfaces - Removed unused WarningIcon import - Removed unused getStatusColor and getStatusIcon helper func...
Correct Redis ping() method call in DiagnosticsController
- Changed **************** to connection.ping() - RedisConnection.ping() is the correct API method - Fixes compilation error on lines 302 and 473 Resolves buil...
Pass re*** build args in Forgejo workflow
- Added build-args to docker/build-push-action with re*** site key - NEXT_PUBLIC_* env vars now properly baked into JavaScript bundle - This enables re*** funct...
Add build args support for NEXT_PUBLIC environment variables
- Added ARG declarations for NEXT_PUBLIC_RE***_SITE_KEY and related vars - Converted ARGs to ENV vars for Next.js build process - Created BUILD_ARGS_REQUIRED.md...
Escape apostrophe in Register link text - Resolves ESLint build error
Add parent-child domain concatenation to OrganizationRepository
- Updated findByDomain query to handle subdomain + parent concatenation - Now supports both direct matches (localhost) and hierarchical matches (login.kamocrm.c...
Forward X-Forwarded-Host header to SecurityService providers endpoint
- Added X-Forwarded-Host header when calling /api/security/providers - SecurityService requires this header to determine which organization to fetch providers f...
Restore white text color on Welcome Back section
- Added explicit color styling (sx={{ color: '#ffffff' }}) to Typography components - Material-UI was overriding the text-white class with default colors - Ensu...
Correct timestamp field names in ExternalAuthProviderDTO
- Changed getCreatedAt() to getDateCreated() - Changed getUpdatedAt() to getDateUpdated() - Changed from LocalDateTime to Date to match EmbRecordState - EmbReco...
Prevent member list from triggering logout - skip fetch on validate/logout pages and add cookie check with delay
Pass request object to generateOTK to properly read *** cookie
Replace fake member data with real API call in MemberListProvider to show actual organization members
Correct EmbNameFull field access and remove phone extension (method conflict with custom getter)
Use logoFull variant and flexible sizing to eliminate empty space around full logos on loading screens
Use organization theme colors instead of hardcoded green on welcome/success screen
Remove intermediate status messages in logout flow and redirect immediately to prevent double loading display
Make Create Organization card always visible regardless of other orgs in network
Properly extract base URL using regex to avoid including path portions
Use current site's theme hostname with org-specific paths to avoid SSL certificate errors
Improve org logo URL generation by stripping subdomain aliases and extracting base domain
Replace Grid with GridLegacy in page.tsx for MUI v7 compatibility
Use GridLegacy for MUI v7 compatibility - Grid2 not available, GridLegacy has the legacy API with item/xs props
Replace Grid with Grid2 for MUI v7 compatibility in network page
Resolve ESLint errors blocking build - escape unescaped entities and replace any types with strict typing
Add hover state tracking to prevent panel closure when coder is over it - Added isPanelHoveredRef to track real-time hover state - Set to true on nav item/panel mouseEnter and mouseMove - Set to false on nav item/panel mouseLeave - Close timeout checks hover state before closing - Panel never closes while coder is over it (nav item or panel area)
Enhance mouse event handling to prevent panel closure during hover - Added onMouseMove handler to panel that continuously clears close timeout - Added onMouseMove stopPropagation to backdrop to prevent event conflicts - Added pointerEvents auto to backdrop for explicit event handling - Ensures panel stays open when coder is on it or moving on it
Panels now close when clicking empty areas of NavPri sidebar - Fixed useEffect logic to close panels when activePanel is null - Previously only closed when activePanel was a different panel ID - Now correctly closes when activePanel is null (sidebar background clicked)
Add click-outside detection to primary navigation panels - Added backdrop overlay to NavPriItemWithPanel component - Click or touch outside panel now closes it - Increased z-index to ensure backdrop is visible above NavTop bar - Matches behavior of NavTopPanel for consistent UX
Make ROFL letters highly visible with increased opacity, size, z-index, and debug logging
Resolve ESLint prefer-const errors in Department and JobTitle managers - Changed roleIds from let to const using ternary operator - Eliminates reassignment by using conditional spread operator - Fixes build failure: 'roleIds' is never reassigned. Use 'const' instead - Maintains same functionality while satisfying ESLint rules
Restore text field editing by targeting pointerEvents more specifically - Changed pointerEvents from FormControlLabel to only target the label element - Prevents disabling text input fields while still protecting Everyone role - Uses MUI selector to target only the label, not the entire form control
Use case-insensitive contains check for Everyone role - Changed from exact title match to **************** - Handles variations like 'Everyone (Applies To All)' - More robust role detection for Everyone role protection - Applied to all role checks: checkbox state, toggle prevention, save enforcement, and edit loading
Use isAllowDelete field to enforce protected roles - Added isAllowDelete to SecurityRole interface - Changed from checking role title to checking isAllowDelete field - More robust and matches SecurityRoleManager approach - Prevents modification of any protected role, not just Everyone - Handles future protected roles automatically
Prevent cell width adjustment by using fixed 180px width
- Outer container now has fixed width: 180px - Removed minWidth in favor of fixed width - Inner flex container handles content layout - No more width adjustment...
Make timer update every second and add 'ago' suffix to elapsed time
- Timer now updates EVERY SECOND regardless of age (truly live) - calculateTimeAgo() uses currentTime state for real-time calculation - Added ' ago' suffix to a...
Make timer truly live with constant recalculation and stabilize hover area
- Timer now recalculates on every render (truly live, no lag) - State updates trigger re-renders at smart intervals (1s to 1hr) - Fixed glitchy hover by adding ...
Store and retrieve timezone from localStorage instead of API calls
- Updated validate route to fetch timezone from Redis session data - Store timezone in localStorage during validation - DateTimeDisplay now reads from localStor...
Make SessionUtilityService Redis connection configurable via Spring properties
Replace try-with-resources with manual close for OtkValidator
Update SecurityRoleController to use session package SessionData
Update SessionUtilityService to use existing Redis utilities from shared library
Use getOrganizationFromRequest to get current user from Redis session
Use getOrganizationIdFromRequest instead of getCurrentUserOrganization
Add cascade annotations to OrgRole.rights to ensure rights are saved
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.
