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
April 29, 2026
Fixkamo-internal

Show platform domain context when no custom domain is set

Surface the active *.kamocrm.com hostname in the domain entry form so users can see their current platform domain instead of a blank entry screen. Also fixes ve...

kamo·5mo ago
Otherkamo-internal

Revert "chore(messages): add wave3 translation merge fragments (JSON)"

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

kamo·5mo ago
Otherkamo-internal

Revert "feat(setup-dns): show platform kamocrm domain on custom domain entry"

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

kamo·5mo ago
Chorekamo-internal

Add wave3 translation merge fragments (JSON)

kamo·5mo ago
Featurekamo-internal

Show platform kamocrm domain on custom domain entry

Surface the active *.kamocrm.com hostname on the add-domain flow and detect custom domains by excluding kamocrm URLs instead of default-flag alone.

kamo·5mo ago
Fixkamo-internal

Checkpoint translations per chunk and per locale on main

Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...

kamo·5mo ago
Fixkamo-internal

Checkpoint translations per chunk and per locale on main

Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...

kamo·5mo ago
April 28, 2026
Fixkamo-internal

Disable Docker BuildKit cache so every pipeline run does a full rebuild

Sets no-cache on both image build steps so npm ci and npm run build always run, even when the source tree is unchanged.

kamo·5mo ago
Fixkamo-internal

Bust Docker BuildKit cache per commit so npm run build runs every push

Identical checkout trees (e.g. empty commits) reused cached layers and skipped a real Next build. Pass GIT_COMMIT from the workflow and label the image revision...

kamo·5mo ago
Chorekamo-internal

Blank commit to kick CI/CD

kamo·5mo ago
Fixkamo-internal

Add missing chat meet button labels

kamo·5mo ago
Fixkamo-internal

Serialize member-security and members PUT calls to avoid CockroachDB conflict

