KamoCRM

Live Change Log

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

18,391
Total Changes
6,526
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,391AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService619InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,691kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,824kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,526Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
November 10, 2026
FixDaemonService

The retail sync job calls the orchestrator's scheduled entry point again

**************** became syncNow(UUID, trigger) in the shared library (05bd1ad5, Nov 8), which stopped DaemonService compiling - and so deploying - since then.

KamoΒ·1d ago
November 8, 2026
FeatureDaemonService

AntivirusBaselineJob ticks ConversionService's pre-Antivirus baseline every 5 minutes

POST **************** (X-Internal-Auth); ConversionService runs one bounded, throttled page in the background under its own lease and answers at once.

KamoΒ·3d ago
November 6, 2026
November 1, 2026
FeatureDaemonService

Intake records text consent where a source counts its field, and a rollup back-fill job

The back-fill has no schedule. It reads leads from lead_communications, calls the same hydrate a lead's page does, and writes only the rollup. hydrated_at is it...

KamoΒ·1w ago
FeatureDaemonService

Tick automation-service every 30 seconds

KamoΒ·1w ago
FeatureDaemonService

Keep the consent proof a lead source sends

An intake mapping can target consent.<key>. The values are written once the lead exists, on a new lead or on the lead the payload merged into, with the payload ...

KamoΒ·1w ago
October 25, 2026
FeatureDaemonService

MeridianLink poll applies to loan applications, not leads

Changed loans are matched through MLOS_LOAN_LOS_LINKS and sent to securityservice by connection; unknown loans are adopted only where the LO unit maps to a sing...

KamoΒ·2w ago
October 18, 2026
FixDaemonService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

KamoΒ·3w ago
October 14, 2026
FeatureDaemonService

Daemon jobs for the IoTService tick (every 60 s) and nightly retention purge

IoT SP01 Task 30. Landed after SP02's 75007b2, which already mounts iot-internal-auth, sets iot.service.url and creates IotJobClient with a generic post(job, pa...

KamoΒ·3w ago
October 6, 2026
FeatureDaemonService

Intake job maps through the shared engine, with team-member assignment

LeadIntakeProcessingJob builds each lead with kamo-shared-library's LeadRequestMapper instead of its own field switch and transform copy, so automated imports a...

KamoΒ·1mo ago
FixDaemonService

Intake makes a lead only of a person, once per person, with no placeholder names, assigned as mapped

Harmony Home Loans pointed every JustCall webhook at its "Justcall" intake endpoint, and the job made every event a lead: 287 in three days. 247 have no name, c...

KamoΒ·1mo ago
FixDaemonService

Leads created by the intake job are indexed, so their calls, texts and emails link to them

LeadIntakeProcessingJob creates every lead that arrives through the intake endpoint, via LeadService.createLead, which indexes the lead's phones and addresses (...

KamoΒ·1mo ago
September 28, 2026
FixDaemonService

The scenery sampler identifies as kamouniverse.com; the steward test follows the platform console

- FaunaClient's User-Agent to GBIF named https://kamocrm.com as the product's contact URL; it names https://kamouniverse.com, the platform's primary apex. - S...

KamoΒ·1mo ago
September 27, 2026
FixDaemonService

Place the KamoAI voice cron keys clear of SP05's and SP10's

SP05's Tool Plane jobs add their cron fields after leadLedgerReconcileCron and their ConfigMap entries after kamoai-hire-steps, and SP10's tick adds its field a...

KamoΒ·1mo ago
FeatureDaemonService

KamoAI voice SIP sync and retention jobs

kamoaiVoiceSipSyncJob POSTs kamoai-service's X7 **************** every minute, so LiveKit's SIP trunks and dispatch rules follow the AI lines and who is ACTIVE;...

KamoΒ·1mo ago
FeatureDaemonService

KamoAI minute tick job (SP10)

KamoAiShiftTickJob POSTs kamoai-service's K2 tick (/api/kamoai/internal/tick) every minute with X-Internal-Auth = KAMOAI_INTERNAL_SECRET, mapped onto kamoai.int...

KamoΒ·1mo ago
September 25, 2026
FeatureDaemonService

Tick KBService's due-task sweep every minute

KamoΒ·1mo ago
FixDaemonService

Pin DaemonService to k3m1, where the earthdata drive lives [skip ci]

k1m1 reaches /mnt/worldchunks only through a hard NFS mount of k3m1. That mount has hung, so the kubelet on k1m1 cannot stat the earthdata hostPath. A rollout t...

KamoΒ·1mo ago
September 24, 2026
OtherDaemonService

Own NATS login, Redis login, KamoAI secret

KamoΒ·1mo ago
September 23, 2026
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
PerformanceDaemonService

Fold and recount the public changelog's commit-log ledger

securityservice's create_commit_log_ledger.sql (applied by hand as the owner) adds commit_log_counts / commit_log_count_deltas: a total per (project, commit typ...

KamoΒ·1mo ago
ChoreDaemonService

No live credentials in application.yml defaults

The local-development defaults carried the database OWNER's password (${DB_PASSWORD:<literal>}), and apiservice/securityservice also the live changelog webhook ...

