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 1, 2026
FeatureSecurityService

Goals read the shared dial count, and each-member goals

A call figure now comes from DialTally, so Home and the scoreboard agree: opening the dialer alone is no longer a call, and first-text time is the middle time r...

Kamo·1w ago
FeatureSecurityService

The cockpit, goals and per-loan money

A member's call list and pipeline counts, an organization's goals measured from the permanent records, and a loan's revenue and cost in the organization's own c...

Kamo·1w ago
FeatureSecurityService

An SI's scheduled floor duty, a person's lead from a capture, and the owner's call on SI loan access

The duty and its tool scope commit together. Only the org owner, in their own session, may change SI_LOAN_ACCESS.

Kamo·1w ago
ChoreSecurityService

Rebuild for rights 673-674

Kamo·1w ago
FixSecurityService

Automated and approved loan moves answer to the linked-loan rule

One LinkedLoanRule now decides for stage moves and for loan milestones. With no person a loan linked to an external LOS does not move. A review approval moves o...

Kamo·1w ago
FixSecurityService

Keep DKIM verified on a sweep, as SPF is

dkim_verified only moved when an owner reopened the DKIM card. It now decides whose name an org's mail carries, so a published record has to count by itself.

Kamo·1w ago
ChoreSecurityService

Rebuild for a stream's email keeping the org's text hours

OutreachCheck lives in the shared library, and this service answers it.

Kamo·1w ago
TestSecurityService

Prove the pipeline controllers refuse a caller with no session

The ratchet could not see their guard, so it now recognizes pipelineAccess.orgId, and a new test calls all 21 handlers with no session and requires a 401 before...

Kamo·1w ago
FeatureSecurityService

A lead's stage and its loans follow each other, switch by switch

Both directions are off until a lender turns them on, and the map is org data on the stage. Loan to lead: a stage follows the least advanced loan, heard off th...

Kamo·1w ago
FeatureSecurityService

The lead outbox bean and the internal actions automation-service calls

Lead changes reach the outbox on the lead's own transaction, inside a savepoint, and cost nothing for an org with no published stream. Lead writes and loan move...

Kamo·1w ago
FeatureSecurityService

Pipelines, board, stage moves, dropdown fields and saved views

Rights 661-664. Dark by default: nothing changes for an org with no pipeline or fields. The board shares the grid's permission floor and filters, and each colum...

Kamo·1w ago
FeatureSecurityService

The lead's contact facts, Stop all outreach, and an organization's contact rules

GET **************** and its outcome, stop, resume, consent and check actions, under the same read gate as the Communications tab; /api/security/contact-rules f...

Kamo·1w ago
October 31, 2026
FeatureSecurityService

A lead's loan rollup, and corrections to deals and leads

A lead holds many loans, so stop treating one as the lead's. - The legacy Arive path took the lead's newest application, which could already speak for anothe...

Kamo·1w ago
FeatureSecurityService

A mail-only domain, exempt from the one-domain rule

An organization that already has a domain could not add an alias domain: POST /domains refuses a second root (ONE_DOMAIN_PER_ORG), and that is every organizatio...

Kamo·1w ago
October 29, 2026
FixSecurityService

Forget an invoice's expired card payment page

An abandoned Stripe Checkout page (it expires unpaid after 24 hours) stayed on the invoice for good, so the invoice looked mid-payment: it could not be updated ...

Kamo·1w ago
FeatureSecurityService

Send an updated invoice, and show the customer everything they owe

- Sending an invoice updated since it last went out uses the new commerce.invoice_updated email: what changed, the old and new amounts, the new due date, an...

Kamo·1w ago
October 28, 2026
FeatureSecurityService

An added member's welcome lets them set their first password

A member an administrator adds has no password, so the plain WELCOME's Sign in button led nowhere. Send WELCOME_SET_PASSWORD instead when the account has no pas...

Kamo·1w ago
FeatureSecurityService

My Bill — an organization owner's own bill from the seller's ledger

GET /api/security/pos/my-billing answers the owner's state (current, due, overdue), open invoices, the estimated next renewal, past invoices, the seller's remit...

Kamo·1w ago
FixSecurityService

Mark the adverse-action clock's Spring constructor, so SecurityService boots

With a second (test) constructor and neither marked, Spring looked for a no-argument one and the new pods crashlooped; the older pods kept serving.

Kamo·1w ago
FixSecurityService

Pricing, capital and servicing policy tabs load before a first version is published

GET **************** built its body with Map.of("active", <active or null>, "history", ...). Map.of refuses null, so for any organization that had not published...

Kamo·1w ago
FeatureSecurityService

Read one SI decision for its review trail

GET **************** what the SI decided, why, how sure it was, the stage and function, the gate's result, and the loan it is on — only for a decision on one of...

Kamo·2w ago
FeatureSecurityService

Name loans by borrower and loan number from their loan-file ids

GET **************** (at most 200): borrower name and loan number (the application id) for each, staff only, own-loans aware. For the consoles that only hold lo...

Kamo·2w ago
FeatureSecurityService

Find a loan by borrower name or loan number

GET **************** — up to 20 (max 50) of the org's applications whose loan number starts with the digits typed or whose borrower's first, last or preferred n...

Kamo·2w ago
FeatureSecurityService