Two concurrent writes to the same `members` row caused a serializable isolation conflict — member-security read the row while the members endpoint wrote to it (...

kamo·5mo ago
Fixkamo-internal

Double scrollbar width from 6px to 12px

kamo·5mo ago
Chorekamo-internal

Trigger CI/CD

kamo·5mo ago
Fixkamo-internal

Unwrap catalog and calculation from backend response envelope

getSubscriptionCatalog returned { catalog: {...} } but was cast directly as SubscriptionCatalog, leaving catalog.plans undefined and the plan selection step bla...

kamo·5mo ago
Fixkamo-internal

Use ss instead of fuser to kill stale port-forward (fuser not on k0m1)

fuser and lsof are not installed on the runner host. Use ss -tlnp with grep to extract the PID holding port 18080 and kill it directly. Also switch pkill to SIG...

kamo·5mo ago
Fixkamo-internal

Clean up stale port-forward so cancelled translate job doesn't block next run

Bash doesn't forward signals to backgrounded processes, so kubectl port-forward outlived cancelled workflow runs and held port 18080, blocking every subsequent ...

kamo·5mo ago
Fixkamo-internal

Restore all broken placeholder values across pages

Salvage-keys script had grabbed CSS classNames, inline styles, and JS template literals instead of the original English text for 114 message keys spanning notes...

kamo·5mo ago
Featurekamo-internal

Show Set Up Billing button for org owners with no account

When an org owner opens the plans-billing tab and no billing accounts exist, display a bootstrap prompt instead of the generic "contact your org owner" message....

kamo·5mo ago
Fixkamo-internal

Restore leads page hero title and subtitle from git history

heroTitle was 'Hero Title' (placeholder), heroSubtitle was 'flex gap-2' (salvage-keys accidentally grabbed the adjacent CSS class name). Correct values recovere...

kamo·5mo ago
Fixkamo-internal

Add statusWindow labels namespace and fix all setting placeholders

- Add **************** (50 keys) so the settings nav sidebar shows real text instead of key paths - Fix branchTypesLabel ICU format: \${branchLabel} → {branch...

kamo·5mo ago
Chorekamo-internal

Update locale translations and hash [skip ci]

Kamo CI·5mo ago
Featurekamo-internal

Wave 3 conversions, fallback fix, and auto-translate CI

- Replace all hardcoded English strings with t() calls across wave 3 components (chat, clubhouse, support, notes, pipeline, leads, nav, etc.) - Merge wave 3 f...

kamo·5mo ago
Fixkamo-internal

Match other tool windows' size + color scheme

- defaultSize and minSize now 320x650, resizable: false (matches Softphone, Chat, Calculator, SMS, AI Chat) - Switched from dark slate gradient to the standard ...

kamo·5mo ago
Featurekamo-internal

Wire next-intl with member.language as locale source

Adds next-intl-based internationalization across kamo-internal without URL locale prefixes. Active locale is read from the kamo-locale cookie, which mirrors the...

kamo·5mo ago
Fixkamo-internal

Forward Range header so audio playback can scrub

Without this the VOIPService recording-streaming endpoint always returns the full file (Range header is dropped by buildForwardHeaders), which works for play-fr...

kamo·5mo ago
Chorekamo-internal

Drop dead masterAccountHolder/isMaster UI, refresh stale comments

Account schema no longer carries masterAccountHolder or per-member isMaster flags — those were removed alongside the Account-as-billing-principal refactor. Acco...

kamo·5mo ago
Refactorkamo-internal

Split member APIs; show subs' target org; add billing-owner promote UI

billingApi splits members into accountMembers (canManageBilling, isAccountManager) and subscriptionMembers (isLicensee, canManageSubscription) under ***********...

kamo·5mo ago
April 27, 2026
Otherkamo-internal

AccountGroup -> AccountTier; customer-group routes -> customer-tier

Frontend types and API calls updated to match the shared-lib + service rename of AccountGroup to AccountTier. The "Group" naming was leaking into the customer-s...

kamo·5mo ago
Refactorkamo-internal

Rename AccountBillingMember -> AccountMember; isGroupPlanManager -> isAccountManager

Type-level rename across the billing client and the PlansBillingTab: - AccountBillingMember type -> AccountMember - isGroupPlanManager flag -> isAccountManager ...

kamo·5mo ago
Featurekamo-internal

Add language + default currency to Regional Settings card

Member profile's Regional Settings card now exposes editable Language (22 supported locales mirroring the marketing site) and Default Currency (searchable Autoc...

kamo·5mo ago
Refactorkamo-internal

Rewrite billingApi client onto Account-based endpoints

billingApi now talks to **************** instead of the old /groups/{groupId} routes. Top-level types renamed: - BillingGroup -> AccountBilling - Bill...

kamo·5mo ago
Chorekamo-internal

Mirror live/snapshot address shape in CartItem2 and DraftOrderItem types

CartItem2 gains **************** and shippingAddress/billingAddress fields populated from the customer's primary shipping/billing AccountAddress profile. DraftO...

kamo·5mo ago
Featurekamo-internal

/account/new copy-from-lead UX, full name fields, dual phones, address; account-level address management

Frontend: - /account/new: per-section "Copy from Lead" buttons + header "Copy all from Lead" button (when leadId param) - Name section: prefix, first, middle, l...

kamo·5mo ago
Featurekamo-internal

Production-grade History + Voicemail tabs with media-player tool

History tab (SoftphoneHistoryTab.tsx): - Infinite scroll via IntersectionObserver inside the panel's scroll container - Filter chips: All / Inbound / Outbound /...

kamo·5mo ago
Fixkamo-internal

Remove redundant Field history title from history panel

Tab label already conveys context — title and subtitle were wasting screen space. Reload button moved inline into the toolbar.

kamo·5mo ago
Fixkamo-internal

Remove layout prop causing email body bouncing

The outer motion.div's `layout` prop fought with the inner AnimatePresence height: 'auto' animation, creating a FLIP feedback loop on emails with unstable heigh...

kamo·5mo ago
Featurekamo-internal

Add History tab — paginated audit timeline with search and filters

- LeadHistoryPanel: sticky filter toolbar with debounced search, **************** filters, MUI table with pagination, color-coded event chips, member-name resol...

kamo·5mo ago
Featurekamo-internal

Dynamic member type label in My Account page title

Title now reads "My {Member|Team Member} Account" using the org-configured behavior labels, switching automatically once the member's type is loaded.

kamo·5mo ago
Featurekamo-internal

Move Create Document button into DocManager toolbar

The button was only available on /doc/manager via the actions prop. Moved all logic (state, handler, DOC_TYPES, menu) into DocManager so it appears on every emb...

kamo·5mo ago
Fixkamo-internal

Always show Create Document button on doc manager page

Removed the getMemberId() > 0 guard that was hiding the button during the useUserInfo loading window. The page is already behind auth so no client-side membersh...

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