KamoCRM

Live Change Log

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

18,399
Total Changes
6,534
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,399AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService621InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,996TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,694kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,826kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,534Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
July 14, 2026
FeatureSecurityService

Extract benefit/award income (SSA, pension, child support)

Adds extraction prompts for SSA_AWARD / PENSION / CHILD_SUP (AI reads the gross monthly amount + a label), and stamps the OtherIncomeSource id deterministically...

Kamo·3mo ago
FeatureSecurityService

Auto-classify uploads to catch wrong-document uploads

A cheap LIGHT-tier "what is this document?" pass on the first page classifies the upload into a coarse family and compares it to the requirement's asserted type...

Kamo·3mo ago
FeatureSecurityService

Extract 12-month bank statements + written VOE

Widens vision extraction to two more borrower doc types that reuse the existing reconciliation vocabulary (zero reconciliation risk): BANK12MO reads as an asset...

Kamo·3mo ago
FeatureSecurityService

Multi-page PDF document extraction (Phase 2)

The vision path was image-URL only, so a borrower's multi-page PDF (bank statement, tax return) couldn't be read. Now: - VaultDocPublicController serves ?page=...

Kamo·3mo ago
ChoreSecurityService

Rebuild against kamo-shared-library SSN encrypt-on-write

No SecurityService source change — this empty commit triggers the CI, which clones kamo-shared-library main at build time, so the deployed image picks up the ne...

Kamo·3mo ago
FeatureSecurityService

Optional ?phone= reverse lookup on GET /api/security/leads

The softphone CRM tab resolves an active caller number to a lead. Add an optional phone RequestParam that filters the org lead list by canonical (last-10-digit)...

Kamo·4mo ago
FeatureSecurityService

A different preferred name forks a new lead

A genuinely different preferred name (compared case-insensitively with outer spacing trimmed) is a different person, so create a brand-new lead instead of renam...

Kamo·4mo ago
FeatureSecurityService

Expose assigned-LO member id + phone for direct chat + presence

The merged LO/chat widget needs to (a) target the assigned officer directly in the borrower's live-support session and (b) query the officer's live presence. Bo...

Kamo·4mo ago
FeatureSecurityService

Assign a loan officer to a NAME-ONLY lead (before email/phone)

The borrower portal already creates the lead the instant a name is given, but enterAssignmentPoolIfActionable kept a name-only lead OUT of the credit accept poo...

Kamo·4mo ago
July 13, 2026
July 12, 2026
FixSecurityService

Register mlos.notification JPA repos so SecurityService starts

EconsentService autowires DisclosureTextRepository **************** but that package was absent from @EnableJpaRepositories — the context failed to start, Crash...

Kamo·4mo ago
FeatureSecurityService

Expose full geo fields + city-scene profile API

- geoip/me now returns **************** (already loaded by the single block+location lookup, previously discarded) — powers city scenes and client personali...

Kamo·4mo ago
FeatureSecurityService

E-consent with WRITTEN ESIGN Act text + the real credit-bureau adapter rail — no owner input required

