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
March 10, 2026
Fixkamo-internal

Resolve 'u.map is not a function' on POS settings and update Commerce nav

- Add defensive array extraction in commerceMarketApi (getMarkets, getVendorCategories, getMarketVendors, seedVendorCategories) to handle wrapped API responses ...

kamo·6mo ago
Fixkamo-internal

Resolve Next.js dynamic route slug conflict ('id' vs 'marketId')

Merge [marketId] directory into [id] for commerce-markets API routes. Next.js requires all dynamic segments at the same path level to use the same parameter nam...

kamo·6mo ago
Fixkamo-internal

Resolve TypeScript errors in enterprise pipeline tabs

- Make toCSV columns parameter optional with auto-derivation from object keys - Fix downloadBlob call in ProcurementTab (wrong arg count, missing Blob wrapper) ...

kamo·6mo ago
March 9, 2026
Fixkamo-internal

Remove duplicate session timeout fields from session types

Aligns with SecurityService change that removes createdAt/expiresIn from Redis session records and tokenExpiration from session info responses. - user-info/rou...

kamo·6mo ago
FixSecurityService

Remove duplicate session timeout system from Redis records

Session expiry is now managed solely by the Redis key TTL. The internal createdAt/expiresIn fields stored inside the Redis value have been removed — they formed...

Kamo·6mo ago
Fixkamo-internal

Make settings content panel scrollable

kamo·6mo ago
Fixkamo-internal

Balance footer help text spacing

kamo·6mo ago
Fixkamo-internal

Update internal layout and styles

- Make main wrapper background transparent so home page fixed background is not covered - Include latest adjustments to automation, security access, and account...

kamo·6mo ago
February 15, 2026
Fixkamo-internal

Handle optional effectiveDate and processedAt in DateTimeDisplay

Type error: string | undefined not assignable to string | number | Date. Add null checks before passing to DateTimeDisplay, show em-dash when absent.

kamo·7mo ago
Fixkamo-internal

Align Commerce submenu with actual Commerce page tabs

- Rename Domain Configuration to Engagement Types - Add Rental Assets, Vendors, Subscription Plans - Update tab param to engagement-types for consistency - Labe...

kamo·7mo ago
Fixkamo-internal

Advanced datagrids fill 100% of content area

- SettingsView: tab content wrapper overflow hidden, motion.div flex chain so tab content gets bounded height and grids can expand. - PipelineRentalAssetsTab:...

kamo·7mo ago
February 14, 2026
FixKlusterServices

Resilient probes so cluster stays up when one node is offline

- Liveness: tcpSocket on 4222 (do not depend on JetStream meta leader) - Readiness: initialDelay 90s, period 15s, failureThreshold 10 so k0m1+k1m1 can form qu...

Kamo·7mo ago
Fixkamo-internal

Use string IDs for pipeline detail APIs (JS safe integer)

- posApi: getOrder, getMortgageApplication, getEngagementById, getBooking accept number | string, URL uses String(id) - Detail pages: pass route id (string) to ...

kamo·7mo ago
Fixkamo-shared-library

Serialize POS DTO uid/id as string in JSON for JS safe integer

- RetailOrderDTO.uid, **************** EngagementDetailDTO.id/linkId, MortgageAppDTO.uid - Use @JsonSerialize(using = ToStringSerializer.class) to avoid precisi...

Kamo·7mo ago
February 13, 2026
Fixkamo-internal

Restore form controls on settings member tabs - fix flex layout collapse

- TabPanel: keep overflow-y auto for scroll, use overflowX hidden - SettingsView: move scroll to parent Box, motion.div uses display block to size to content - ...

kamo·7mo ago
Fixkamo-internal

Restore vertical scrollbar and fix collapsed panes on settings pages

- TabPanel: change overflow from hidden to auto for tab content scrolling - SettingsView: enable overflow-y auto on tab content Box and motion.div - ProfileTab:...

kamo·7mo ago
Fixkamo-internal

Force light mode - prevent OS/browser dark mode from affecting site

- Add force-light-mode-styles.ts with override rules - Inject override in DynamicMetaLoader after external theme CSS loads - Add server-rendered fallback style ...

kamo·7mo ago
February 12, 2026
Fixkamo-internal

Null-safe API response handling + shared layout for sub pages

- posApi: add null checks for getOrder, getMortgageApplication, getEngagementById, getBooking, getProduct, getRentalAsset, getRentalRequest, getAgreement, g...

kamo·7mo ago
Fixkamo-internal

Pipeline datagrids collapsed, restructure to match leads layout

- SettingsView: tab content container now uses display:flex, overflow:hidden so flex chain passes height to grids (fixes collapsed grids in POS settings) - Pi...

kamo·7mo ago
FixSecurityService

Enable commerce JPA repos for POSController/CommerceService

SecurityService POSController depends on CommerceService which uses engagement, order, intent, etc. repositories. These live in com.kamo.z.shared.commerce.* but...

Kamo·7mo ago
Fixkamo-shared-library

Use Uid instead of Id for BaseEntity-derived relations

- FulfillmentOrderRepository: findBySourceCommitmentId -> findBySourceCommitmentUid (Commitment uses uid) - TransactionRepository: findByOrderId -> findByOrderU...

Kamo·7mo ago
February 11, 2026
FixSecurityService

Resolve Map type inference in POS controllers for CI compilation

- Use explicit Map<String, Object> in ResponseEntity Map.of() calls - Fixes 'incompatible types: inference variable V has incompatible bounds' when mixing DTO...

Kamo·7mo ago
FixInitializerService

DataLoader IOException import and mock lead assignment FK errors

- Add missing java.io.IOException import for copyJavaEnumsToNextJS - Use saveLead instead of saveLeadWithAssignment for mock data to avoid lead_assignments FK...

Kamo·7mo ago
February 4, 2026
Fixkamo-internal

Stabilize connection line physics and mouse proximity

- Only apply mouse proximity force after mouse has moved (avoids 0,0 affecting lines on load) - Guard mouse position with Number.isFinite before use - Clamp con...

kamo·7mo ago
Fixkamo-internal

Unify section title underline and grid for lower sections

- Use var(--color-primary) for CRM, E-Mail, Phone section underlines - Use 3-column grid on lg for E-Mail and Phone (3 cards) for consistent layout

kamo·7mo ago
February 3, 2026
Fixkamo-internal

New answer field maintains focus while typing

- Added local state for new answer input (newAnswerValue) - Input no longer triggers array update on each keystroke - Answer is added on blur or when pressing E...

kamo·7mo ago
Fixkamo-internal

Restore task item selection while keeping line clicks

- SVG container back to pointer-events-none (allows clicks to pass through) - Hit area paths use pointer-events: stroke (only the line itself is clickable) - Vi...

kamo·7mo 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