KamoCRM

Live Change Log

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

17,552
Total Changes
6,024
Features
5,294
Fixes
30
Projects
Filter by project
All Projects17,552AIService258APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService581InitializerService329KBService151KlusterServices742MCPGatewayService255MediaService602RAGService79SecurityService1,857TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,362kamo-login336kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,667kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore775Docs3,255Feature6,024Fix5,294Other994Performance165Refactor278Revert23Style42Test162Upgrade1
June 10, 2026
FeatureESigService

Generic envelope create/send engine (sender side)

Add the OTK-authed /api/esig/envelopes API kamo-internal drives to send documents for signature, reusing the same shared-lib entities the public signing API rea...

Kamo·4mo ago
FeatureESigService

Public signing API engine for sign.sign.pink

Implement the /api/esig/public/* signing API the kamo-signer app calls, turning the live signer from preview-stub into a working backend. - validate (recipient...

Kamo·4mo ago
Featurekamo-internal

Platform product toggle in Organizations tab

Surface the platform-product designation where it belongs — Platform → Organizations. Adds a gated Switch per org (disabled for the top-level org), a confirmati...

kamo·4mo ago
FeatureBillingService

Manage Organization.isPlatformProduct from Platform → Orgs

PlatformAccountSummary exposes isPlatformProduct + hasSubscriptionMarket; new PUT **************** (platform-admin gated) sets the flag and invalidates the org'...

Kamo·4mo ago
Featurekamo-shared-library

Explicit Organization.isPlatformProduct as entitlement-root signal

Replace the derived 'owns a SUBSCRIPTION market' heuristic with an explicit, admin-set ownership flag. A platform product (e.g. sign.pink) is a white-label prod...

Kamo·4mo ago
June 9, 2026
FeatureSecurityService

Scope member entitlements to product root, not KamoCRM

EntitlementService now resolves each member's entitlement root via EntitlementRootResolver (nearest market-owning ancestor-or-self) instead of walking to the to...

Kamo·4mo ago
Featurekamo-shared-library

Resolve entitlements by product-root org, not platform top-level

Introduce EntitlementRootResolver: the nearest market-owning ancestor-or-self of an org (its product root), falling back to the platform top-level. This decoupl...

Kamo·4mo ago
Featurekamo-shared-library

Add envelope recipient, field value, recipient status entities

Check in the in-progress esign model: EsignEnvelopeRecipient (+repo), EsignFieldValue (+repo), EsignRecipientStatus, and an ESignSignerType update. Additive; no...

Kamo·4mo ago
Featurekamo-shared-library

Add EsignUsageRecord for per-signature usage metering

New append-only usage entity (mirrors AiUsageRecord) emitted at signature completion. Only API-origin signatures count toward a plan's monthly included quota + ...

Kamo·4mo ago
June 8, 2026
FeatureConversionService

Preserve aspect ratio, never stretch non-square logos

Favicon PNG/ICO frames were produced with keepAspectRatio(false), stretching any non-square logo into a distorted square. Center-fit the logo on a transparent s...

Kamo·4mo ago
FeatureKlusterServices

Pre-seed sign.pink + www.sign.pink in STATIC_DOMAINS

sign.pink is a new apex domain (consumer e-signature brand / white-label Kamo tenant org). Pre-seed apex + www so a Let's Encrypt cert exists before first HTTPS...

Kamo·4mo ago
June 7, 2026
Featurekamo-signer-monorepo

New monorepo + mobile-first e-signature signing app

Turborepo + pnpm workspaces monorepo housing reusable e-sign packages extracted from kamo-internal plus a new, ultra-polished kamo-signer app — the second-party...

Kamo·4mo ago
May 30, 2026
Featurekamo-internal

Full-width enterprise rewrite with live preview

LoanProductForm was a single narrow column (maxWidth: 880) with hardcoded English everywhere. Now uses the same enterprise pattern as the offer page: Layout: -...

kamo·5mo ago
Featurekamo-internal

Two-column layout with live preview pane

The new-offer page was a tall narrow column on wide screens — wasted half the viewport. Now uses CSS Grid with the form on the left (5fr) and a live "Offer Prev...

kamo·5mo ago
May 29, 2026
Featurekamo-internal

Polish new-offer page — empty state, LOC badge, custom terms

Three UX gaps the offer page had after the prior refactor: 1. Empty state. When a market has no Loan Products yet, the dropdown used to silently render empt...

kamo·5mo ago
Featurekamolos

Per-offer overrides for rate, APR, and origination fee

LoanOfferCreateRequest gains three optional fields — interestRateBpsOverride, aprBpsOverride, originationFeeAmountOverride. createDraft applies them when set an...

Kamo·5mo ago
Featurekamo-internal

Expose PERSONAL_LOANS in commerce-type & engagement pickers

Adds PERSONAL_LOANS to the COMMERCE_TYPES and EngagementType lists so the new KamoLOS personal-loans market can be created from the markets/new and markets/edit...

kamo·5mo ago
Featurekamo-internal

T6+T7 frontend polish + org reports + auto-pay UI

Frontend polish (T6): - New lib/format.ts: locale-aware Intl helpers — formatCurrency / formatDate / formatDateTime / formatPercentBps. Replaces hardcoded t...

kamo·5mo ago
Featurekamolos

Tier 6+7+9+10 — frontend polish, org reports, OpenAPI, JaCoCo

T6 (frontend polish): - New /lib/format.ts: locale-aware formatCurrency / formatDate / formatDateTime / formatPercentBps via Intl APIs (replaces hardcoded t...

Kamo·5mo ago
Featurekamolos

Tier 5 compliance batch

- OfacSanctionsService: Jaro-Winkler fuzzy match @ ≥0.92 after exact-match pass. Hits surface similarity score. Configurable via los.ofac.fuzzy-threshold. - A...

Kamo·5mo ago
Featurekamo-shared-library

LoanChargeOffReasonCode (IRS 1099-C box 6) + audit search

- New LoanChargeOffReasonCode enum (A_BANKRUPTCY..H_OTHER) per IRC §6050P - Loan.chargeOffReasonCode column - **************** multi-filter @Query for regulator...

Kamo·5mo ago
Featurekamolos

Tier 3 security + Tier 8 bug cleanup batch

T3 — Security: - New RateLimitFilter (Bucket4j): 1000/min per IP for webhooks, 10/min per session for offer accept/decoder/rescind, 60/min general. Register...

Kamo·5mo ago
Featurekamo-shared-library

****************

Used by **************** to reactivate an existing PAUSED plan instead of creating a duplicate row that orphans the paused one.

Kamo·5mo ago
May 28, 2026
Featurekamo-internal

/api/los proxy HMAC-signs identity headers

When LOS_PROXY_HMAC_SECRET env var is set, the proxy now computes **************** secret) and sends X-Proxy-Signature + X-Proxy-Timestamp alongside the X-Org-I...

kamo·5mo ago
Featurekamo-internal

Org-side loan detail page + adjustments/promise API

- losApi: manualAdjust, waiveFee, promiseToPay - **************** full org-operations page * 4-up balance cards (current, principal, interest, next due) * M...

kamo·5mo ago
Featurekamolos

Final batch — compliance, packets, adjustments, Grafana, tests

Compliance: - MlaCheckService — Military Lending Act covered-borrower lookup against DoD MDC single-record query. Returns NotCovered if unconfigured so dev ...

Kamo·5mo ago
Featurekamolos

P2 batch — observability, tests, year-end tax, real Stripe IDs

Observability: - micrometer-registry-prometheus on the classpath - /actuator/prometheus exposed via management config (both local + k8s configmap) - LoanMetrics...

Kamo·5mo ago
Featurekamo-shared-library

LoanOrgStripeConnect + Loan tax/accrual fields + hot indexes

- New LoanOrgStripeConnect entity (one-per-org, holds stripeConnectedAccountId + Connect onboarding capabilities) + repository - Loan: stripeCustomerId (lazy-...

Kamo·5mo ago
Featurekamo-internal

P1 frontend — charge-off queue + audit timeline

- losApi: chargeOffQueue / confirmChargeOff / auditByLoan - **************** D120 review queue page; org user reviews each loan, adds a reason, clicks Confirm...

kamo·5mo ago
Featurekamolos

P1 batch — webhooks advance state, crons, commerce vertical

Money movement (the core P1): - LoanPaymentPostingService: markSucceededAndPost / markFailed / markReturnedAndReverse / markDisbursementSucceeded / markDrawDi...

Kamo·5mo ago
Featurekamo-internal

P0 hardening — forms, session resolve, payment methods

Forms (org-side): - **************** and /{productUid} edit pages - New LoanProductForm: basics / pricing / limits / terms / compliance sections, kind-aware...

kamo·5mo ago
Featurekamolos

P0 hardening — Stripe Connect endpoint + PDF flatten

- Fix EsignClient imports: EsignGenericEnvelopeRepository / EsignSignatureRepository live in .esign.repos, not .esign root - New StripeConnectController POST ...

Kamo·5mo ago
Featurekamo-internal

/api/los/* proxy route → KamoLOS via k8s DNS

Mirrors the /api/billing/[[...path]] BillingService proxy: - *** session resolved via Redis; X-Org-Id + X-Member-Id forwarded - /api/los/webhooks/* skip session...

kamo·5mo ago
Featurekamo-internal

Add PERSONAL_LOANS commerce type front-end

- engagementTypeLabels: extend EngagementType union + vocabulary - MarketCardGrid: PERSONAL_LOANS color (#14b8a6) + Landmark icon + counter - Market detail page...

kamo·5mo ago
Featurekamolos

Initial personal-loan origination + servicing service

New Spring Boot 3.1.5 / Java 21 microservice modeled on BillingService. Owns personal-loan domain end-to-end: - LoanProduct / LoanOffer / Loan CRUD with REST +...

Kamo·5mo ago
Featurekamo-shared-library

Add PERSONAL_LOANS commerce type + entity package

- CommerceType.PERSONAL_LOANS + parallel EngagementType + vocabulary - BuiltinVendorCategories entries for personal-loan vendors - 15 personal_loans JPA entitie...

Kamo·5mo ago
May 21, 2026
Featurekamo-internal

Photo-album uploads use the same WS pipeline as the Uploads tab

Extracts the doc-manager upload pipeline (hashing → dedup check → register-or-upload → WebSocket-driven conversion) into a reusable useImagingUploads hook. The ...

kamo·5mo ago
Featurekamolos

Hide isActive=false programs from borrowers in real time

useProgramCatalog now filters out programs with isActive=false before returning them to the loan wizard. The flag is computed server-side as (base.isActive AND ...

Kamo·5mo ago
FeatureSecurityService

Backfill program offerings for existing mortgage markets on boot

DataLoader now calls **************** after the AppMortgage-engagement backfill. Sweeps every existing MORTGAGE CommerceMarket and ensures its program Offerings...

Kamo·5mo ago
Featurekamo-shared-library

Bootstrap mortgage program offerings on market create + boot backfill

When the user creates a CommerceMarket with commerceType=MORTGAGE — via the Markets & Fields settings tab — the market needs program Offerings under it for down...

Kamo·5mo ago
Featurekamo-internal

Duplicate binders so users can fork without affecting the original

Adds a "Duplicate" action accessible from the binder list's context menu and from a new button in the editor header. The duplicate starts from the source binder...

kamo·5mo ago
FeatureDocsService

Add POST ****************

Deep-copies a binder the requester can see (owned, shared, or template) into a fresh binder owned by the requester. Copies every item (DOC, SEPARATOR, GENERATED...

Kamo·5mo ago
Featurekamo-internal

Mortgage Programs toggle + MORTGAGE engagement deep-link

- MortgageProgramsPanel now ships a real Switch on each program card with optimistic update + rollback on failure. Toggling a program calls PUT ************...

kamo·5mo ago
FeatureSecurityService

PUT /programs/{code}/active + deprecate legacy mortgage POS endpoints

- MortgageProgramController gains PUT **************** with body {"isActive": bool}, gated on LOS_TAKE_APPLICATION. Delegates to **************** which upse...

Kamo·5mo ago
Featurekamo-shared-library

Per-org enable/disable + deprecate legacy commerce-only mortgage path

- **************** upserts an OrgProgramOverride row with recordState.isActive=desired; listForOrg now AND's the base program's active flag with the overrid...

Kamo·5mo ago
Featurekamolos

Scrubbable day↔night theme with sun-moon SkyToggle

- Continuous t ∈ [0,1] scene position drives ~25 CSS custom properties on :root via linear RGB interpolation between warm-paper day and aurora night anchors...

Kamo·5mo ago
Featurekamolos

Expose engagement/intent/commitment UIDs

AppMortgageDTO now carries the commerce-lifecycle identifiers that the SecurityService backend populates on every mortgage application. KamoLOS doesn't actively...

Kamo·5mo ago
Featurekamo-internal

Show Commerce context + Programs settings tab

- /applications hero now reads "Commerce > Residential Mortgages · URLA 2021" so staff see mortgage as one vertical of the commerce module, not a standalone...

kamo·5mo ago
FeatureSecurityService

Enforce LOS rights + /commerce/engagements endpoint

- MortgageAppController: every endpoint now gates on RoleRightType. Reads require LOS_VIEW_PIPELINE; creating a new application requires LOS_TAKE_APPLICATIO...

Kamo·5mo ago
Featurekamo-shared-library

Wire URLA mortgage into Engagement/Intent/Commitment

Mortgage is one vertical of the commerce system — alongside retail, rental, service, subscription, and procurement. This wires the URLA-fidelity mortgage stack ...

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