KamoCRM

Live Change Log

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

18,947
Total Changes
6,853
Features
5,728
Fixes
30
Projects
Filter by project
All Projects18,947AIService287APIService179BillingService166ConversionService121DaemonService152DocsService276ESigService103EmailService654InitializerService352KBService163KlusterServices778MCPGatewayService280MediaService631RAGService79SecurityService2,082TranslateService62VOIPService267VectorService11kamo-apps29kamo-asterisk-support29kamo-capcha17kamo-capcha-widget4kamo-internal8,903kamo-login351kamo-marketing642kamo-nowww20kamo-register218kamo-shared-library1,903kamo-signer-monorepo73kamolos115
Filter by type
All TypesBuild23CI528Chore800Docs3,296Feature6,853Fix5,728Other1,007Performance176Refactor286Revert23Style45Test181Upgrade1
July 16, 2026
FeatureSecurityService

Proxy closing-package assemble (light up the eClose write side)

POST **************** (operator-gated, org-stamped) → MLOSDocOrchestration assembler: resolves the tenant closing-workflow template as of the closing date + mat...

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

Proxy the loan qualification read (operator-gated)

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

Mirror native e-sign completion to the disclosure stub + fix sent status

(1) BorrowerSignatureService now mirrors a terminal native envelope status back onto the locked disclosure stub (doc 05 §4.2 map) on the borrower's my-signature...

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

Revive soft-deleted member pref on upsert instead of 500

Per-member UI preferences (nav layout, hex-head sizes, etc.) are stored one row per (member_id, pref_key) in MEMBER_UI_PREFERENCES, guarded by the unique constr...

Kamo·4mo ago
FeatureSecurityService

Borrower clear-to-close proxy

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

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

Accept X-***-Token header on my-networks + all-networks

getMyNetworks/getAllNetworks only read the OTK request-attr or the *** cookie, — no org beyond the device-exchanged primary ever loaded, and the active org had ...

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

POST **************** — gate Mobile Copilot QR

Verifies the caller's own password (passwordEncoder.matches against their session's user) without changing anything. Used by the mobile-access-otk BFF route so ...

Kamo·4mo ago
ChoreSecurityService

Rebuild against shared-lib for ALLOW_MOBILE_ACCESS right

RoleRightsSyncService backfills the new general right to all roles on boot.

Kamo·4mo ago
July 15, 2026
FeatureSecurityService

Device-token SSO **************** stream tokens, X-*** header parity

- DeviceAuthController: durable device credential per (user, device) with rotate-on-exchange + 60s grace; /device/exchange mints a per-org *** via PostAuth*...

Kamo·4mo ago
TestSecurityService

Prove closed-loan trainer convergence + retire + concurrency

Drives ClosedLoanTrainerService across successive passes with the (pre-live) MeridianLink wire and vision read stubbed, locking the behaviour the design hinges ...

Kamo·4mo ago
FeatureSecurityService

Cache closed-loan docs across passes; retire on solve/exhaust

The trainer now refines a loan over multiple passes instead of one-and-done: - TrainingDocStore is a PERSISTENT, deterministically-keyed cache (key = hash of...

Kamo·4mo ago
FixSecurityService

Trainer must not clobber its own claim or an operator's pause

After the atomic claim() bulk-updates the row to RUNNING, mirror that in the in-memory entity — the pool thread has no open session, so a later full-row save wo...

Kamo·4mo ago
FeatureSecurityService

Harden closed-loan trainer — concurrency, idempotency, limits

- Concurrency: in-process activeOrgs guard + the DB claim() so this instance never double-walks an org and two replicas can't overlap; a run whose heartbeat...

Kamo·4mo ago
FeatureSecurityService

Closed-loan auto-trainer + platform control endpoints

A closed loan is ground truth: its MeridianLink metadata is the answer key, its documents are the input. ClosedLoanTrainerService walks each MeridianLink org's ...

Kamo·4mo ago
FeatureSecurityService

DOC_REJECTED email carries the plain-language reason

Both reject paths now pass **************** to the borrower's rejection email instead of the raw enum literal.

Kamo·4mo ago
July 14, 2026
FeatureSecurityService

Platform QC queue + review endpoints (top-level owners)

system-config gains a cross-tenant extraction review queue + confirm/correct/reject, gated to top-level owners — the central labeling surface for the shared mod...

Kamo·4mo ago
FeatureSecurityService

Platform extraction config + cross-org corpus/accuracy/export

system-config GET/PUT now carries extractionAutoApplyConfidence + extractionModelId and reports the platform-wide corpus size + per-doc-type accuracy; adds a cr...

Kamo·4mo ago
FeatureSecurityService

QC endpoints + confidence-gated extraction + gift/tax reads

- QcController (/api/security/mlos/qc, LOS_VIEW_PIPELINE): review queue, review action (confirm/correct/reject), NDJSON training-data export, per-doc-type a...

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

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