KamoCRM

Live Change Log

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

17,395
Total Changes
5,910
Features
5,260
Fixes
30
Projects
Filter by project
All Projects17,395AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,830TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,328kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,637kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,910Fix5,260Other993Performance165Refactor278Revert23Style42Test159Upgrade1
April 16, 2026
Featurekamo-marketing

Expand messages/en.json with full page body copy coverage

Grew the translation catalogue from 172 keys (~12 namespaces) to 300+ keys across 26 namespaces, extracting every user-visible hardcoded English string from all...

Kamo·6mo ago
Fixkamo-marketing

Resolve DYNAMIC_SERVER_USAGE 500 errors and missing calculator route

- Add force-dynamic to [locale]/layout.tsx (getMessages() uses headers() internally) - Remove generateStaticParams from [kbSection]/page.tsx (KB content is dyna...

Kamo·6mo ago
Featurekamo-shared-library

Add translation entities and repositories for CommitLog, KbArticle, SubscriptionPlan

- CommitLogTranslation + CommitLogTranslationId (PK: commit_log_id, locale) - KbArticleTranslation + KbArticleTranslationId (PK: article_uid, locale) - Subscrip...

Kamo·6mo ago
Featurekamo-marketing

Add tooltips and fix scroll behaviour on language selector

- Add englishName to LOCALE_CONFIG for all 22 locales - Add title={englishName} to each language button (desktop + mobile) so hovering shows the English name ...

Kamo·6mo ago
FixKlusterServices

Remove --load-only restriction from LibreTranslate

All needed language packages are pre-installed on the hostPath volume. --load-only was preventing some packages from loading. Without the flag, LibreTranslate l...

Kamo·6mo ago
FixKlusterServices

Use startupProbe for LibreTranslate to handle long model downloads

startupProbe with 60 attempts x 30s = 30min startup window for initial model downloads. After startup completes, normal liveness and readiness probes take over ...

Kamo·6mo ago
FixKlusterServices

Restrict LibreTranslate to only load supported language models

Use --load-only with the 22 supported language codes instead of downloading all available models (~hundreds of GB). Removes --update-models flag which would dow...

Kamo·6mo ago
FixKlusterServices

Remove invalid --load-awesome-ai-models flag from LibreTranslate

Flag does not exist in current libretranslate image. Replace with --update-models to ensure language packs are downloaded on startup.

Kamo·6mo ago
FixKlusterServices

Add LibreTranslate permission init container, scale Bergamot to 0

LibreTranslate was crashing with PermissionError on packages subdir. Added busybox init container to mkdir + chmod 777 the mounted hostPath before the main cont...

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

Deploy LibreTranslate and Bergamot in workflow

The manifests were committed but never wired into the deploy steps. Add kubectl apply for both services on K1M1 and K2M1.

Kamo·6mo ago
Fixkamo-marketing

Widen language selector dropdown to prevent horizontal scrollbar

260px was too narrow for entries like 'Bahasa Indonesia'. Increase to 310px and add overflow-x: hidden to eliminate the scrollbar entirely.

Kamo·6mo ago
Fixkamo-marketing

Port-forward TranslateService to reach it from CI runner

The Forgejo runner runs on k0m1 which cannot resolve .svc.cluster.local DNS. Use kubectl port-forward to tunnel kamowstranslate-service:80 to localhost:18080 du...

Kamo·6mo ago
Fixkamo-marketing

Remove pre-i18n app/(pages)/ and app/page.tsx

These were accidentally restored by git checkout -- app/ during a previous vendor fix. Both old and new route structures existing caused Next.js to try generati...

Kamo·6mo ago
Chorekamo-marketing

Upgrade Dockerfile to node:24-alpine

ships npm 10 which can't read the lock file and fails npm ci with a missing @swc/helpers@0.5.21 error.

Kamo·6mo ago
CIkamo-marketing

Bump Node.js to 24 to match local dev environment

npm ci under Node 22 / npm 10 fails because the two versions resolve transitive deps (e.g. @swc/helpers) to different versions.

Kamo·6mo ago
FixTranslateService

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

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

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

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIkamo-marketing

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIkamo-login

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIkamo-internal

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

kamo·6mo ago
CISecurityService

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIRAGService

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIMediaService

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIMCPGatewayService

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIKlusterServices

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIKBService

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIEmailService

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIDocsService

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIDaemonService

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIAPIService

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CIAIService

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
CITranslateService

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
Chorekamo-marketing

Commit package-lock.json with next-intl and tsx dependencies

next-intl and tsx were installed but package-lock.json was not committed alongside the i18n implementation, causing Docker builds to fail with Cannot find modul...

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

Replace offer badge with language selector in nav

Add a 2-column flag+name dropdown to the header navigation allowing users to switch between all 22 supported locales. Locale switching uses next-intl router.rep...

Kamo·6mo ago
Featurekamo-shared-library

Restore removed languages with translationSupported field

Add translationSupported boolean to LanguageType enum. Restore URDU, MARATHI, TELUGU, and GUJARATI (translationSupported=false). All 22 previously supported lan...

Kamo·6mo ago
Fixkamo-shared-library

Replace removed DocumentNotFoundException with ImagingException in ImageService

DocumentNotFoundException was deleted as part of the Document entity removal but ImageService still referenced it in 9 places. Replaced with the existing Imagin...

Kamo·6mo ago
FixDocsService

Gracefully cancel superseded reconversion jobs on rapid saves

When a document is saved multiple times quickly, each save registers its ImgDat UUID in a ConcurrentHashMap. The async reconversion task checks this at 6 checkp...

Kamo·6mo ago
Featurekamo-internal

Add Open in Docs button for editing documents, spreadsheets, presentations

- New "Open in Docs" button (EditNote icon) in doc manager Actions column for .docx, .xlsx, .pptx, .odg, .doc, .xls, .ppt files - Opens document in Docs edito...

kamo·6mo ago
FeatureDocsService

Rewrite WOPI/Docs to use Img/ImgDat, add Open in Docs endpoint

- WopiController now uses imgId (Long) instead of Document fileId (String) - DocumentService creates Img + ImgDat records instead of Document records - WOPI Che...

Kamo·6mo ago
Featurekamo-shared-library

Remove standalone Document entity — all docs now use Img/ImgDat imaging system

The Document entity, DocumentRepository, and DocumentNotFoundException are removed. DocsService WOPI and Docs integration now operates entirely through the Img ...

Kamo·6mo ago
Featurekamo-internal

Build integrated auto lead imports UI with full endpoint management

Complete rewrite of LeadAutoImportManager with production-ready features: - Endpoint CRUD with unique webhook URLs for 3rd-party lead vendors - Copy-to-clipboar...

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