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
Featurekamo-internal

The lender words its own text-message consent in Borrower Guide settings

A 'Text Message Consent Wording' field beside the guide's name and opening line, with help for a first-time admin and a preview of the checkbox exactly as a bor...

KamoΒ·5h ago
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
Featurekamo-shared-library

A gift saves as a true PATCH, the lender words its own text consent, and a borrower's full consent wording is kept

- AppMortgageService.patchGift merges the request over the stored gift, so saving one field no longer clears the amount, donor and recipient. - LenderProfile....

KamoΒ·6h ago
FeatureEmailService

Sample values for the co-borrower request and its one-time code, so the admin preview renders them

Rebuilds EmailService onto the shared library that carries the MICRO_ACTION_REQUEST and MICRO_ACTION_CODE templates (an org seeds a missing template on first se...

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
Featurekamo-shared-library

A micro action remembers the last document a phone capture uploaded

DDL (last_document_id UUID) applied by hand as the owner role before this push.

KamoΒ·7h ago
Featurekamo-shared-library

Borrower PATCH keeps what a screen did not send, declarations read and save under their URLA names, and single-use co-borrower requests

- BorrowerPatchMerge + **************** the request is laid over the stored borrower, so saving Your Info no longer wipes citizenship, dependents, housing or ...

KamoΒ·7h ago
Featurekamo-internal

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

The work order's Invoice tab becomes RecordInvoice (app/components/invoices), generic over its record: the record (a work order or a retail order), whether it c...

KamoΒ·7h ago
FeatureEmailService

Preview variables for the invoice and invoice receipt emails

commerce.invoice_sent and the new commerce.invoice_receipt (a paid work order or order invoice's receipt) get sample variables, so the template editor's preview...

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
Featurekamo-shared-library

Void records who, an order's invoices on an index, and the invoice receipt template

**************** (VOIDED_BY_MEMBER_ID) so a voided invoice shows who voided it; IX_INVOICE_ORDER and **************** for a retail order's Invoice tab; ********...

KamoΒ·7h ago
Featurekamo-shared-library

The application shows its persona and chosen program, and a borrower can say they own no real estate

The application read now carries persona and selectedProgramCode (enum names, read-only). A borrower can answer URLA section 3 "I do not own any real estate" (o...

KamoΒ·8h ago
Featurekamo-shared-library

Record lead events for drips that start when someone enters a saved audience

AUDIENCE_ENTERED drips listen to lead created, status changed, reassigned and credit assigned, so an existing lead that comes to match the audience is noticed.

KamoΒ·8h ago
FeatureEmailService

Audience filters on every trigger, account and loan triggers, enroll by filter

TriggerConfig gains leadFilter, accountFilter, loanFilter, loanStatuses, audienceId and includeExisting; a drip saved with the flat market/vendor/ product/state...

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
Featurekamo-internal

Who Qualifies on every trigger, saved-audience/account/loan triggers, and enroll by filter

- Every lead trigger narrows with the shared Audience Builder's lead section ("Who Qualifies"), saved as config.leadFilter; old drips' flat market/vendor/prod...

KamoΒ·9h ago
Featurekamo-internal

Drag the widget tiles in the home page drawing, not the list

The drag belongs on the "Your home page" grid at the top of My Widgets, so that is now where it lives. Widget tiles are dragged exactly like panes on the launch...

KamoΒ·9h ago
Featurekamo-internal

Email Invoice and the customer's link on the Invoice tab, and an account's invoices

The Invoice tab gets a Send to Customer card: Email Invoice (recipient prefilled from the account and editable, an optional note, and the email exactly as the c...

KamoΒ·9h ago
Featurekamo-internal

A Borrower Guide tab β€” the lender names and pictures the one guide on its borrower portal

Owner decision 2026-11-11: one guide per lender, in the lender's colours. The MORTGAGE market gets a Borrower Guide tab (?tab=borrower-guide): the guide's pictu...

KamoΒ·9h 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
Featurekamo-shared-library

Keep a borrower's ITIN or passport, and add the consent scopes the portal records

A borrower without a Social Security number can now give an ITIN or a passport number, or choose to give it to their loan officer. Each number is encrypted at r...

KamoΒ·9h ago
Featurekamo-shared-library

A work order invoice's customer links and sends, and an index for an account's subscription invoices

CommerceInvoiceLink (commerce_invoice_links): one view-online link per row, stored as the SHA-256 of a 256-bit token, never the invoice id; expires_at, revoked_...

KamoΒ·9h ago
Featurekamo-shared-library

A borrower can keep a rate watch on their loan, and a deal can have a closer

BorrowerRateWatch (mlos_borrower_rate_watch, created by hand as the owner role) holds a borrower's opt-in "tell me if rates drop" preference for one application...

KamoΒ·9h ago
Featurekamo-shared-library

The lender profile names and pictures the borrower guide

Owner decision 2026-11-11: one guide per lender on the KamoMLOS portal, named and pictured by the lender. Three nullable columns on mlos_lender_profile β€” guide_...

KamoΒ·9h ago
Featurekamo-internal

One Audience Builder for leads, accounts and loans, and Saved Audiences

- Shared Audience Builder **************** lead, account and loan sections driven by AudienceOptions; a control shows only when the server lists its capabil...

KamoΒ·10h ago
FeatureEmailService

Lead/account/loan audience filters, saved audiences and audience options

Extends LeadAudienceFilter with status/sub status (include or exclude), assignment, source, created/assigned/last-activity date rules, callback, birthday, loan ...

KamoΒ·10h ago
Featurekamo-internal

Drag and drop to reorder widgets on My Widgets

The widgets page is now split into On Your Home Page (in the order the launchpad draws it) and Not On Your Home Page. The first list is sortable: drag a card an...

KamoΒ·10h ago
Featurekamo-internal

Domain Setup can send as the domain itself, extends SPF instead of replacing it, and offers extra protection

- Add a domain: step 2 chooses between a separate sending name (recommended) and the domain itself. For the domain itself, the senders its SPF already lets ...

KamoΒ·10h ago
Featurekamo-internal

The bill pill turns red when due and shouts when overdue

DUE was a muted amber with a slow breath and read as a notice, not a bill. Both warning states are now red and differ in intensity: DUE breathes a glow and ping...

KamoΒ·10h ago
FeatureEmailService

Send bulk mail from the domain itself, and extend SPF instead of replacing it

- A sending domain can now be the domain itself (acme.com), not only a name of its own (news.acme.com): create/lookup take root=true. Its records are SPF, D...

KamoΒ·10h ago
Featurekamo-internal

Mirror MANAGE_MARKETING_SITE (708)

A standalone root under General Permissions, so security models can grant Manage Marketing Site to someone other than the owner.

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
FeatureBillingService

PlanDto.flatPrice for a flat plan's per-month label

A flat product (CorePlans.isFlat, e.g. Marketing Website $50/month) now carries its flat monthly charge so the console labels it "per month", not "per seat".

KamoΒ·12h ago
Featurekamo-shared-library

Audit types for a website source download and a www connect

KamoΒ·12h ago
FeatureKlusterServices

Apply marketing/ from deploy-services like every other folder

A "Deploy Marketing Sites namespace" step runs marketing/apply.sh (namespace kamomarketing, marketing-ci and site-edge RBAC, Middlewares, secrets created-if-mis...

KamoΒ·12h 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
FeatureInitializerService

Seed the Marketing Websites market and plan; attach agreements to their market

Market **************** (display order 14, after KamoCRM), plan MARKETING_WEBSITE: $50/mo flat, one seat, $4,950 FLAT setup, no trial, not public, no app bindin...

KamoΒ·12h ago
FeatureBillingService

Core-plan pickers, flat plans, grace periods, bank payments, paid/ended events

- Mailbox/PBX controllers and reconcilers, LicenseUsageService, OrgPlanService: the CORE subscription via CorePlans (never a flat product's Stripe sub); flat ...

KamoΒ·12h ago
Featurekamo-shared-library

A second subscription is safe, grace periods, per-market agreements, paid/ended events

Generic for every org selling through the Subscription line of business: - CorePlans: the core-plan subscription is picked deterministically; a flat product (...

KamoΒ·12h ago
Featurekamo-internal

Manage Marketing Site, the Marketing Websites platform console, and grace-period billing controls

Members (the owner, or a holder of MANAGE_MARKETING_SITE): - NavExtra "Manage Marketing Site" beside EZ Setup; an owner without a site sees "Get a Website". - /...

KamoΒ·12h ago
FeatureMediaService

God-only support topics, the website request ticket and its conversation hook

- Tickets under a god-only topic (SupportTopic.godOnly) are excluded from every support list, count, badge, metric, auto-open and claimable queue unless the v...

KamoΒ·12h ago
FeatureInitializerService

Record the Org Marketing Websites schema and seed its topic and first site

MarketingSitesMigration (@Order(0), idempotent): the WEB-<n> sequence, the NONCONCURRENT indexes and support_topic.god_only exactly as hand-applied 2026-11-10; ...

KamoΒ·12h ago
FeatureKlusterServices

A prepared hand-off can start in a marketing site's checkout, with a WEB-<n> folder

~/Kamo/Marketing/<repo> on first use, through sage's own credential store), cwd (absolute, bounded to the home after resolving links) and workPrefix (BUG defaul...

KamoΒ·12h ago
FeatureAPIService

Relay the marketing-site Forgejo push webhook to SecurityService

Sessionless, raw body and every Forgejo/Gitea signature and event header preserved; SecurityService verifies the HMAC against MARKETING_WEBHOOK_SECRET.

KamoΒ·12h ago
Featurekamo-shared-library

Marketing site, request and dispatch entities, rights and the god-only support topic flag

- MarketingSite / MarketingSiteRequest (WEB-<n> from its own sequence) / MarketingSiteDispatch entities and repositories, matching the hand DDL (column defaul...

KamoΒ·12h 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