KamoCRM

Live Change Log

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

18,391
Total Changes
6,526
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,391AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService619InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,691kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,824kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,526Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
November 11, 2026
FeatureSecurityService

APR beside a locked rate, an explicit clear for "I'm Not Sure", the lender's consent wording, and team photos that load on any portal domain

- Workspace rate lock: when the loan officer recorded an APR on the pricing snapshot behind a loan-desk lock with the SAME rate, the posture carries it as a...

KamoΒ·6h ago
FixSecurityService

The loan and property endpoints are true PATCHes

KamoΒ·6h ago
FixSecurityService

The portal's job, account, debt, other-income and expense edits are true PATCHes

Each endpoint now merges the request over the stored row (shared library patch* methods), so changing a job's title no longer fails on the NOT NULL employment t...

KamoΒ·7h ago
FeatureSecurityService

Co-borrower requests and phone capture links, borrower saves as true PATCH, and document readings that say which page they came from

- MicroActionService + PortalMicroActionController (/portal/micro/{token}): a signed, single-use link. A request to the other borrower (confirm income, check ...

KamoΒ·7h ago
FeatureSecurityService

Void Invoice, Email Receipt, and a retail order's Invoice tab

RecordInvoiceController is the Invoice tab's door for any record - list, Create Invoice, read, PDF, Record Payment, Void Invoice, delivery, send, link - with on...

KamoΒ·7h ago
TestSecurityService

The application read names persona, selectedProgramCode, ownsNoRealEstate and realEstateOwnedCount

Pins the wire names the borrower portal reads, and rebuilds SecurityService onto the shared library that added them (a shared-library-only change deploys nothin...

KamoΒ·8h ago
FeatureSecurityService

Borrower consents are recorded as evidence, submit needs them, and each signer opens only their own link

A borrower now gives five consents in the portal, each its own versioned text per lender (default v1 seeded with its hash on first touch, a lender overrides wit...

KamoΒ·8h ago
FeatureSecurityService

The borrower's workspace knows their loan team, lock, rate watch and what happened

A new /mortgage-apps/{uid}/workspace surface for the MLOS borrower portal, gated like the application's own reads (staff who see the loan, or a party to it): - ...

KamoΒ·8h ago
FeatureSecurityService

A borrower's own "text me updates" tick records SMS consent on their lead

The borrower portal's save-my-spot form now offers an optional text-message consent checkbox. When the borrower ticks it and gives a phone number, the lead gets...

KamoΒ·8h ago
FixSecurityService

Talk It Through no longer 500s when the portal sends no flow

Set.of(...).contains(null) throws, so a request without a flow hint (the funnel before a purpose is chosen) answered 500. Found by a live probe after deploy. fl...

KamoΒ·8h ago
FeatureSecurityService

Email a work order's invoice, and its customer link on the signer's invoice page

The public "view your invoice online" page already exists for subscription invoices: the signer app's sign.<org domain>/<locale>/i/<token>, branded, phone-ready...

KamoΒ·9h ago
FeatureSecurityService

The lender names its borrower guide, and the portal can Talk It Through (SI)

Owner decisions 2026-11-11 (KamoMLOS borrower-portal overhaul, stream S5). Borrower guide (one per lender): - BorrowerGuideService stores the guide's name, gre...

KamoΒ·9h ago
FixSecurityService

No read-only transaction around multi-read views; retry the edge routing read

YugabyteDB answered the edge's routing read with 'Restart read required' β€” a restart-read cannot be retried mid-transaction. Each read now runs as its own state...

KamoΒ·11h ago
FeatureSecurityService

Org marketing websites β€” member, platform, edge and webhook APIs

- **************** site, preview pass, change requests (+ pictures), cancel, source.zip (Forgejo archive streamed, audited), get-a-website lead, connect-www (...

KamoΒ·11h ago
FeatureSecurityService

POS grace periods, My Bill core plan + every subscription, bank payments

- GET/PUT **************** (seller's MANAGE_SUBSCRIPTIONS): opt-in grace period, OFF by default; the hourly billing job stops service when a deadline passes...

KamoΒ·12h ago
November 10, 2026
FeatureSecurityService

Manager-only endpoint for the Org Chart drag-and-drop

KamoΒ·18h ago
FixSecurityService

Accept-gate refusal no longer says both a note and a status are needed

The requirement is per market now.

KamoΒ·18h ago
FeatureSecurityService

Myloan is a required CNAME, SSL-probed and reserved

KamoΒ·1d ago
FixSecurityService

A failed request tells the caller to try again, not what the exception said

25 controllers returned e.getMessage() to the browser, which can name tables, columns and internal hosts. They now answer with a plain 'please try again' and lo...

KamoΒ·1d ago
November 9, 2026
November 8, 2026
FixSecurityService

The store sync schedule tells Spring which constructor to use

With a second (test) constructor and no @Autowired, the new pod failed to start: "No default constructor found". The running pods were untouched.

KamoΒ·3d ago
FeatureSecurityService

Scheduled online store sync, Sync Now in the background, honest connection test

- RetailStoreSyncScheduler: every 5 minutes, under the singleton lock (one pod), syncs each active store connection whose own interval (15 minutes to a day) h...

KamoΒ·3d ago
FeatureSecurityService

A work order's invoice β€” create it, read it, open its PDF, record payments

ServiceJobInvoiceController, under **************** relays to InvoicingService's CommerceInvoice (issue-from-job, payments, PDF). Rights are the work order's: c...

KamoΒ·3d ago
FeatureSecurityService

Accept Result for a vendor order whose result the lender's switch kept off the loan

POST **************** any mortgage write right and sight of the loan; org and the deciding human (behind enter-as) from the session; this loan's order only. Ung...

KamoΒ·3d ago
FeatureSecurityService

Purchase request notices travel under their own kinds

A request sent for approval is raised as PURCHASE_REQUEST_SUBMITTED and its answer as PURCHASE_REQUEST_DECIDED (kamo-shared-library 6a765c18, gated in emailserv...

KamoΒ·3d ago
FeatureSecurityService

A person clears or confirms a vendor finding; the DMDC SCRA file exchange, audited

- **************** (Compliance Command Center or Financial Complexity Workbench): the screen's steward tasks with each vendor finding's evidence, filed report...

KamoΒ·3d ago
CISecurityService

Queue builds instead of cancelling them, and skip a run once a newer commit is on main

Owner report 2026-11-08: builds kept running and never completed. A clean build takes ~20 minutes while main gets pushes every 10-20 minutes, so cancel-in-progr...

KamoΒ·3d ago
DocsSecurityService

Finicity and Truv links record their own connection types

Rebuilds SecurityService onto shared-lib b3ae35eb, where FINICITY and TRUV links stop borrowing PLAID_AUTH / ARGYLE.

KamoΒ·3d ago
FeatureSecurityService

Administrator templates offer the Antivirus rights; platform status shows baseline-scan progress

ADMIN_TEMPLATE_DEFAULT_GRANTS gains VIEW_ANTIVIRUS, MANAGE_ANTIVIRUS_POLICY, ANTIVIRUS_WIDGET, _ADDED, _OPTIONAL and _MOVABLE (703-707 minus _REQUIRED: a member...

KamoΒ·3d ago
FeatureSecurityService

The borrower links their bank or payroll with the lender's Plaid, Finicity or Truv

Lender-side asset and income orders ride the borrower's own portal Connection, but nothing ever wrote one a vendor could use. A borrower-link SPI (one bean per ...

KamoΒ·3d ago
FixSecurityService

A staff vendor-document upload files under the requirement's document type

ImageService refuses a LOAN image without an ImgDocType, and uploadLoanDocument passed none (the doc type's name went into the description), so every staff vend...

KamoΒ·3d ago
FixSecurityService

Outbreak alerts reach the platform owner; import and rate-sheet detections name the member

Every platform operator holds MANAGE_PLATFORM_ANTIVIRUS only implicitly (owner floor), so the explicit holder list was empty and an outbreak told nobody. Recipi...

KamoΒ·3d ago
FeatureSecurityService

Seed Manage Compliance Requirements; announce member activation for the engine

MANAGE_COMPLIANCE_REQUIREMENTS (701) seeds from MANAGE_LEGAL_AND_COMPLIANCE; OVERRIDE_COMPLIANCE_GATE (702) deliberately unseeded (owner implicit). TeamMemberAc...

KamoΒ·3d ago
FeatureSecurityService

DocuSign Connect carries the org in its path and verifies that org's key first

The Connect address is public on the shared API host, which cannot tell orgs apart, so envelopes now send **************** (shared-lib VendorWebhookUrls). The l...

KamoΒ·3d ago
FeatureSecurityService

Provider connections carry their webhook address, setup and signing field

From VendorWebhookUrls: webhookUrl (null when the vendor sends no updates), webhookSetup (LENDER_ENTERS / SENT_BY_KAMO) and webhookSigningFieldId, so the Partne...

KamoΒ·3d ago
FeatureSecurityService

Stock endpoints read and write the one stock count; market customers are scoped

- /{marketId}/inventory (settings) and /api/security/pos/inventory (pipeline Stock view) both go through StockService: org-scoped market list in one statement...

KamoΒ·3d ago
FeatureSecurityService

Second write-only secrets; DocuSign Connect key stored encrypted

- CONFIG_SECRET catalog fields are encrypted into configJson on save, kept when left blank, never echoed: the list view and every change-log snapshot strip ...

KamoΒ·3d ago
FixSecurityService

Stamp a vendor on every credit pull so a reseller order saves

Connection.VENDOR is NOT NULL; a reseller key (Xactus, Credit Plus, MeridianLink, CBC Innovis, Factual Data) mapped to no ConnectionVendor, so the pull ran and ...

KamoΒ·3d ago
FeatureSecurityService

Credit resellers on MISMO 2.4 with Test Connection; an eSign SPI with DocuSign and DocMagic eSign

Credit (mortgage/credit): - Every catalogued reseller (Xactus, Credit Plus, MeridianLink, CBC Innovis, Factual Data) now sends the MISMO 2.4 credit request th...

KamoΒ·3d ago
FeatureSecurityService

Relay every pricing engine's quote, not only Kamo's native one

The borrower pricing quote returned EXTERNAL_VENDOR_PENDING for any PRICING_PPE engine other than Kamo's own. MLOSPricingService now dispatches to the org's eng...

KamoΒ·3d ago
FeatureSecurityService

Catalog-driven provider connections, primary vendor, Test Connection

- GET **************** every vendor category, its owning runtime and the vendors a lender can connect, with their forms. - Creating/updating a connection vali...

KamoΒ·3d ago
FeatureSecurityService

Market-scoped orders, customers, carts, drafts and shipments; cart and draft conversion

- GET /pos/orders takes ?marketId=; GET /pos/orders/customers lists a Retail market's customers from its orders, with walk-in sales counted apart. - Carts, dr...

KamoΒ·3d ago
FeatureSecurityService

Market-scoped work orders and subscriptions; dispatch and customer endpoints

- GET **************** lists one market's work orders (plus those with no market) - PUT /service-jobs/{uid}/customer files a job under an account or takes it ...

KamoΒ·3d ago
FeatureSecurityService

ProcurementController β€” market-filtered lists, change/reject/withdraw a request, send/receive/close/cancel a vendor order, records returned from every change

- purchase requests and vendor orders move out of POSController into ProcurementController (MANAGE_PROCUREMENT to buy and run orders, APPROVE_PURCHASE_REQUEST...

KamoΒ·3d ago
FeatureSecurityService

The Antivirus API, platform controls and scheduled endpoints; gate SecurityService's own file paths

/api/antivirus/** (and the /api/security/antivirus twin the console proxy tries first): overview, detections, settings (audited ANTIVIRUS_POLICY_CHANGE), false ...

KamoΒ·3d 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