KamoCRM

Live Change Log

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

18,447
Total Changes
6,575
Features
5,540
Fixes
30
Projects
Filter by project
All Projects18,447AIService276APIService179BillingService162ConversionService117DaemonService146DocsService240ESigService93EmailService625InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService621RAGService79SecurityService2,005TranslateService62VOIPService265VectorService11kamo-apps28kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,711kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,836kamo-signer-monorepo58kamolos115
Filter by type
All TypesBuild23CI525Chore794Docs3,287Feature6,575Fix5,540Other1,001Performance174Refactor284Revert23Style45Test175Upgrade1
May 11, 2026
Featurekamo-shared-library

Chunked recalc + cross-model fan-out + typeTemplate non-force fallback

Adds three things needed for template edits to actually reach existing members without forcing a logout/login cycle: 1. **************** — walks every org po...

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
CISecurityService

Rebuild against kamo-shared-library f76e145 (drop @Convert on EmbAddress.country)

Picks up the JPA fix that lets orgs.country (smallint) accept the int ordinal Hibernate writes for CountryType, unblocking POST /api/security/org from the /netw...

Kamo·6mo ago
Fixkamo-shared-library

Drop CountryTypeConverter from EmbAddress.country

The converter writes the enum name (e.g. "UNITED_STATES") as a String, but every table embedding EmbAddress (orgs, users, members, user_addresses, account_addre...

Kamo·6mo ago
Fixkamo-register

Only show Account Recovery seed phrase step for under-13

Why: 13+ users already provide email, phone, and security questions as recovery methods, making the seed phrase step redundant for them. Under-13 accounts have ...

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
FixKlusterServices

Scale to 2 replicas to absorb sync + runtime traffic

A single replica is the bottleneck for the dictionary sync workflow: each gunicorn worker handles one request then auto-restarts (~5-10s window of connection-re...

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

Reverse-proxy rate.loans/stack.loans hosts via k1m1 with TLS

k1m1 Traefik now terminates HTTPS for api.rate.loans, www.rate.loans, and www.stack.loans, forwarding plain HTTP to the upstream Traefik at 192.168.4.36:80. Aut...

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

Wire DomainManager and MailboxProvisioner for all cloud providers

Replace the UnsupportedOperationException stubs in every cloud provider with real HTTP calls against each backend's admin API: - Microsoft 365 → Microsoft Gra...

Kamo·6mo ago
May 9, 2026
FeatureEmailService

IMAP/SMTP-backed send, folder, and search for cloud stubs

Extract the IMAP/SMTP delegation pattern into AbstractImapBackedCloudProvider and have Zoho, IceWarp, Exchange, Google Workspace, and Microsoft 365 extend it. T...

Kamo·6mo ago
FeatureEmailService

IMAP-backed MailReader for the cloud-provider stubs

Zoho, IceWarp, Exchange, Google Workspace, and Microsoft 365 all expose IMAP, so wire each cloud-provider stub's MailReader methods through EmailImapService ins...

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

Serve inline image MIME parts and surface Content-ID metadata

Render <img src="cid:..."> in the messages UI by exposing the inline parts that the HTML body references. - AttachmentInfo gains contentId (without angle brack...

Kamo·6mo ago
FixEmailService

Preserve original filename and content type on attachment download

The **************** endpoints (both the personal and shared-mailbox controllers) were emitting Content-Disposition: attachment with no filename parameter and C...

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

Drop unrecognized --workers arg causing crashloop

The libretranslate CLI does not accept --workers, only the gunicorn process inside it does. Passing it caused the pod to fail argparse on boot and CrashLoopBack...

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

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