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
September 28, 2026
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·10h 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·18h 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·19h ago
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·5d 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·2w 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·2w 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·3w 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·3w 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·3w ago
September 4, 2026
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·3w 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·1mo 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·1mo ago
August 3, 2026
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·1mo 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·2mo ago
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·4mo 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·4mo 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·4mo 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·4mo ago
April 18, 2026
FixTranslateService

Bump kamo-shared-library to 1.4.0

Kamo·5mo ago
April 17, 2026
FixTranslateService

Fall through to next provider when translation equals source text

Bergamot was returning the source text unchanged for single-word nav items, acronym phrases (API, CRM), and compound words (Change Log) while reporting success ...

Kamo·5mo ago
FixTranslateService

Narrow bergamot to es/fr/de/pl, restore bergamot-first order

GitHub LFS files can't be downloaded with plain curl (raw URL returns the pointer not the content). Removing enru/enar from bergamot scope; those locales fall t...

Kamo·5mo ago
FixTranslateService

Narrow BergamotProvider targets to 6 pairs with available models

pt, it, uk, tr, ro, id, vi have no bergamot model source — LibreTranslate handles them. bergamot now claims: es, fr, de, pl, ru, ar.

Kamo·5mo ago
FixTranslateService

Route all translations through LibreTranslate while bergamot is offline

BergamotProvider is moved to fallback position. LibreTranslate supports all 13 locales bergamot was handling **************** so this eliminates the flood of "C...

Kamo·5mo ago
April 16, 2026
FixTranslateService

Fall through to LibreTranslate when Bergamot is unavailable

ProviderRouter now catches exceptions per provider and tries the next. BergamotProvider throws on failure instead of silently returning original text, so LibreT...

Kamo·5mo ago
FixTranslateService

Exclude ****************

Excluding SecurityAutoConfiguration leaves Actuator's **************** without an HttpSecurity bean, crashing startup. Exclude it explicitly.

Kamo·5mo ago
FixTranslateService

Add autoconfigure exclusions to k8s configmap

application.yml is for local only — k8s uses the configmap. Move the Spring autoconfiguration exclusions for JPA, Redis, Security, and OAuth2 into k8s/configmap...

Kamo·5mo ago
FixTranslateService

Exclude all transitive Spring autoconfiguration from shared library

kamo-shared-library pulls in JPA, Redis, Security, and OAuth2 starters which cause Spring Boot to attempt autoconfiguring DataSource, Hibernate, Redis/Lettuce, ...

Kamo·5mo ago
FixTranslateService

Exclude DataSource autoconfiguration

kamo-shared-library transitively pulls in JPA which causes Spring Boot to attempt DataSource autoconfiguration. TranslateService is stateless with no database, ...

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