KamoCRM

Live Change Log

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

17,374
Total Changes
5,891
Features
5,258
Fixes
30
Projects
Filter by project
All Projects17,374AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,822TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,321kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,631kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,891Fix5,258Other993Performance165Refactor278Revert23Style42Test159Upgrade1
May 30, 2026
Refactorkamo-internal

Redesign new-offer page as two-column workspace + live preview

You asked for full real estate, modern, polished — last refactor put a single-column form inside a full-width shell, which is exactly the wide half-page-of-empt...

kamo·4mo ago
May 29, 2026
Refactorkamo-internal

Full-width enterprise polish across 10 pages

Adopts the modern enterprise pattern (gradient header + breadcrumbs + back arrow + full-height flex shell + card-grouped content on light gray canvas) used else...

kamo·4mo ago
May 28, 2026
Refactorkamo-shared-library

Loan.engagementUid → Long + originatingOrderUid

Engagement extends BaseEntity (Long PK) so engagementUid must be Long, not UUID — this is consistent with the existing AgreementDTO / WorkOrderDTO pattern of "L...

Kamo·4mo ago
May 16, 2026
Refactorkamolos

Clean up the session — bug fixes, dedupe, dead-code

Three-agent review surfaced real problems and copy-paste — addressing them: Bug fixes: - useEnsurePrimaryBorrower returned dead state (primaryUid, creating) an...

Kamo·5mo ago
Refactorkamolos

Retire the URLA wizard — waypoints now own the borrower journey end-to-end