A person's denial starts the ECOA notice clock, when the lender tracks it

Only an automated-underwriting decoder armed the 30-day adverse-action clock, so a loan a person denied in Kamo never showed a notice owed on the Adverse Action...

Kamo·2w ago
FixSecurityService

An edit never creates an older loan in the external MLOS

Any successful write under /mortgage-apps/{uid} queues an outbound sync, and a loan with no link was then created in the provider whatever its age — so editing ...

Kamo·2w ago
FeatureSecurityService

The KamoUniverse Assistant skill's client always makes a personal Alexa link

A second Alexa skill (custom only, so Alexa voice profiles work) links through Kamo OAuth client iot.alexa.assistant (same IOT_ALEXA purpose, same vendor redire...

Kamo·2w ago
FeatureSecurityService

Every automatic MLOS email and loan change waits for the lender's switch

A lender running its loans in another loan origination system (Harmony with Arive) must not have Kamo writing to its borrowers or changing its loans on top of t...

Kamo·2w ago
FeatureSecurityService

A terminated SI set back to Active is re-hired as the same SI (TPSIREHIRE)

Owner 2026-10-28: terminated SIs are re-activatable like people. Active on a terminated SI's status now runs AiLifecycleService.rehire after the rest of the sav...

Kamo·2w ago
FixSecurityService

An empty PKCE pair is no PKCE, so Google Home can link without it

kamo-login forwards parameters the client did not send as empty strings; the authorize check took "" as a challenge and told Google (require_pkce off, sends no ...

Kamo·2w ago
FeatureSecurityService

Google Home account linking — an IOT_GOOGLE principal provider and Google's redirect URIs

IOT_GOOGLE is the Alexa voice-link provider with assistant GOOGLE on I-A1/I-A2 (one link table in IoTService). The client admin takes a Google Cloud project id ...

Kamo·2w ago
FeatureSecurityService

An SI may act through its higher-up's own account on their authenticated order

TPONBEHALF (owner 2026-10-28), the NO INSUBORDINATION RULE extended: on an authenticated direct order, the SI may use everything the requester can do under thei...

Kamo·2w ago
FeatureSecurityService

A short member session for the member speaking on an Alexa link, and voice turns as order references

Voice Assistant R3: POST **************** {orgId, memberId, linkId, grantId} -> {***, expiresAt} (X-Internal-Auth = IOT_INTERNAL_AUTH_SECRET). Minted only for a...

Kamo·2w ago
FeatureSecurityService

Enforce own-loan access; Team Members default to their own loans

MLOS endpoints now tell apart members who see all of the organization's loans (View Mortgage Pipeline, or god mode) from members who hold only View Own Mortgage...

Kamo·2w ago
FeatureSecurityService

The Alexa consent carries whose link it is, the place and "What can Alexa use?" to IoTService

Voice Assistant program (P1-6, P2-8, P5-3): LinkChoice gains ownerKind (ORG | MEMBER), siteId and grantChoice, shape-checked here and judged by IoTService; the ...

Kamo·2w ago
FeatureSecurityService

Owner and administrator changes follow one set of rules; another member's avatars are theirs

Leadership (OrgLeadershipService): - GET/PATCH **************** for the profile page. - PATCH .../access owner changes go through the same rules (an administrat...

Kamo·2w ago
FeatureSecurityService

Terminate an SI from its status, status counts, no deletes on /account

- An SI's Terminated status runs the SI retire lifecycle after the rest of the save (runs stopped, phone line, seat and licence released, credential and ses...

Kamo·2w ago
FixSecurityService

The endpoint ratchet sees the patient-SMS relay's internal-auth guard

**************** flagged **************** and .receipt (29e22ca7) as endpoints that resolve no session. They are server-to-server (VOIPService -> SecurityServic...

Kamo·2w ago
FeatureSecurityService

Members holding the Administrator role can edit its rights

PUT /api/security/roles/{id} routes the Administrator role's rights through **************** BEFORE any other write so a refused save writes nothing. Only a cal...

Kamo·2w ago
FeatureSecurityService

Loan officer and investor pickers for the Mortgage Lending reports, proven on the fleet's Hibernate

- mortgageLoanOfficers: members assigned as loan officer on at least one of the organization's deals (narrower than every member, so the picker lists names th...

Kamo·2w ago
FeatureSecurityService

Seed the ten Mortgage calculator rights from CALC_SIMPLE

Whoever can open the calculator today finds Calculator -> Mortgage on the boot that adds CALC_MORTGAGE_* (shared-lib 1ae01ae8); each is then granted or withdraw...

Kamo·2w ago
October 27, 2026
FeatureSecurityService

A meeting line a signed-in supervisor said is an order the Tool Plane may lend on (meet:<turn id>)

TPMEETAUTH (owner order 2026-10-26): in Kamo Meet a signed-in supervisor's request is their direct order (No Insubordination union). The Tool Plane verifies the...

Kamo·2w ago
October 26, 2026
FixSecurityService

An order may be a teammate's proven email or a request they confirmed in Kamo

The Tool Plane now verifies orders given by a teammate's own email (email:<folder>/<uid> or the wake's email:<mailbox>|<folder>|<uid>) and by a request the memb...

Kamo·2w 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