KamoCRM

Live Change Log

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

18,406
Total Changes
6,537
Features
5,540
Fixes
30
Projects
Filter by project
All Projects18,406AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService622InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,997TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,699kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,826kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,537Fix5,540Other1,001Performance174Refactor282Revert23Style45Test175Upgrade1
May 12, 2026
Fixkamo-internal

Resolve subdomain-tenant org bucket to its own MinIO folder

getThemePath() was reducing the hostname to apex+tld (mainDomain.tld) for both the themed host AND the bucket folder. For subdomain tenants like gnosia.demo.kam...

kamo·6mo ago
Fixkamo-internal

Stop clipping dark-variant color inputs in ModernColorGroup

Color picker rows had a hardcoded 280px wrapper inside a 1fr 1fr grid with overflow:hidden, so the input was chopped on narrow columns. Use flex:1 + minWidth:0 ...

kamo·6mo ago
Fixkamo-internal

Treat thrown subscription stub as no-subscription, not error

The legacy getCurrentSubscription stub throws by design so callers fall back to the ungated path. StatsManager was surfacing the throw as "Could not load subscr...

kamo·6mo ago
Fixkamo-internal

Return empty meters instead of null from getCurrentUsage

StatsManager rendered <UsageMeters usage={null}> when the legacy stub resolved to null, crashing on usage.meters. Return { meters: [] } so the component takes t...

kamo·6mo ago
Fixkamo-internal

Gate My Account slide-out section on CONFIGURE_SYSTEM

Hide the "My Account" menu from members who lack CONFIGURE_SYSTEM so they don't see links (Stats & Costs, Apps & Features, Branch Types, Automation Streams) tha...

kamo·6mo ago
Otherkamo-internal

Revert "fix(account-settings): auto-route child-org owners to their permitted org"

This reverts commit ****************

kamo·6mo ago
Fixkamo-internal

Auto-route child-org owners to their permitted org

When /settings/account loads for a user who lacks CONFIGURE_SYSTEM on the current org, the previous behavior was a silent redirect to /settings — a dead-end for...

kamo·6mo ago
Fixkamo-internal

Use full FQDN, not eTLD+1, when fetching org by domain

registrableDomainFromAlias strips any multi-label subdomain (e.g. "gnosia.demo.kamocrm.com") down to its eTLD+1 ("kamocrm.com"). That was fine for the API base ...

kamo·6mo ago
Fixkamo-internal

Don't show global loading overlay for client-handled forms

NavigationInterceptor's submit listener treated any form whose form.action was truthy and method=get as a navigation, and called setLoading(true) on the global ...

kamo·6mo ago
May 11, 2026
Fixkamo-internal

Wrap toolbar and shrink search/date so New Event stays on-page