Wires each connect-first waypoint to write through the existing /api/security/mortgage-apps/* endpoints, then redirects /apply/<section> to its matching /waypoi...

Kamo·5mo ago
May 15, 2026
Refactorkamo-internal

Unify all dashed empty-state boxes into <EmptyState />

A dozen inline copies of "rounded-xl border-dashed border-white/10 bg-white/[0.015] …" across the section files, the kanban column, the HMDA LAR list, and the a...

kamo·5mo ago
Refactorkamo-internal

Promote ModalShell/ModalActions and SaveSpot to shared modules

Eight section files plus the webhooks admin page each defined their own copy of ModalShell + ModalActions and/or a SaveSpot save-state chip. All now live in [ui...

kamo·5mo ago
RefactorSecurityService

Consolidate controller session/rights/response helpers in BaseLosController

Six LOS-area controllers (MortgageApp, MortgagePipeline, MortgagePricing, MortgageDisclosure, MortgageHmda, WebhookSubscription) each copied the same ~80 lines ...

Kamo·5mo ago
May 1, 2026
Refactorkamo-internal

Collapse toolbar, remove ChatHeader, add members intro row

- Delete ChatHeader row from embedded chat; move Add Member icon into unified toolbar - Toolbar: search input on left, VideoCall icon + PersonAdd icon + scroll-...

kamo·5mo ago
April 30, 2026
RefactorMediaService

Cache-only bulk translate, FE handles fills

Bulk message-fetch endpoints now return only translations that are already cached and tag missing rows with needsTranslation:true. The chat UIs (kamo-internal C...

Kamo·5mo ago
April 29, 2026
Refactorkamo-internal

Rewrite drag/cluster system with magnetic snap and gather gesture

Replace the monolithic HexHeadGroup (847 lines) with a modular cluster engine under app/components/chat/hexheads/. Single source of truth: every head lives in a...

kamo·5mo ago
RefactorSecurityService

Remove manual provision-comp endpoint — startup self-heals

COMP orders are now provisioned automatically on SecurityService startup via SubscriptionService @PostConstruct. Manual endpoint no longer needed.

Kamo·5mo ago
Refactorkamo-internal

Scope SettingsSearchBar to components.settings namespace

Use **************** with searchBar.* keys instead of global t() with full dotted paths.

kamo·5mo ago
April 28, 2026
Refactorkamo-register

Drop language search filter on My Language step

The supported language list is short enough to scan visually; the search input added complexity without user value.

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
RefactorBillingService

Subs target a sub-org; per-sub members split from account admins

Subscriptions now require targetOrganizationId on create — the (account, market, target_org) triple is the new uniqueness key. AccountBillingMemberService is sp...

Kamo·5mo ago
Refactorkamo-shared-library

Split account-level admins from per-sub members; subs gain target_org

Adds SubscriptionMember (per-subscription licensee + sub-manager flags) so an Account on the KamoCRM org can hold multiple subscriptions, each targeting a diffe...

Kamo·5mo ago
April 27, 2026
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
RefactorBillingService

Use Account.members via AccountMember; rename isGroupPlanManager -> isAccountManager

The Account is now the group, so all references to the old AccountBillingMember entity are pointed at the new generic **************** entity. The "group plan m...

Kamo·5mo ago
RefactorSecurityService

Drop users/masterAccountHolder, use Account.members + primaryMember

AccountController now reflects the Account-as-group model: - computeDisplayName / extractEmail / extractPhone resolve through the primaryMember (Member) inste...

Kamo·5mo ago
Refactorkamo-shared-library

Make Account the group; replace User-set with Member-set + AccountMember

The Account is now itself the "group" — there's no separate billing-group concept. Members (org-scoped) belong to the Account directly via the new AccountMember...

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
RefactorBillingService

Rewrite BillingService onto Account-based entities

The BillingService is now Account-centric. Member-driven flows (e.g. "add a card", "subscribe to a plan") now go through an Account that auto-creates for the me...

Kamo·5mo ago
RefactorSecurityService

Move from BillingGroup to Account-based licenses

EntitlementService resolves member entitlements against AccountLicense records owned by the member's billing Account. The MemberEntitlements shape now exposes a...

Kamo·5mo ago
Refactorkamo-shared-library

Migrate from BillingGroup to Account as billing principal

Account is now the single Stripe customer principal. A Member needing to pay (e.g. for a subscription) auto-creates an Account; that Account then holds one or m...

Kamo·5mo ago
Refactorkamo-shared-library

Orient live records to Account address profile, snapshot historical addresses

Orient live commerce records to reference the Account profile's primary shipping/billing addresses, with snapshots taken only when records become historical (pl...

Kamo·5mo ago
Refactorkamo-shared-library

Switch Account.java to embeddables; add AccountAddress entity for shipping/billing lists

- Add AccountAddressType enum (SHIPPING, BILLING) - Add AccountAddress entity (account FK, type, label, EmbAddress, timestamps) - Add AccountAddressRepository -...

Kamo·5mo ago
April 26, 2026
Refactorkamo-internal

Ticket requestor presence via WebSocket only

kamo·6mo ago
RefactorMediaService

Requestor snapshot over STOMP, drop HTTP presence

Kamo·6mo ago
Refactorkamo-internal

Move Create Lead action into header, drop sticky bar

Replace the top-right Cancel button with the primary Create Lead action and remove the bottom sticky action bar entirely. Add a back IconButton to the left of t...

kamo·6mo ago
Refactorkamo-internal

Make Best Contact Time a free-text field

Replace the Morning/Afternoon/Evening dropdown on the Add Lead and Lead View edit forms with a plain text input so members can describe specific windows (e.g., ...

kamo·6mo ago
April 24, 2026
Refactorkamo-internal

Drop editor page header, rename General sub-tab

- Removes the back-arrow IconButton + shield icon + title + subtitle from the top of the security-model / master-model editor. The Cancel button in the stic...

kamo·6mo ago
RefactorInitializerService

Drop teamMemberPayFeesSetting from DataLoader

Master-model provisioner no longer passes the removed tri-state pay-fees setting when creating the master security model — the field is gone from ChildOrgSecuri...

Kamo·6mo ago
RefactorSecurityService

Drop teamMemberPayFeesSetting parameter

Mirrors the shared-library change — SecurityModelController, MasterModelController, and AppliedModelController no longer read/write teamMemberPayFeesSetting. Th...

Kamo·6mo ago
Refactorkamo-shared-library

Drop teamMemberPayFeesSetting

Employee self-pay fee policy is gone — the BillingGroup refactor handles billing per-group, not via the security model. Removes the teamMemberPayFeesSetting col...

Kamo·6mo ago
Refactorkamo-register

Drop My Profile tip banner + unify section spacing

All four My Profile sections now share the same vertical rhythm — 8px between each section's header and its field(s), 16px between sections. The Alert banner ex...

Kamo·6mo ago
Refactorkamo-register

Tidy My Profile layout + drop phone verification

Reorganize the My Profile step so all four sections share the same layout and title format. Order is now Legal Name, alias, e-mail, phone. - FormName: remove t...

Kamo·6mo ago
RefactorSecurityService

Drop SMS verification for the phone field on signup

The phone number collected during self-service registration is now a plain optional text field — no /register/phone/initiate, no SMS code, no /register/phone/ve...

Kamo·6mo ago
Refactorkamo-shared-library

Drop RegistrationPhoneCode entity + repository

Self-service registration no longer uses SMS-code verification for the phone field — the register form collects the phone number as plain text and stores it as-...

Kamo·6mo ago
April 23, 2026
RefactorSecurityService

Share PostAuth***Service between login and enter-as

Extract the post-authentication *** build (grant-all expansion, profile SQL, branch titles, createSession) into PostAuth***Service so enter-as uses the same cod...

Kamo·6mo ago
Refactorkamo-internal

Remove phone + security-questions pages

These were added to kamo-internal by mistake — collection of the phone number and security questions belongs in the registration flow in kamo-register, and has ...

kamo·6mo ago
April 22, 2026
April 21, 2026
RefactorSecurityService

Merge default template without wiping org folder

Full provision no longer deletes the org prefix before copy. Copy from public/default overwrites matching keys only; other objects under the org folder remain. ...

Kamo·6mo ago
April 19, 2026
April 18, 2026
Refactorkamo-internal

Compact editor header — remove large title/tabs, move actions to nav row

Removes the sticky header card (title, subtitle, Save/Cancel/Preview buttons, Edit/Preview tab bar) from EmailTemplateEdit to reclaim ~200px of vertical space a...

kamo·6mo ago
Refactorkamo-login

Redirect EMAIL_NOT_VERIFIED to register/resend-verification

Removes the inline EmailVerifyCard from the login page and all related state/callbacks. On EMAIL_NOT_VERIFIED, the user is now forwarded to **************** whe...

Kamo·6mo ago
Refactorkamo-shared-library

Remove eager feature-loading from getOrganizationByDomain

Features are an org-level concern unrelated to most callers of this method (e.g. registration, login domain resolution). Force-loading them via setFeatures() re...

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