KamoCRM

Live Change Log

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

18,447
Total Changes
6,575
Features
5,540
Fixes
30
Projects
Filter by project
All Projects18,447AIService276APIService179BillingService162ConversionService117DaemonService146DocsService240ESigService93EmailService625InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService621RAGService79SecurityService2,005TranslateService62VOIPService265VectorService11kamo-apps28kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,711kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,836kamo-signer-monorepo58kamolos115
Filter by type
All TypesBuild23CI525Chore794Docs3,287Feature6,575Fix5,540Other1,001Performance174Refactor284Revert23Style45Test175Upgrade1
September 23, 2026
FixVOIPService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·1mo ago
FixTranslateService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·1mo ago
FixRAGService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·1mo ago
FixMediaService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·1mo ago
FixConversionService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·1mo ago
FixESigService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·1mo ago
FixDocsService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·1mo ago
FixDaemonService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·1mo ago
FixKBService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·1mo ago
FixBillingService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·1mo ago
FixAIService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·1mo ago
Fixkamo-login

Call it the email on their account, not their personal one

The address a work email is pointed at is whatever the user account holds. That can be a work address an administrator set, not only a personal one. The panel n...

Kamo·1mo ago
FixSecurityService

The forgot-password hint is the account's address, whatever it is

d7ff5ed called the address on the user account "personal" everywhere: in the 409's message, the response field and the class. It is not always personal. An admi...

Kamo·1mo ago
Featurekamo-login

Point a member who typed their work email at their personal one

Forgot-password resets go to the address on the user account, usually a personal one, but members type the work address their organization gave them. SecuritySe...

Kamo·1mo ago
FeatureSecurityService

A work address on forgot-password asks for the account's own, shown masked

Members open their account with a personal address (gmail, yahoo) and are later given a work address by their organization, which is the one they remember and t...

Kamo·1mo ago
FixKlusterServices

Kamouniverse.com redirect was losing to the www.* catch-all

www.kamouniverse.com was served by the kamocrm.com marketing app instead of redirecting: kamo-marketing-route's HostRegexp(\`^www[.].+\$\`) at priority 24 match...

Kamo·1mo ago
FeatureEmailService

Move system mail and the platform org's own send domain to kamouniverse.com

platform.mail.domain now defaults to kamouniverse.com (config value, no code default change) and gates every unverified-domain org's transactional fallback From...

Kamo·1mo ago
FeatureKlusterServices

Add kamouniverse.com as a second regular-mail domain

Adds kamouniverse.com to postfix's virtual_alias_domains with a local-part-preserving regexp so any address on it lands in the identical kamocrm.com mailbox (no...

Kamo·1mo ago
FeatureKlusterServices

Forward kamouniverse.com to kamocrm.com

DNS for the apex and www now point at k1m1's public IP. Add a redirectRegex route on both entrypoints (301, path/query preserved, ACME challenge path excluded o...

Kamo·1mo ago
BuildEmailService

Depend on kamo-shared-library 1.6.1

813d175 moved the library to 1.6.1, and CI installs only the library's HEAD, so the 1.6.0 pin no longer resolves and 6084db9's image build failed. emailservice ...

Kamo·1mo ago
FixKlusterServices

The login greeter was counting as a member using the computer

rdp_sessions() collected every Xorg process with a display argument. The image installs lightdm and lightdm-gtk-greeter, so lightdm runs its own Xorg on :0 on e...

Kamo·1mo ago
FixEmailService

Catch dead domains and dead mailboxes the checks let through

Campaign 8781b848 ended with 667 bounces and 1,258 failures. Three gaps in the existing eligibility engine let them through: - DomainMailCheck asked A and AAAA...

Kamo·1mo ago
FixKlusterServices

A stale resume_offset would hibernate into the wrong place

resume_configured() checked that `resume=` and `resume_offset=` were present on the running kernel's command line. Present, not correct — and the difference is ...

Kamo·1mo ago
FixKlusterServices

Root could not read a member's idle time, so nothing ever slept

The first computer reported its idle time as 13.9, then 29.2, then 14.4 seconds over three minutes while nobody was touching it. That is not a person — it is a ...

Kamo·1mo ago
Otherkamo-internal

Add a per-org primary application to Vendors & Products

Any product with a published application can be set as the org's primary (single-active, mirroring the existing MLOS-default toggle). Publishing an org's first ...

Kamo·1mo ago
FixKlusterServices

The swap file was smaller than the check that measures it

With the restart landing, the first computer came up with resumeConfigured true and stopped on the next precondition — which turns out to be unsatisfiable by co...

Kamo·1mo ago
Otherkamo-apps

Add the application-site homepage

Renders the org's primary application at "/" instead of only at /loan/mortgage/{productId}: resolves the org from the request Host (same by-host lookup the bran...

Kamo·1mo ago
OtherSecurityService

Add per-org primary application: toggle endpoint + by-host lookup

PUT **************** designates (or clears) a product's published application as the org's primary, mirroring the existing mlos-default single-active toggle. Ne...

Kamo·1mo ago
Otherkamo-shared-library

Add a per-org primary application, and an APPLY domain alias

LeadVendorProduct gains isPrimaryApplication: at most one published application per org is "primary" and is the one kamo-apps renders at the root of the org's a...