E-CONSENT: full ESIGN Act §101(c) disclosure authored in-code (scope of consent, right to paper copies, right to withdraw + effect, contact upkeep, hardware/sof...

Kamo·4mo ago
July 11, 2026
FixSecurityService

Prepare-signin authenticates on api.<root> — the auth path can't resolve the myloan.* alias

Same constraint as in-cluster login: provider resolution keys on the canonical api host, not the portal alias, so a correct password still 401'd.

Kamo·4mo ago
FeatureSecurityService

Account bridge — email check, existing-user sign-in provisioning, portal registration

Owner flow: after the funnel captures full name + contact, the next step keys on EMAIL. /portal/account/check → exists?; /prepare-signin verifies the password t...

Kamo·4mo ago
FeatureSecurityService

Closing eSign through the NATIVE engine — envelopes actually send now

Recording a disclosure e-sign envelope was v1 metadata-only. Now, when the tenant's ESIGN vendor rail resolves to KAMO_NATIVE (per-market integrations config — ...

Kamo·4mo ago
FeatureSecurityService

Leads-first resume rail — signed magic links, contact recovery, lead snapshot

- PortalResumeService: 30-day HMAC token (PRESUME|guid|orgId|exp, keyed off the cluster internal.auth.secret — no new secret); mails RESUME_PORTAL_LINK. - POS...

Kamo·4mo ago
July 10, 2026
FeatureSecurityService

Expose US state/region from GeoLite lookups

GeoLookupResult gains subdivisionCode/subdivisionName (GeoLite2 subdivision_1 = US state incl. DC; territories PR/GU/VI/AS/MP arrive as countryCode with no usab...

Kamo·4mo ago
FeatureSecurityService

Anonymous GET /portal/assigned-lo — accepting LO identity for the guid's lead

Powers the borrower portal's top-left LO card the moment an LO accepts the lead (pre-login, pre-application): guid header + org host → lead → assignedTeamMember...

Kamo·4mo ago
FeatureSecurityService

'Meet your loan officer' — the borrower hears the moment their lead is accepted

On accept (ASSIGNED), best-effort MEET_YOUR_LO email to the mortgage lead's borrower: the accepting LO's real name + NMLS + email + a continue-application link....

Kamo·4mo ago
FixSecurityService

Preferred name fills AKA+first; pool entry publishes the realtime lead event

(1) The funnel's preferred name now writes nameFirstAKA AND stands in for nameFirst until the legal name arrives (owner rule) — it was landing on first name onl...

Kamo·4mo ago
ChoreSecurityService

Rebuild against shared-lib createFromLead fix

Kamo·4mo ago
FeatureSecurityService

The lead→application conversion seam — POST /portal/promote

The funnel was a closed loop: nothing ever converted the portal lead into an application (blank mints only — no sourceLead, no seeded fields, no LO inheritance)...

Kamo·4mo ago
FeatureSecurityService

Borrower pricing-quote endpoint — party-gated, integration-config-gated

POST **************** caller must be a loan party (or pipeline steward); resolves the tenant's PRICING_PPE integration — NOT_CONFIGURED / EXTERNAL_VENDOR_PENDIN...

Kamo·4mo ago
FeatureSecurityService

Integrations-status endpoint — the portal's honest view of the org's vendor wiring

GET **************** per-category **************** runtimeVendor from the market integrations config via the runtime resolver. Session-gated; no secrets.

Kamo·4mo ago
FeatureSecurityService

AI vision document extraction — docs → org's vision provider → VerifiedFact(OCR)

The first producer of VerifiedFactSource.OCR: POST **************** reads a vault document (bank **************** ID) with the ORG'S OWN configured vision provi...

Kamo·4mo ago
FeatureSecurityService

ClaimedFactsDTO carries the FULL mortgage lead (35 fields)

Adds the 16 fields the portal structurally couldn't send (monthlyDebts, taxes, insurance, HOA, currentPayment, sellerCredits, renovationCost, borrowerAge, isVet...

Kamo·4mo ago
FixSecurityService

Weld the LO chain — portal leads enter the accept-lead pool; accepted LO survives conversion

(1) PortalLeadService routes a portal lead into the credit-based assignment pool (requiresAssignment=true) the moment it has a contact point — portal leads were...

Kamo·4mo ago
ChoreSecurityService

Rebuild against kamo-shared-library

Pick up LeadListDTO mortgage figures (loan amount/purpose + LTV/DTI inputs) so the /leads grid's Residential-Mortgage columns are served. No code change; CI bui...

Kamo·4mo ago
FeatureSecurityService

Internal LOS apply endpoint for inbound sync

POST **************** {leadUid, provider, loXmlFields} — server-to-server (no session/rights). Constant-time X-Internal-Auth check against the cluster internal-...

Kamo·4mo ago
FixSecurityService

Real soft-delete + reactivate-on-upsert for LOS connection; safe test-connection message

I1: view()/testConnection() now read via the shared-lib's active-filtered finder so a soft-deleted (market,provider) connection reads as "not configured" instea...

Kamo·4mo ago
FeatureSecurityService

Market LOS connection service/controller

Phase 3 (Tasks 3.1-3.2) of the MeridianLink external-LOS integration: CRUD + Test-Connection for a market's MeridianLink connection. - MarketLosConnectionServi...

Kamo·4mo ago
July 9, 2026
FixSecurityService

Fail the upload if resize fails (no full-size fallback)

Reverts the store-original fallback: if ConversionService cannot resize the image, return 422 instead of storing the full-size original (a huge image would then...

Kamo·4mo ago
FixSecurityService

Fall back to the original image when resize fails

ConversionService can native-crash (libwebp-imageio SIGSEGV) or be unavailable, which made every member wallpaper upload fail ("Failed to process image" -> 500)...

Kamo·4mo ago
ChoreSecurityService

Rebuild to pick up shared-lib Organization.bgWatermark

No source change. Triggers CI to re-clone kamo-shared-library main (now carrying the bg_watermark org column added in bc45b97) so the org GET/PUT serialize and ...

Kamo·4mo ago
FeatureSecurityService

Steward passthrough to recompute pipeline-funding P(fund) projections

POST **************** → MlosCapitalMarketsClient (X-Internal-Auth, org stamped from session) → MLOSCapitalMarketsService recompute. Operator-gated like the othe...

Kamo·4mo ago
FeatureSecurityService

Scenario-insights endpoint — LIGHT-tier AI narrative via the org's provider

POST **************** takes a factual (estimated) scenario summary, calls MlosAiClient.text(orgId, prompt, LIGHT) through the org's configured AI provider, retu...

Kamo·4mo ago
FeatureSecurityService

Persist borrower-stated financials + phone onto the mortgage lead

ClaimedFactsDTO gains purchasePrice, downPayment, currentLoanBalance, cashOutAmount and phone; PortalLeadService.applyFacts maps them onto LeadClaimMortgage / t...

Kamo·4mo ago
FeatureSecurityService

Process member uploads like org bg + gate by new rights

- New ImageResizeClient runs member background uploads through the SAME post-processing as org backgrounds (POST **************** and stores the result as ....

Kamo·4mo ago
FeatureSecurityService

Notify the assigned loan officer when a loan's borrower docs are all received

Fires LOAN_DOCS_READY_LO at the satisfy points alongside the borrower DOC_COMPLETE. Resolves the LO via loanFile -> **************** -> Member; self-guarded to ...

Kamo·4mo ago
TestSecurityService

Lock the system-managed originator (projection, freeze, assignment)

8 tests over LoanTransactionService: live projection fills name/NMLS/subject-state license + org and marks LIVE; stale hand-entry is cleared when no LO is assig...

Kamo·4mo ago
FeatureSecurityService

Vault upload can deal-scope a document (loanTransactionId)

The vault upload now accepts an optional loanTransactionId, stamped onto the MemberDocument so a time-sensitive doc (credit report / bank statement) can be boun...

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