KamoΒ·1mo ago
FixDaemonService

No job overlaps itself, and no HTTP call can hang a worker forever

Quartz here runs 10 in-memory worker threads on one replica. 17 of the 24 jobs had no @DisallowConcurrentExecution, so a run that overran its interval started a...

KamoΒ·1mo ago
FixDaemonService

The lead-intake counters join the ledgers the daemon folds and recounts

The intake endpoints' received / imported counters are now a ledger (securityservice create_lead_intake_ledger.sql, applied 2026-09-22): a trigger on lead_intak...

KamoΒ·1mo ago
FeatureDaemonService

Fold the lead ledgers every 30 s and recount them nightly; the job trigger needs the cluster secret

The lead ledgers (securityservice create_lead_ledgers.sql, applied 2026-09-22) replace COUNT(*) over a 796k-lead pool and over lead_credits with maintained tota...

KamoΒ·1mo ago
September 17, 2026
OtherDaemonService

Release idle Hikari connections; liveness off the DB-aware health

Same changes the other services got on 2026-09-16, held back until the lead import this service was running finished. Keep the pool maximum but let idle connect...

KamoΒ·1mo ago
September 16, 2026
FixDaemonService

Skip enabled connections that are not filled in yet

An enabled MERIDIAN_LINK connection with no instance URL, appCode or secret collapsed to a null|null poll-unit and failed token exchange every tick, logging ERR...

KamoΒ·1mo ago
FixDaemonService

Read the public-chat secret by its own key

This pod also mounts mlos-internal-auth, whose INTERNAL_AUTH_SECRET env var relaxed-binds onto internal.auth.secret and outranks the ConfigMap. Every caller rea...

KamoΒ·1mo ago
PerformanceDaemonService

Create intake leads concurrently and claim larger batches

The job created one lead at a time from a 500-row claim, ~230 leads/min at best, which turns a large vendor list into days of backlog. It now claims 2000 payloa...

KamoΒ·1mo ago
September 13, 2026
FixDaemonService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

KamoΒ·1mo ago
FixDaemonService

Restart when a same-commit rebuild leaves pods on the old digest [skip ci]

The rollout step tried to detect a same-commit rebuild by comparing the Deployment's image reference before and after `set image`. "Apply manifests" has already...

KamoΒ·1mo ago
September 10, 2026
FixDaemonService

Link the steward to the console the org can reach

StewardRecipientResolver built the steward link from the org's first domain row whatever its state, so an org still setting up its white-label domain was mailed...

KamoΒ·2mo ago
September 5, 2026
FixDaemonService

Stop reporting a catalog bump as a missing SystemConfiguration row

Three scheduled jobs read a row and skip the whole tick if they cannot. All three were skipping ticks during schema changes, and two of them said so in a way th...

KamoΒ·2mo ago
FixDaemonService

Prove the deploy by digest, not by tag

The preceding commit stops `set image` being a silent no-op. This asserts the outcome: after the rollout, the tag is resolved to a digest at the registry and th...

KamoΒ·2mo ago
FixDaemonService

A rebuild of the same commit deployed nothing and reported success

The image is tagged with the commit SHA, so rebuilding the same commit produces an identical image reference. `kubectl set image` then changes nothing, the Depl...

KamoΒ·2mo ago
September 4, 2026
DocsDaemonService

Declare why this one stays on Recreate with no preStop

KlusterServices now audits every Deployment in kamo on each deploy and fails on Recreate, a missing preStop hook, a missing readiness probe or no minReadySecond...

KamoΒ·2mo ago
FixDaemonService

Fail a bad rollout instead of reporting it green

Deploys replaced the only pod of each service with nothing to catch the requests in flight. Three settings, applied across the fleet: - preStop sleeps 10s befo...

KamoΒ·2mo ago
September 2, 2026
FeatureDaemonService

Tick SecurityService's scheduled-report sweep

Every five minutes. A schedule is set to the minute, so a finer tick buys nothing a member would notice and a coarser one makes an 8:00 report arrive at 8:15. ...

KamoΒ·2mo ago
August 25, 2026
ChoreDaemonService

Pin kamo-shared-library 1.6.0

The library moved to 1.6.0 while every consumer stayed on 1.5.0. Consumer CI builds the library from a fresh clone into a cold ~/.m2 and ci-settings.xml mirrors...

KamoΒ·2mo ago
August 21, 2026
DocsDaemonService

Record that the unprocessed claim is now batched

getUnprocessedPayloads() returned every unprocessed payload, and this job holds each one's raw and flattened text for its whole run β€” so its memory was a functi...

KamoΒ·2mo ago
August 20, 2026
FixDaemonService

Mark payload outcomes by column, not through the entity

payloadRepo.save() on a detached payload makes Hibernate walk its graph β€” organization pulls in org_domains β€” and that read lands in a transaction that has alre...

KamoΒ·2mo ago
FixDaemonService

Stop overlapping runs importing the same payloads twice

The trigger fires every minute and each run claims work by selecting payloads still in RECEIVED. A backlog that takes longer than a minute therefore still had R...

KamoΒ·2mo 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