KamoCRM

Live Change Log

Every feature, fix and improvement, posted as it ships. Nothing is held back for a launch.

15,120
Total Changes
5,169
Features
4,935
Fixes
30
Projects
Filter by project
All Projects15,120AIService197APIService161BillingService143ConversionService107DaemonService129DocsService215ESigService88EmailService518InitializerService318KBService105KlusterServices697MCPGatewayService85MediaService546RAGService71SecurityService1,658TranslateService55VOIPService205VectorService11kamo-apps25kamo-asterisk-support24kamo-capcha17kamo-capcha-widget4kamo-internal6,937kamo-login330kamo-marketing625kamo-nowww20kamo-register213kamo-shared-library1,455kamo-signer-monorepo53kamolos108
Filter by type
All TypesBuild11CI523Chore738Docs2,167Feature5,169Fix4,935Other986Performance157Refactor274Revert23Style42Test94Upgrade1
August 19, 2026
Featurekamo-login

Rebuild the welcome panel around a live status rail

The left column was a generic headline, a security platitude and a pile of ambient decoration (dot grid, floating orbs, a pulsing dash). Replace it with one sha...

Kamo·1mo ago
Featurekamo-marketing

Rebuild the hero as an editorial split with the reel as an aperture

The reel was a centred rounded rectangle with a drop shadow — an object placed on the design rather than part of it — and it was the ONLY thing in the hero: ff0...

Kamo·1mo ago
FixKlusterServices

Pin and verify the kubectl download instead of falling back to a broken wget

The deploy died at "Install kubectl". Three separate faults lined up: 1. curl aborted mid-stream with (56) "decryption failed or bad record mac" — the corru...

Kamo·1mo ago
DocsKlusterServices

Correct the README to the routes that actually shipped

The WebRTC endpoint moved from /webrtc/<ch>/whep to /live/<ch>/whep when channels were renamed live/<ch> to drop StripPrefix, and the README still described the...

Kamo·1mo ago
FixKlusterServices

Name channels live/<name>, use Recreate, feed the loop a uniform GOP

Three defects found by exercising the deployed service. 1. The /live/ route 404'd through Traefik. MediaMTX answers the first HLS request with a 302 to `?co...

Kamo·1mo ago
FixSecurityService

Make the verification sweep's DNS upgrade reachable

DomainVerificationWatcher gated on **************** but **************** only ever answers ok/pending/error/na — it has never returned "verified". allVerified w...

Kamo·1mo ago
FixKlusterServices

Move the encode job's decision logic out of the mc container

The plan stage died on `sed: command not found`. The minio/mc image is minimal to the point of having no sed, awk, grep, wget or curl — it can move objects and ...

Kamo·1mo ago
FixKlusterServices

Upload segments with an explicit glob, not --recursive

mc cp --recursive takes a directory; the segments were being passed as a glob, which is the wrong shape for that flag. Segments and the playlist beside them nee...

Kamo·1mo ago
Featurekamo-marketing

Play the reel as an adaptive HLS ladder instead of a 31.8 MB MP4

The hero pointed a bare <video src> at a single 3.9 Mbps 720p24 MP4, so a phone on a weak connection downloaded exactly the same stream as a desktop on fibre, a...

Kamo·1mo ago
FeatureKlusterServices

Deploy a streaming server and an ABR ladder for the hero reel

MediaMTX serves live channels over HLS, WebRTC, RTSP and RTMP, and loops the marketing reel as an always-available channel via alwaysAvailableFile — no ffmpeg s...

Kamo·1mo ago
FixSecurityService

Restore media as a required DNS alias so its card can verify

media.<domain> backs MediaService realtime websockets and is live in Traefik, auto-cert and the /setup/dns studio catalog, but it was dropped from KnownAliases ...

Kamo·1mo ago
Fixkamo-register

Hold the token's int64 ids as digits, not as numbers

