KamoCRM

Live Change Log

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

17,374
Total Changes
5,891
Features
5,258
Fixes
30
Projects
Filter by project
All Projects17,374AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,822TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,321kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,631kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,891Fix5,258Other993Performance165Refactor278Revert23Style42Test159Upgrade1
October 22, 2026
PerformanceTranslateService

Background work uses three engine slots per pod and is sent as low priority

One background slot per pod left three of the engine's four streams idle during a dictionary sync. Background callers (a wait above the 100-second default: the ...

Kamo·23h ago
FeatureTranslateService

One engine, MADLAD-400, for every language pair

Replaces the LibreTranslate, Bergamot and IndicTrans providers with MadladProvider (klusterservices madlad/). Their languages did not overlap, and a pair none o...

Kamo·1d ago
FixTranslateService

Never send an engine a text longer than it takes

IndicTrans answers a request over 20,000 characters with a permanent HTTP 413, so a long help article could never be translated into Tamil; a LibreTranslate wor...

Kamo·1d ago
October 7, 2026
FixTranslateService

One deadline per request, never retry a timeout, and queue for LibreTranslate here

LibreTranslate keeps translating a request after its client stops waiting, so every timeout was work done for no one. Measured over six hours on 2026-10-07: 46 ...

Kamo·2w ago
October 5, 2026
FixTranslateService

A long text that lost a protected name is translated whole, not piece by piece

Rebuilding a reply around the names takes one engine call per piece. For a help article that is dozens of calls, past KBService's 120-second read timeout, so a ...

Kamo·2w ago
FixTranslateService

Ask LibreTranslate again when it copies a Title-Case label

Argos reads a short capitalised label as a name and hands it back untranslated: live on 2026-10-05, en->tr "Delete" -> "Delete" and "Cancel" -> "Cancel", en->ar...

Kamo·2w ago
FixTranslateService

Never send a brand name to an engine, for every caller

The es locale rendered RingCentral as "RingConexión central" and JustCall as "SóloCall"; zh read "AI Members" as Amnesty International members. The dictionary's...

Kamo·2w ago
September 28, 2026
FeatureTranslateService

Send en->ta to Kamo IndicTrans, and log which engine answered

No provider claimed en->ta (LibreTranslate lists no Tamil, Bergamot serves German only), so the router returned the English source for every Tamil request, and ...

Kamo·3w ago
FixTranslateService

Guard ampersands for every spelling of Spanish, keyed on the resolved language

guardAmpersands compared the caller's raw targetLang with {"es"}, so "ES", "es-419" or "es_MX" reached the same en->es model without the guard and came back wit...

Kamo·3w ago
FixTranslateService

Keep ampersands out of LibreTranslate's en->es model, which quotes or truncates them

