Media_timeout back to livekit-sip's default
957fc4f re-applied a 20-minute media timeout for a quiet meeting's AI leg. With the fail2ban ban on 47.181.8.84 lifted and FreePBX sending RTP straight over the...
Drop the animated glimmer
Removes the corner-fading sheen added in 70d068c and 6810799 in full: both spinning layers, the conic gradients, the ring and envelope masks, and the extra z-in...
Drop the headline from the top banner
Removes "Running Your Business without Kamo is a Mistake." from the fixed top banner, as reported. Confirmed live before the change — the running pod served it ...
Turn the workspace picker back off
The redirect is wrong. SignInCompletionService returns a relative /validate?otk=, which resolves against the host that served the sign-in -- login.<apex> -- and...
Remove duplicate idle-logoff stack; SessionManager already covers it
The Aug 2 HIPAA session added **************** as a second, parallel idle system. The layout already had the original one — ClientActivityTracker + SessionManag...
Remove design-partner program page and links — no free-usage giveaways
Drop the avatar-resolver egress policy
Reverts the policy added in 06db7db and patched in 24f76ae. It took SecurityService down for roughly six minutes in production (pod 0/1, Hikari connections dyin...
Scope the background back to the home + settings landings
Reverses the global-layout move — the member preferred the background on the landing(s) rather than behind every page. Backdrop is once again rendered per page ...
Remove MLOS event-backbone wiring — KamoLOS is the personal-loans LOS, not MLOS
MLOS (mortgage) work must not touch KamoLOS (personal loans). The shared-lib com.kamo.z.shared.mlos.* substrate stays (generic, gated mlos.outbox.enabled=off); ...
Remove @PostConstruct COMP provisioner — fix existing orders directly in DB
approveOrder() already handles new COMP orders. One-time data gap for existing orders is corrected directly in the database.
Drop branch-type bulk fetch; document per-org applied model rules
Remove /recover page and proxy (moved to kamo-login as /reset-password)
Remove hostPort from Traefik deployment
- Port 443 is already bound by ingress-nginx via CNI hostPort - Keep standard containerPort configuration
Change Traefik service to LoadBalancer with externalIPs for direct access
- Use LoadBalancer type with externalIPs instead of NodePort - Allows router to forward port 443 directly to service IP - This should bypass ingress-nginx hostP...
Simplify to HTTPS:8443 only, remove dual port config
- MediaService runs ONLY on port 8443 (HTTPS) - No more Traefik routing for MediaService - Removed DualPortConfig complexity - All traffic (API + WebSocket) goe...
Restore HTTP/2 for WebSockets (RFC 8441 support)
- WebSockets CAN work over HTTP/2 via RFC 8441 - Removed TLSOption (not needed) - Removed ServersTransport reference (let HTTP/2 work) - Restored simple domain-...
Connect WebSocket directly to media.kamocrm.com
- Reverted to original approach: connect to media.* subdomain directly - Removed unnecessary same-origin complexity - Removed /ws bypass from middleware (not ne...
Restore WebSocket transport in SockJS
- Revert to using websocket transport (not polling) - WebSockets are standard and should work properly - Focus on fixing the actual WebSocket connection issue
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.