KToken could not verify a real token. The four ids it carries are int64s, and the Java signer (kamo-shared-library KToken#canonicalForMac) appends each as a raw...

Kamo·1mo ago
Fixkamo-login

Hold the token's int64 ids as digits, not as numbers

KToken could not verify a real token. The four ids it carries are int64s, and the Java signer (kamo-shared-library KToken#canonicalForMac) appends each as a raw...

Kamo·1mo ago
Fixkamo-internal

Hold the token's int64 ids as digits, not as numbers

KToken could not verify a real token. The four ids it carries are int64s, and the Java signer (kamo-shared-library KToken#canonicalForMac) appends each as a raw...

kamo·1mo ago
Fixkamo-internal

Market filters were comparing a UUID against a number

Both market filters were dead, in different ways, and neither said so. Leads: a market tab matches a lead either by marketId or by the market's vendor products...

kamo·1mo ago
FixKlusterServices

Preserve the client IP so the KAMOTEAM export ACL matches

Mounts failed with 'access denied by server'. A packet capture inside the guest showed the connection arriving from 10.42.0.151 — a pod-network address — not th...

Kamo·1mo ago
ChoreDaemonService

Rebuild against the shared-library lead id fix

This service creates leads through LeadService, so it hit the same failure as /leads/new: on a mortgage market Hibernate 6.2 emitted "insert into leads (...) re...

Kamo·1mo ago
ChoreMediaService

Rebuild against the shared-library lead id fix

This service creates leads through LeadService, so it hit the same failure as /leads/new: on a mortgage market Hibernate 6.2 emitted "insert into leads (...) re...

Kamo·1mo ago
FixSecurityService

Stop reporting a missing column as a missing table

Four controllers each rewrote ANY message containing "does not exist" into "Database table X does not exist. Please run KamoInitializerApp to create the schema....

Kamo·1mo ago
Fixkamo-shared-library

Generate the id before the insert, so mortgage leads can be created

Creating a lead on a mortgage market failed with "Database table LEADS does not exist. Please run KamoInitializerApp to create the schema." The table was there....

Kamo·1mo ago
FixKlusterServices

Make the workstation fstab rewrite safe

Backs up /etc/fstab, normalises a missing trailing newline (a plain append would otherwise splice onto the last entry), and refuses to install a file that lost ...

Kamo·1mo ago
Fixkamo-internal

Stop rounding int64 ids on the way back to the server

Sweep of the client half of the int64 id work. Each of these took an id the server had sent intact and put it through Number()/parseInt(), which rounds anything...

kamo·1mo ago
FeatureKlusterServices

Workstation-side mount script for the KAMOTEAM share

NFSv4 over the NodePort, mounted soft with a systemd automount so an unreachable cluster returns an error instead of hanging every process that touches the fold...

Kamo·1mo ago
Docskamo-internal

Record the SecurityService unauthenticated-endpoint triage

Three fixed, the rest explained. The headline number needed narrowing three times and the first two attempts were wrong the same way — enumerating helper names ...

kamo·1mo ago
ChoreSecurityService

Delete the unauthenticated /api/security/roles/test stub

A reachability probe that returned "SecurityRoleController test endpoint is working" to anybody. Nothing calls it — no reference in any service or in kamo-inter...

Kamo·1mo ago
Featurekamo-marketing

Polish video hero unit with modern animations and optimizations

- Add poster image for instant visual feedback during video load - Implement loading skeleton with pulsing animation - Start video muted (browser autoplay polic...

Kamo·1mo ago
FeatureKlusterServices

KAMOTEAM shared folder on every desktop

desktop-1 hosts /srv/kamoteam and exports it over NFSv4; every VM user gets ~/Desktop/KAMOTEAM as a symlink (via /etc/skel for new accounts and the agent for ex...

Kamo·1mo ago
FixSecurityService

Close two unauthenticated endpoints reachable from the internet

SecurityService is anyRequest().permitAll() with @EnableMethodSecurity absent, so every @PreAuthorize is inert and public is the default; APIService relays /api...

Kamo·1mo ago
August 18, 2026
OtherSecurityService

Update DomainController

Kamo·1mo ago
August 17, 2026
Otherkamo-marketing

Update Kamo Marketing Site

Kamo·1mo ago
Otherkamo-marketing

Update Kamo Marketing Site

Kamo·1mo ago
Otherkamo-marketing

Update Kamo Marketing Site

Kamo·1mo ago
Otherkamo-marketing

Update Kamo Marketing Site

Kamo·1mo ago
Otherkamo-marketing

Update Kamo Marketing Site

Kamo·1mo ago
Featurekamo-marketing

Replace hero text unit with autoplay promo video

Swap the homepage hero copy, CTAs, and stats for a looping muted video while keeping the rotating background treatment.

Kamo·1mo ago
August 16, 2026
FixKlusterServices

Stop xrdp restarts orphaning sessions and causing black screens

systemctl restart xrdp makes xrdp-sesman forget its in-memory session registry while the Xorg processes keep running. The next login cannot find the session so ...

Kamo·1mo ago
Fixkamo-internal

Let the colour palette take clicks again

The sticky's palette was a child of the title bar. Header and writing surface are siblings on the same layer, so the body — later in the DOM — paints over the h...

kamo·1mo ago
FeatureKlusterServices

Alert on OOMKills, and on the occupancy that precedes them

Nothing was watching memory. MediaService was OOMKilled every few hours for most of a day and EmailService six times, and the way anyone found out was a chat wi...

Kamo·1mo ago
FixVOIPService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

Kamo·1mo ago
FixTranslateService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

Kamo·1mo ago
FixMediaService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

Kamo·1mo ago
FixMCPGatewayService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

Kamo·1mo ago
FixRAGService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

Kamo·1mo ago
Fixkamolos

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

Kamo·1mo ago
FixKBService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

Kamo·1mo ago
FixESigService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

Kamo·1mo ago
FixDaemonService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

Kamo·1mo ago
FixEmailService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

Kamo·1mo ago
FixBillingService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

Kamo·1mo ago
FixAIService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

Kamo·1mo ago

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.

Start Free ForeverView Pricing