Use HTTPS with agent that accepts self-signed certificates
- Reverted to always use HTTPS (not HTTP) - Added HTTPS agent with rejectUnauthorized: false for self-signed certs - This allows server-side Next.js routes to c...
Use Kubernetes service name for MediaService to avoid SSL cert issues
- Server-side Next.js routes now use **************** - This avoids self-signed certificate errors when connecting to https://media.kamocrm.com - Client-side re...
Remove old /api/security/media/ routes that were intercepting requests
- Old routes were forwarding to APIService which no longer has media endpoints - All media requests should go through /api/media/ routes directly to MediaServic...
Revert to actions/checkout@v4 to match other Next.js projects
- Remove complex manual checkout logic that was causing hangs - Use standard actions/checkout@v4 like kamo-login and kamo-register - Simplify Docker build conte...
Use shallow clone with timeout to prevent hanging
- Use --depth 1 for faster cloning - Add timeout (120s for shallow, 300s for full) - Fallback to full clone if shallow fails - Fetch specific commit if needed a...
Change to valid directory before git clone to avoid working directory error
- Change to /tmp or / before removing/cloning workspace - Only remove directory if it exists but is not a git repo - Prevents 'Unable to read current working di...
Use hardcoded repository URL and set GITHUB_WORKSPACE env var
- Use direct repository URL to avoid DNS/hostname resolution issues - Set GITHUB_WORKSPACE environment variable for subsequent steps - Use env var in Docker bui...
Use git clone directly instead of relying on empty workspace
- Clone repository using git directly with repository URL - Handle both fresh clone and existing repository cases - Use working-directory for Docker build actio...
Simplify all checkout steps - remove git operations that hang
- Remove git fetch/reset/clean from deploy jobs - Forgejo runner already has code checked out - Just verify GITHUB_WORKSPACE is valid
Simplify checkout step - remove git clone that was hanging
- Remove git clone logic that was causing 20+ minute hangs - Forgejo runner already has code checked out, just verify directory - Remove unnecessary git fetch/r...
Improve checkout and Docker build context handling
- Add proper repository cloning if not already checked out - Verify Dockerfile exists before building - Use absolute paths for Docker build context - Fix workin...
Replace actions/checkout with manual git checkout to avoid DNS issues
- Replace actions/checkout@v4 with manual git checkout commands - Forgejo runner already has code checked out, just need to ensure clean state - Fixes DNS looku...
Explicitly permit WebSocket endpoints in Spring Security
- Added explicit permitAll for /ws/** endpoints - WebSocket upgrade requests need explicit permission even in development mode - Fixes issue where WebSocket con...
Search for existing chat sessions by participant membership, not just session owner
- Changed findOrCreateChatSession to search MediaSessionMember records instead of MediaSession.member - Now searches sessions where creator is a participant (me...
Add detailed logging for message member ID retrieval
- Added logging to trace member ID for each message being returned - Logs member class name to detect proxy/stub issues - Logs distinct member IDs in response t...
Add JOIN FETCH to eagerly load member in message queries
- Added JOIN FETCH m.member to both findBySessionAndIsRemovedFalse queries - Ensures member entity is eagerly loaded to avoid lazy loading issues - Fixes issue ...
Automatically create NATS JetStream stream if it doesn't exist
- Added createStreamIfNotExists method to check and create the CHAT_MESSAGES stream - Stream is created with subjects from configuration (chat.>) - Fixes 'No ma...
Extract large IDs from raw JSON to prevent JavaScript precision loss
- Extract memberID, userID, orgID, and securityOrgId from raw JSON string before parsing - Prevents precision loss for IDs > Number.MAX_SAFE_INTEGER (9007199254...
Make NatsMessageService work with Optional JetStream injection
- Changed JetStream injection to Optional with @Autowired(required=false) to handle bean ordering issues - Removed @ConditionalOnBean to allow service creation ...
Reorder annotations in NatsMessageService to check property first, then bean
Correct import for ConditionalOnProperty in NatsMessageService
Add ConditionalOnProperty to NatsMessageService to ensure it only loads when NATS is enabled
Serialize memberID and other IDs as strings in user-info API to prevent JavaScript precision loss
Explicitly import NatsConfig to ensure NATS JetStream is enabled
Add detailed logging for WebSocket subscription and NATS message forwarding
Serialize memberId as string in all API responses to prevent JavaScript precision loss
Complete memberId type updates in useChatWebSocket for string/number compatibility
Handle member IDs as strings consistently to fix message author detection
Update NavTop and NavTopPanel to accept string or number member IDs
Serialize member IDs as strings to avoid JavaScript precision loss
Add detailed logging for memberID type conversion to debug ClassCastException
Handle String type for memberID and parentId to prevent ClassCastException
Handle memberId as string from JavaScript to avoid precision loss with large numbers
Send memberId as string to avoid JavaScript precision loss with large numbers
Correct TypeScript const assertion for conditional author assignment
Remove incorrect code in createChatSession - cascade handles chat saving
Improve cleanup to handle typing indicator subscription properly
Add missing typingIndicatorCallbackRef declaration and improve cleanup
Improve title handling and WebSocket subscription timing for messages and typing indicators
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.