Kamo·1mo ago
Featurekamo-internal

Select-all/deselect-all for the states lead filter, default to all

The states dimension of the campaign audience panel's and drip trigger's lead filter showed nothing checked by default, even though an unset list already means ...

Kamo·1mo ago
FixKlusterServices

A computer could never restart into being able to sleep

The first real Hosted Computer reached AWAKE and then stayed awake forever. Hibernation reported resumeConfigured: false, IdleWatcher only arms when readiness i...

Kamo·1mo ago
Featurekamo-internal

DKIM and DMARC steps, so email we send for an org is fully authenticated

Two new steps after the existing SPF one, written for a non-technical owner the same way SpfCard already is — plain language, a "why this matters" box, and neve...

Kamo·1mo ago
Fixkamo-internal

Send the lead-filter query params the backend actually parses

**************** reads marketIds/vendorIds/ vendorProductIds/states as one comma-separated param each (splitList()), but campaignAudienceApi's appendLeadFilter(...

Kamo·1mo ago
FeatureEmailService

DKIM-sign transactional mail sent as an org's own domain

Once SecurityService confirms a domain's DKIM record is published (org_domains.dkim_verified), password resets, invitations and other transactional letters sent...

Kamo·1mo ago
Fixkamo-internal

Wait long enough for a computer to finish waking

WAKE_TIMEOUT_MS was 180_000 and sat exactly on top of the VM's readiness probe, whose initialDelaySeconds was 180 and which KubeVirt renders as 190. A computer ...

Kamo·1mo ago
FeatureSecurityService

DKIM and DMARC advisory endpoints for /setup/dns

Adds two endpoints alongside the existing SPF one, so an org's transactional mail (password resets, invitations, notifications) can carry a DKIM signature and t...

Kamo·1mo ago
FixKlusterServices

Start probing at 15s, not 190 — nothing could open on its first wake

A woken computer is only reachable once its Service has endpoints, and that happens when the readiness probe on 3389 first passes. initialDelaySeconds was 180, ...

Kamo·1mo ago
Otherkamo-apps

Rename apps DNS alias to apply

The org's loan-application/patient-portal host is renamed from apps.<domain> to apply.<domain>. Update the Traefik IngressRoute's HostRegexp, the org-branding-b...

Kamo·1mo ago
OtherKlusterServices

Rename apps DNS alias to apply

auto-cert's SUBDOMAINS list, the availability health-check URL and the middleware comment now match the apps -> apply subdomain rename in kamo-internal and secu...

Kamo·1mo ago
OtherSecurityService

Rename apps DNS alias to apply

The apps.* host serves the loan-application and patient-portal pages (kamo-apps), not app downloads, so rename the alias everywhere it is enumerated: KnownAlias...

Kamo·1mo ago
Otherkamo-internal

Rename apps DNS alias to apply on the DNS setup studio

The apps.<domain> host serves the loan-application and patient-portal pages, not app downloads, so relabel the /setup/dns card and reserve "apply" instead of "a...

Kamo·1mo ago
Featurekamo-shared-library

DKIM key fields for an org domain's transactional mail

Adds **************** to org_domains, mirroring the spf_verified/spf_checked_at pair already there — so a domain can hold a generated DKIM keypair and whether i...

Kamo·1mo ago
FeatureEmailService

Narrow a campaign's all-leads audience and drip triggers by market, vendor, product and state

The campaign editor's "All Leads" box and the drip trigger's lead filter could only match every lead the sender can see, with no way to target a market, vendor,...

Kamo·1mo ago
Featurekamo-internal

**************** filters on campaign leads and drip triggers

The campaign editor's "All leads" audience source had no way to narrow who it reached beyond visibility scope. Adds a filter panel (Market -> Vendor -> Vendor P...

Kamo·1mo ago
FixKlusterServices

Xorg may not start from a remote session, so no computer opened

Guacamole connected, authenticated, and was hung up on: guacd: Security mode: Negotiate (ANY) guacd: Loading keymap "en-us-qwerty" guacd: RDP serve...

Kamo·1mo ago
Fixkamo-internal

The nav opens a computer, it does not ask for a password

Being signed in to Kamo is the authentication that matters; asking again at the door of your own machine is a password prompt for its own sake. ComputeService m...

Kamo·1mo ago
FixKlusterServices

Traefik could not see the gateway, and it served at the wrong path

Opening a computer landed on the redirect service's fallback page — "the request reached the fallback page instead of being redirected. Check the Host header." ...

Kamo·1mo ago
Fixkamo-internal

Opening a computer with no login yet asks for the password

Clicking a computer opened a browser tab that closed again, and said nothing. openHostedComputer opens its tab synchronously inside the click, because a popup ...

Kamo·1mo ago
FeatureKlusterServices

An org's own computers host gets a certificate and a route

computers is a standard alias now — every white-label org is told to point one at Kamo on /setup/dns, the way it points meet and sign — so two things had to fol...

Kamo·1mo ago
Featurekamo-internal

The computers record on the DNS studio

One more card on /setup/dns, so an org configuring its domain is told about the host its Hosted Computers open on. Without it an org could follow the page to th...

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