KamoCRM

Live Change Log

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

17,594
Total Changes
6,048
Features
5,310
Fixes
30
Projects
Filter by project
All Projects17,594AIService258APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService582InitializerService329KBService151KlusterServices744MCPGatewayService261MediaService602RAGService79SecurityService1,864TranslateService62VOIPService250VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,377kamo-login339kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,674kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore775Docs3,257Feature6,048Fix5,310Other994Performance165Refactor278Revert23Style42Test162Upgrade1
July 16, 2026
FeatureSecurityService

Transparent loan close-readiness endpoint (real milestones)

GET /mortgage-apps/{uid}/readiness (party-gated) → a weighted composite of REAL, explainable milestones (submitted / documents satisfied / conditions cleared / ...

Kamo·3mo ago
FeatureSecurityService

Borrower payment-estimate endpoint (full PITIA, safe subset)

GET **************** (party-gated) → the borrower's estimated full monthly housing payment + components, a BORROWER-SAFE subset of the underwriting qualificatio...

Kamo·3mo ago
FeatureSecurityService

Proxy the loan qualification read (operator-gated)

Kamo·3mo ago
FeatureSecurityService

Extract self-employment income from K-1 and P&L statements

K1 and PL_STMT previously returned DOC_TYPE_NOT_SUPPORTED; add vision prompts (employment.employerName + employment.wagesAnnual) so a self-employed borrower's K...

Kamo·3mo ago
FeatureSecurityService

Borrower request-rate-lock → steward pipeline queue

POST **************** (party-gated): the borrower asks to lock their rate; recorded as an OPEN non-blocking PRICING LoanCondition so it lands in the steward's p...

Kamo·3mo ago
FeatureSecurityService

Borrower rate-lock status endpoint (LOCKED/FLOATING)

GET /mortgage-apps/{uid}/rate-lock (party-gated) → the loan's SAFE lock posture: LOCKED (rate + expiry) when an active, non-expired commitment exists, else FLOA...

Kamo·3mo ago
Featurekamo-shared-library

Lock lookup by loan file (join through scenario)

**************** — locks key on scenario, so resolve a loan's locks via MlosLoanScenario.loanFileUid. Backs the borrower/steward 'is this loan rate-locked?' rea...

Kamo·3mo ago
FeatureSecurityService

Steward rate-lock proxy — lock-decision + commit an eligible result

MlosCapitalMarketsController gains POST /lock-decision (preview) and POST /locks (commit) via MlosCapitalMarketsClient; the commit is a deliberate HUMAN steward...

Kamo·3mo ago
FeatureSecurityService

Borrower e-signature surface — real native sign links, no stub

GET **************** (party-gated) lists the loan's real KAMO_NATIVE disclosure/closing envelopes + recipient status via ESigService; POST **************** mint...

Kamo·3mo ago
FeatureESigService

Internal mint-sign-link primitive for first-party signing surfaces

POST **************** re-mints a recipient's access token and RETURNS the signing deep-link (no invite-email round-trip), so the MLOS borrower portal can hand a...

Kamo·3mo ago
FeatureSecurityService

WS3 vendor-order proxy — steward places/reads third-party orders

Add MlosVendorClient (X-Internal-Auth → MLOSVendorService /api/vendor) + mlos.vendor.url config, and app-scoped endpoints: GET /{uid}/vendor-orders (operator vi...

Kamo·3mo ago
FeatureSecurityService

Borrower-safe my-conditions projection for the portal conditions view

GET /{uid}/my-conditions (party- or operator-gated) returns a narrow BorrowerConditionView **************** — never the internal actor/notes fields the steward ...

Kamo·3mo ago
FeatureSecurityService

Per-borrower section GET endpoints to hydrate the capture UIs

Add listPerBorrower (requireView, party-gated) + GET list endpoints for **************** returning {rows:[...]}. These back the new URLA borrower capture sectio...

Kamo·3mo ago
Featurekamo-shared-library

Borrower section read methods for other-income/expense/REO/gift capture

The per-borrower repeating sections were write-only; add read projections **************** so the borrower capture UIs can hydrate existing rows via GET endpoin...

Kamo·3mo ago
FeatureSecurityService

Full credit-vendor abstraction + real reseller adapters

Production tri-merge credit rail. The abstraction now passes the FULL 9-digit SSN (decrypted at order time from the borrower's encrypted record) + co-borrower f...

Kamo·3mo ago
FeatureSecurityService

Borrower clear-to-close proxy

GET **************** — party-gated; resolves loanFileUid from the app and relays MLOSDocService's clear-to-close readiness.

Kamo·3mo ago
FeatureEmailService

Accept X-***-Token for mobile clients in OTKPreAuthFilter

per-tab session id as X-***-Token (matching **************** When present (and no X-OTK), resolve the session non-consumingly and set the same request attribute...

Kamo·3mo ago
FeatureAPIService

Route /api/email + /api/support through the api host

(EmailService) and Support (MediaService, same upstream as /api/media) were unrouted → 404. Add both forwards and fix email.service.url from a localhost default...

Kamo·3mo ago
FeatureSecurityService

Steward-triggered agency-AUS run proxy

Adds POST **************** — the steward "Run AUS" trigger the read-only underwriting console lacked. Gated on operator (GD); the organizationId and acting memb...

Kamo·3mo ago
FeatureKlusterServices

Self-hosted expo-updates headers for Mobile Copilot OTA

expo-protocol-version:1 + expo-sfv-version:0 response headers that the expo-updates client requires and static MinIO cannot emit. Longer path prefix wins over t...

Kamo·3mo ago
Featurekamo-shared-library

VendorOrder + VendorOrderEvent entities for WS3 vendor-order spine

The greenfield 3rd-party order-of-record **************** SCRA). VendorOrder = partial-WORM async order (ClosingArtifact idiom: opaque vendorKey/externalRef, fr...

Kamo·3mo ago
FeatureSecurityService

Stamp document own-date to freshness clock (WS1 activation)

After vision extraction, propagate the document's own effective date (asset.statementPeriodEnd for bank/broker/retirement, employment.payPeriodEnd for paystubs)...

Kamo·3mo ago
Featurekamo-shared-library

MortgageAmortization — monthly P&I from loan terms (WS6 support)

The one PITI component not stored on the loan. Standard fully-amortizing formula P·r·(1+r)^n/((1+r)^n−1); zero rate degrades to straight-line; non-positive prin...

Kamo·3mo ago
Featurekamo-shared-library

ClosingReadinessEvaluator — loan-level clear-to-close gate

Rolls a loan's obligations up to the funding question the end-to-end gap analysis raised ("service the loan all the way to funding"): clear-to-close iff zero ad...

Kamo·3mo ago
Featurekamo-shared-library

QualifyingRatioEngine — the reproducible dti keystone (WS6)

Composes the four cores (income, liabilities, PITI/DTI, reserves) into ONE QualifyingSnapshot: qualifying income, reconciled monthly debt, assembled PITIA, fron...

Kamo·3mo ago
Featurekamo-shared-library

ReservesCalculator — eligible-asset haircuts → PITIA months (WS6)

Derives reserve months from actual assets with standard agency haircuts — liquid deposits 100%, brokerage 70%, vested retirement 60%, gift/borrowed excluded — d...

Kamo·3mo ago
Featurekamo-shared-library

PitiDtiCalculator — PITI assembly + front/back DTI (WS6)

Pure ratio core completing the DTI trio with LiabilityReconciler + the income core: PITIA = P&I + taxes + HOI + HOA + MI + flood; front = PITIA / income; back =...

Kamo·3mo ago
Featurekamo-shared-library

QualifyingIncomeCalculator — base + variable core (WS5)

Pure/deterministic income core: base salaried = conservative lowest-of available evidence (paystub / W-2 / VOE); variable = 2-yr average with a declining-income...

Kamo·3mo ago
Featurekamo-shared-library

LiabilityReconciler — agency payment-inclusion rules (WS6 core)

Pure/stateless computer turning each liability into the monthly payment that counts against DTI, with a cited rationale: omitted/paid-off excluded, leases alway...

Kamo·3mo ago
Featurekamo-shared-library

Explicit-period quantity spec for delta successors

RequirementQuantity gains an explicit periods list (+ deltaJson builder); when present it IS the required set, so a successor can be scoped to "just send August...

Kamo·3mo ago
Featurekamo-shared-library

**************** as the single period-key source

Adds periodKeyFor(date) so the write-path (satisfier stamping) and the coverage evaluator key periods identically; evaluator now delegates to it. Pure/additive,...

Kamo·3mo ago
Featurekamo-shared-library

Period-coverage primitives for period-aware document collection

The pure, additive foundation of period-aware collection (doc 06 §4) — the first slice of the bank-statement "collect only the months I don't have yet" fix. Zer...

Kamo·3mo ago
Featurekamo-marketing

Replace forked chat with hosted <kamo-chat> embed; delete legacy proxy widget

Swaps the forked AI/live-support React chat (PublicChatWidget + AiChatPanel + LiveSupportPanel + the /api/chat/** server proxy routes) for the hosted, self-them...

Kamo·3mo ago
Featurekamo-internal

Add install-QR (self-hosted APK) to Setup Mobile App tab

Install/Sign-in toggle: "Install" shows a QR to the signed release APK on the new phone can download+sideload it; "Sign in" keeps the password-gated OTK flow.

kamo·3mo ago
Featurekamo-internal

Web Chat Integration design customizer + live preview

Adds a Customize dialog to the Web Chat Integration tab: an editor form (colors, copy, layout, behavior, AI prompt) on the left and an instant, non-interactive ...

kamo·3mo ago
Featurekamo-internal

Web Chat Integration tab — list, create, snippet (BFF + UI)

Phase 2 core of the Web Chat Integration settings tab: BFF routes proxying to the Phase-1a MediaService CRUD, a typed client, and the /settings/features/chat ta...

kamo·3mo ago
Featurekamo-register

Kamo-register honors software auth logo + name

- DynamicMetaLoader: read software identity + auth selectors from config.json, resolve tab title, persist auth logo/name state to sessionStorage - brand.ts + ...

Kamo·3mo ago
Featurekamo-login

Kamo-login honors software auth logo + tab title

- DynamicMetaLoader: read software identity + auth selectors from config.json, set tab title from resolved name (authNameBrandSource), persist auth-logo state...

Kamo·3mo ago
Featurekamo-internal

LabelManager software identity UI + internal tab title

- Company Info: software name/short-name + login/register name + tab-title selectors - Branding: software full/simple logo uploads, override toggles, and per-su...

kamo·3mo ago
Featurekamo-internal

3-stage org onboarding guidance (create → finish DNS → enter)

Generalize the first-org hero into a single stage-aware guidance panel keyed on the member's owned-org count + DNS status (from /api/security/org/my-networks): ...

kamo·3mo ago
Featurekamo-internal

Dual company/software resolver + delivery + consumption

- Organization.ts: deliver software identity + per-surface selectors via OrgContext - brand.ts: **************** (+ vitest, 8 cases) - ThemeLogo: logoSoftware/l...

kamo·3mo ago
FeatureSecurityService

Software logo upload types + config.json bake

- uploadLogo: explicit object-key switch **************** with rejecting default so a software upload can never clobber the company logo.svg - copyFolder: pre...

Kamo·3mo ago
Featurekamo-shared-library

Add software white-label branding columns to Organization

Kamo·3mo ago
Featurekamo-internal

First-org CTA hero for members on the platform org

Show an onboarding hero at the top of the home launchpad inviting a KamoCRM-platform member (not a team member) who hasn't yet created a child org to spin up th...

kamo·3mo ago
FeatureVOIPService

TURN-REST credentials endpoint for the mobile softphone

GET /api/voip/turn/credentials mints ephemeral coturn creds (HMAC-SHA1 over "<expiry>:<memberId>" with the shared static-auth-secret) so native/cellular WebRTC ...

Kamo·3mo ago
FeatureSecurityService

Expose per-org primaryColor + logo URLs on /my-networks

Each org row now carries primaryColor (Organization.colors.colorPri, '#'-prefixed to match config.json) and derived logoUrl/logoSimpleUrl (theme.<domain>/public...

Kamo·3mo ago
FeatureMediaService

Snapshot web-chat integration id on support visitor + ticket

Resolves the WebChatIntegration by creatingKeyHash (enabled-filtered, consistent with bootstrap()/AI-prompt resolution) once in createSupportSession and stamps ...

Kamo·3mo ago
FeatureAIService

Per-integration public AI prompt + session attribution

Upgrade the public-chat system-prompt waterfall from per-org to per-integration: PublicAiChatController now reads the X-Public-Chat-Key-Hash header (nullable) f...

Kamo·3mo 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