Moving en->es to LibreTranslate (27888ca) exposed a fault in its model: a spaced ampersand comes back as a double quote ("Billing & Payments" -> 'Billing " Paym...

Kamo·3w ago
DocsTranslateService

Say why Bergamot decoders instead of falling back, and cite each sample

A failed LibreTranslate call leaves the caller its English; the dictionary sync writes that English and does not resend it, so a64b00e's "retried on the next sy...

Kamo·3w ago
FixTranslateService

Send en->es, en->fr and en->pl to LibreTranslate, not Bergamot's tiny models

Bergamot's enes, enfr and enpl models are student.tiny11 builds decoded with beam-size 1, and they write words that do not exist: the charter message "Ask an ad...

Kamo·3w ago
September 25, 2026
September 23, 2026
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·4w ago
September 16, 2026
OtherTranslateService

Liveness probe on /actuator/health/liveness, not the DB-aware aggregate

The aggregate /actuator/health includes the DataSource indicator, so restarting the database failed liveness on every pod at once and restarted the whole platfo...

Kamo·1mo ago
September 13, 2026
FixTranslateService

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
FixTranslateService

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 5, 2026
FixTranslateService

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·1mo ago
FixTranslateService

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·1mo ago
FixTranslateService

Stop working on translations whose caller has already given up

Three attempts of ninety seconds plus backoff is up to 274 seconds of work per translation, and every caller we have gives up long before that — KBService's cli...

Kamo·1mo ago
September 4, 2026
FeatureTranslateService

Run two pods

The one @Scheduled method here, **************** populates a map held in this pod's own memory. It is supposed to run on every pod, there is nothing shared for ...

Kamo·1mo ago
FixTranslateService

Let a rollout finish what the old pod was doing

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·1mo ago
August 25, 2026
ChoreTranslateService

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·1mo ago
August 16, 2026
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·2mo ago
August 12, 2026
FixTranslateService

Route translations INTO English, not just out of it

Both providers gated supports() on "en".equals(sourceLang), so every inbound pair was decoderd before a provider was ever asked. ProviderRouter treats "no provi...

Kamo·2mo ago
August 9, 2026
CITranslateService

Retry the shared-library build, which the LAN uplink keeps corrupting

Three builds died today on "Tag mismatch" pulling a jar — and the mirror added an hour ago did not help, because kbservice, mcpgatewayservice and ragservice hit...

Kamo·2mo ago
CITranslateService

Mirror Maven Central through the Google GCS copy

Every Docker stage starts from a cold ~/.m2 and refetches the whole dependency tree, so Central sees the full weight of every concurrent service build. It answe...

Kamo·2mo ago
August 3, 2026
ChoreTranslateService

Commit outstanding work in progress

Staged and committed as-is so nothing is left uncommitted in the working tree. 31 files changed, 691 insertions(+)

Kamo·2mo ago
FixTranslateService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
July 8, 2026
FixTranslateService

Constant-time internal-auth secret compare (timing oracle)

Replace String.equals with MessageDigest.isEqual so response latency cannot leak the X-Internal-Auth shared secret byte-by-byte. Fleet-wide sweep of the copy-pa...

Kamo·3mo ago
July 1, 2026
ChoreTranslateService

Rebuild against latest kamo-shared-library

Sage·3mo ago
June 13, 2026
May 16, 2026
May 10, 2026
FixTranslateService

Bump LibreTranslate per-call timeout to 90s; keep single-translate backward-compat

Two follow-ups to the retry/failedKeys change: 1. Per-call request timeout was 30s. Production has runtime callers (chat, notifications, etc.) hitting the s...

Kamo·5mo ago
FixTranslateService

Retry transient errors and surface failed keys (don't fake passthrough)

Two failure modes were indistinguishable in the response, so the script couldn't tell them apart and kept "translating" the same keys to English on every sync r...

Kamo·5mo ago
FixTranslateService

Alias zh -> zh-Hans so en->zh actually translates

LibreTranslate's /languages endpoint advertises Chinese under the region-specific codes "zh-Hans" and "zh-Hant" (never bare "zh"), even though POST /translate a...

Kamo·5mo ago
May 9, 2026
FixTranslateService

Drive supported targets from /languages, not stale list

The hardcoded SUPPORTED_TARGETS claimed sw/ta/etc. were supported, but no public argos packages exist for those, so every en->sw / en->ta translation request hi...

Kamo·5mo ago
April 29, 2026
CITranslateService

Scope concurrency to build jobs, not Kubernetes deploys

Workflow-level concurrency serialized the whole pipeline (including kubectl rollouts). Move the group to the build job only so deploy jobs from different runs c...

Kamo·5mo ago
April 28, 2026
ChoreTranslateService

Trigger redeploy for shared library update

Kamo·5mo ago
ChoreTranslateService

Trigger redeploy for shared library update

Kamo·5mo ago
April 27, 2026
ChoreTranslateService

Trigger redeploy for shared library update

Kamo·5mo ago
April 21, 2026
April 20, 2026
April 19, 2026
ChoreTranslateService

Rebuild for kamo-shared-library update (CREATE_CHILD_ORG right + apply-to flags)

Pulls the new RoleRightType.CREATE_CHILD_ORG (id 131), the three apply-to flags on ChildOrgSecurityModel, the two 13-arg service overloads, and the AppliedModel...

Kamo·6mo ago
ChoreTranslateService

Rebuild for kamo-shared-library update (appConfig upsert-only fix)

Pulls the hardened **************** that no longer deletes appConfig rows whose service types are absent from the caller's payload — prevents silent data loss w...

Kamo·6mo ago
ChoreTranslateService

Rebuild for kamo-shared-library update (effective-feature resolver)

Picks up the new AppliedModelEnforcementService methods (computeAvailabilitiesMap, isAppEffectivelyEnabled, getEffectivelyEnabledAppTypes, computeEffectiveFeatu...

Kamo·6mo ago
ChoreTranslateService

Bump kamo-shared-library to 1.5.0 for applied-model enforcement

Brings this service onto kamo-shared-library 1.5.0 so it picks up the new AppliedModelEnforcementService, ChildOrgSecurityModelAppConfig entity, ServiceAvailabi...

Kamo·6mo ago
ChoreTranslateService

Rebuild for kamo-shared-library update (runtime force rules + DEFAULT fallback in MemberRightsAppliedService)

Triggers a rebuild so this service picks up the updated **************** that applies template force rules and DEFAULT-template fallbacks on top of the existing...

Kamo·6mo ago
ChoreTranslateService

Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)

Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...

Kamo·6mo ago
April 18, 2026
FixTranslateService

Bump kamo-shared-library to 1.4.0

Kamo·6mo 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