Toolbar packed too much fixed-width content into a single non-wrapping flex row; with the parent main area set to overflow: hidden, the right section (New Event...

kamo·6mo ago
Fixkamo-internal

Read *** from master after session refresh to avoid replica lag

The previous fix had /api/user-info call /api/security/session/refresh before reading Redis, but the read went through readKsemJsonFromRedisWithRetry which uses...

kamo·6mo ago
Fixkamo-internal

Track tab by name + refresh session before reading user-info

Two related navigation bugs that both manifest as "the wrong tab opens": 1. SettingsView tracked the active tab by *index*. childrenArray can recompose ...

kamo·6mo ago
Fixkamo-internal

Gate Docs tab on VIEW_DOCUMENTS / MANAGE_DOCS_SETTINGS

Mirrors the Email + Phone tab gates. A member without VIEW_DOCUMENTS (basic user-level access) and without MANAGE_DOCS_SETTINGS (admin) no longer sees the Docs ...

kamo·6mo ago
Fixkamo-internal

Gate Email + Phone tabs on rights, gate VOIP config edit, periodic session refresh

Adds the missing right-gating so a basic Member without ACCESS_MAIL / ACCESS_VOIP can no longer see the Email & Mailbox or Phone Settings tabs on their own acco...

kamo·6mo ago
May 10, 2026
Fixkamo-internal

Align Type/Name/TTL fields by moving TTL hint to a tooltip

The TTL field rendered its 'use 1 hour if your registrar shows a dropdown' hint as a paragraph below the input. That column ended up taller than Type and Name, ...

kamo·6mo ago
Fixkamo-internal

SSL card stops claiming records are verified before they are

The SSL card had two states (installing / complete) so the "installing" copy ("All required records are verified, we're installing the certificate now") was sho...

kamo·6mo ago
Fixkamo-internal

Remove header gap, ungate subdomains, drop registrar picker

- Move DnsProvisioningPanel inside DnsSetupStudio so the empty px:4 pt:3 wrapper around it (which created a band of whitespace above the hero when the panel...

kamo·6mo ago
Featurekamo-internal

Unified DNS Setup Studio with inline help per record

Replaces the split DnsProgressView + AliasStatusTable + ManualDnsGuide trio with a single guided experience: each TXT/CNAME record now lives in one card alongsi...

kamo·6mo ago
Fixkamo-internal

Land on parent's /setup/dns after org create

The wizard previously redirected the creator to **************** right after POST /api/security/org returned. The new org's domain has no DNS yet, so the redire...

kamo·6mo ago
Chorekamo-internal

Retrigger build to pick up fully-translated dictionary

The deployed image ec1a3dad was built before kamo-translation-dictionary zh.json crossed from ~0.06% Chinese to 99.9% Chinese. The build step copies messages/ f...

kamo·6mo ago
May 9, 2026
Otherkamo-internal

Wire t() into remaining hardcoded UI strings across ~88 files

Replaces hardcoded English with next-intl t() calls in places the prior conversion missed: DataGrid headerName values (~238 across pipeline, account, leads, doc...

kamo·6mo ago
Featurekamo-internal

Render inline cid: images via the new EmailService endpoint

When a message exposes inline parts (each carrying a contentId), the email renderer now rewrites <img src="cid:..."> references at mount time to ***************...

kamo·6mo ago
Fixkamo-internal

Broken inline images, attachment downloads, and view-pane flicker

- Strip <img> with cid: src in the email sanitizer so embedded images don't render as a flickering broken-image icon, and hide images that fail at runtime v...

kamo·6mo ago
Chorekamo-internal

Trigger CI to regenerate translations

kamo·6mo ago
May 6, 2026
Otherkamo-internal

Fix doubly-namespaced t() calls in clubhouse member list

Calls were resolving to **************** instead of **************** — switch to use the properly-scoped tMember handle for searchPlaceholder, searchAriaLabel, ...

kamo·6mo ago
May 4, 2026
Chorekamo-internal

Trigger redeploy

kamo·6mo ago
Otherkamo-internal

Translate remaining UI strings outside main batches

NavInfo (placeholder name), NavTab (Print/Share buttons), NotImplemented (message), SecureIFrame (iframe title), useUserInfo HOCs (Loading/Please log in/permiss...

kamo·6mo ago
Otherkamo-internal

Translate POS6 (10 final files) — pos batch complete

97 strings across MarketCardGrid, MarketAgreementTemplates, MarketRentalAssets, MarketSubscriptionPlans, and 6 SubscriptionPlan* tabs (AddOns, Bundles, Details,...

kamo·6mo ago
Otherkamo-internal

Translate provider help (10 setup guides)

117 strings across BigCommerce, Ecwid, Magento, OpenCart, PrestaShop, Shift4Shop, Shopify, Squarespace, Wix, WooCommerce setup guides. Step text uses t.rich() w...

kamo·6mo ago
Otherkamo-internal

Translate POS4 ****************

74 strings. **************** **************** keys.

kamo·6mo ago
Otherkamo-internal

Translate POS3 ****************

92 strings. **************** **************** keys.

kamo·6mo ago
Otherkamo-internal

Translate MarketProducts + MarketCustomers

118 strings. **************** marketCustomers}.* keys with ICU plural patterns and refactored SUB_VIEWS/ATTR_TYPE_LABELS to hold translation keys instead of lit...

kamo·6mo ago
Otherkamo-internal

Translate MarketTaxShipping + MarketDiscounts

151 strings (78+73). **************** marketDiscounts}.* keys with ICU plural patterns for method/entry counts. DiscountTypeBadge refactored from helper into su...

kamo·6mo ago
Otherkamo-internal

Translate E5 (16 small files) — email batch complete

61 strings. **************** **************** **************** **************** signatureTemplateSelector}.* keys. All 27 email files now at 0 audit hits.

kamo·6mo ago
Chorekamo-internal

Trigger redeploy

kamo·6mo ago
Otherkamo-internal

Translate E4 ****************

62 strings. **************** **************** keys.

kamo·6mo ago
Otherkamo-internal

Translate E3 ****************

74 strings. **************** domainManager,caldavPersonal}.* keys.

kamo·6mo ago
Otherkamo-internal

Translate E2 ****************

92 strings. **************** **************** keys.

kamo·6mo ago
Otherkamo-internal

Translate EmailTemplateEdit (114 strings)

Largest file in the email batch. Refactored module-level legalTextOptions constant into buildLegalTextOptions(t) function for runtime translation. Inner EmailFr...

kamo·6mo ago
Otherkamo-internal

Translate P5 (6 medium tabs)

96 strings across VerticalSection, EngagementsTab, RetailFulfillmentTab, RetailCustomersTab, VendorsTab, SignupsTab. Uses t() with **************** ************...

kamo·6mo ago
Otherkamo-internal

Translate Commitments tab

34 strings. Uses t() with **************** keys.

kamo·6mo ago
Otherkamo-internal

Translate P3 (Applications+Dashboard) + P4

7 files. P3 partial — Commitments reverted (rate-limit kill mid-batch), Applications and Dashboard salvaged with 0 audit hits. P4 complete (ServiceRequests, Ret...

kamo·6mo ago
Otherkamo-internal

Translate WorkOrders + Procurement tabs

116 strings. Reused existing **************** procurementTab keys aggressively plus common.fields/actions/states.

kamo·6mo ago
Otherkamo-internal

Translate Bookings + Orders tabs

101 strings. Reused existing **************** keys plus common.* (status, dates, fields, actions).

kamo·6mo ago
Otherkamo-internal

Translate 5 essential settings managers

206 strings across DepartmentManager, JobTitleManager, LabelManager, SecurityRoleManager, SubdomainBranchesDialog. Uses t() with **************** **************...

kamo·6mo ago
Otherkamo-internal

Translate 6 security settings tabs

195 strings across APIManager, AccessBlockManager, OAuth2Manager, SuspiciousManager, SystemAccessLogsManager, SystemDebug. Uses t() with **************** access...

kamo·6mo ago
Otherkamo-internal

Translate 7 account settings components

130 strings across BranchSetupManager, DefaultRoleTemplatesSection, FeaturesManager, RelationshipManager, **************** **************** StatsManager. Uses t...

kamo·6mo ago
Otherkamo-internal

Translate 6 AI settings tabs

98 strings across AiGeneralSettings, McpServersTab, ProviderSetupTab, SalesAgentSetupTab, SecurityModelsTab, UsageOverviewTab. Uses t() with **************** us...

kamo·6mo ago
Otherkamo-internal

Translate all 4 webinar files

LeadWebinarsSection, MyWebinarsTab, WebinarScheduleWizard, settings/ WebinarSettingsTab. Uses t() with **************** scheduleWizard,settings}.* keys. Reused ...

kamo·6mo ago
Otherkamo-internal

Translate OrderWizard

42 strings. Uses t() with **************** keys. Reused common.actions/states/fields. Existing tUi placeholder hook preserved alongside new top-level t.

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