KamoCRM

Live Change Log

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

17,500
Total Changes
5,986
Features
5,284
Fixes
30
Projects
Filter by project
All Projects17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
October 26, 2026
Featurekamo-shared-library

Every SI speaks by its personality, and the tables for background sound, voice consent and caller phrase memory

PhoneStyle compiles an SI's traits into spoken phone rules (contractions and address forms, warmth, humor, energy, hedging, empathy, curiosity, register, region...

Kamo·16h ago
FeatureMediaService

SIs play Texas Hold'em with members, and every member's Cheddar works again

SITP TPGAMES (owner 2026-10-26). Cheddar wallet: - The wallet's only door (universe-gateway -> universe-persistence) has had no endpoints since the KamoUnive...

Kamo·16h ago
FeatureMCPGatewayService

Mail_send takes an HTML body's plain-text version and one text file written by the caller (TPRECAPS)

The SI's meeting recap now carries the meeting's full transcript; past the body's limit it goes as a .txt attachment. textBody (with bodyFormat HTML) becomes th...

Kamo·16h ago
FeatureEmailService

A message's sender facts for SI identity checks; SI_AUTH_REQUEST belongs to no app

The provenance answer now also says what the message itself claims about its sender: From, Reply-To, the server that handed it to ours, and the SPF/DKIM/DMARC r...

Kamo·16h ago
Featurekamo-shared-library

SI_AUTH_REQUEST notification kind and the SI authentication log entities

Owner 2026-10-26: direct orders reaching an SI over a channel that proves nobody's identity are confirmed by the member in Kamo first. Appends **************** ...

Kamo·16h ago
Featurekamo-internal

Choose who can invite an SI to meetings, on its Call options

Kamo Meet "Invite an SI" (owner order 2026-10-26): Only the people who supervise it (default) / Its supervisors and teammates / Anyone in your organization, wit...

Kamo·17h ago
FeatureMediaService

Invite an SI from inside the meeting; who may invite an SI is the SI's own option

Kamo Meet "Invite an SI" (owner order 2026-10-26): - GET **************** for a signed-in person IN the meeting (creator, recorded participant, or handed this...

Kamo·17h ago
FeatureAIService

Who may invite this SI to meetings, on its Call options

Kamo Meet "Invite an SI" (owner order 2026-10-26): meetingInvitePolicy (SUPERVISORS default | TEAM | ORGANIZATION) read and changed beside the SI's other call a...

Kamo·17h ago
Featurekamo-shared-library

MeetingInvitePolicy — who may invite an SI into a meeting; declare ai_member_call_options

Kamo Meet "Invite an SI" (owner order 2026-10-26). An SI's supervisors (its reporting line over manager and SI-supervisor edges, the org owner) may always invit...

Kamo·17h ago
FeatureMCPGatewayService

Games_* - an SI plays chess with members

SITP TPGAMES. Eleven tools over MediaService's chess endpoints, gated as a member's board is (Chess app + PLAY_CHESS, again downstream): games_list, games_get_s...

Kamo·17h ago
FeatureEmailService

A plain-text version beside the HTML, and an SI's recap letter for a supervisor when the SI has no mailbox (TPRECAPS)

/api/email/send takes an optional textBody: the body is then multipart/alternative (text, then the HTML), inside mixed when there are attachments. POST ********...

Kamo·17h ago
Featurekamo-shared-library

Declare ai_call_recap and ai_member_recap_options for the SI call recap email (TPRECAPS)

One row per SI phone call that had a conversation, so its recap reaches the supervisor once; and an SI's two recap options, both on by default. Hand-applied DDL...

Kamo·17h ago
FeatureMCPGatewayService

Every SI has a clock: time_now, time_convert, time_calc

Owner report 2026-10-26: asked the time on a call, an SI said it had no clock. The clock and calendar every person has: the time now in the SI's zone or any oth...

Kamo·17h ago
FeatureMCPGatewayService

A teammate's proven email to an SI is their request and their order

Owner report 2026-10-26: the owner emailed their SI to call them; the email was never an order ([ORDER] no order) and every later check-in read it as outside ma...

Kamo·17h ago
FixMediaService

An SI plays a member's game with the member's PLAY_CHESS too (No Insubordination)

A game with a member is always at that member's request (they invited the SI, or told it to invite them), and a team member's direct order runs with the SI's ri...

Kamo·18h ago
FeatureMediaService

An SI member plays chess with members, its moves chosen by Kamo's engine

SITP TPGAMES (owner 2026-10-26: an SI asked to play chess did not know how). - ChessSiPlayer: event-driven (ChessTurnEvent after each committed change). A me...

Kamo·18h ago
FeatureEmailService

Prove a teammate sent an SI's email, so an emailed request can count as their order

An internal endpoint answers whether a message in a member's own mailbox was sent by a teammate: its From reaches a member of the same org, and that member's ow...

Kamo·18h ago
Featurekamo-internal

Pipeline shows when each deal and loan opened, and sorts by it

Deals and loans show "Opened <date, time>" in the member's zone. For loans imported from Arive that is Arive's creation time — before, every imported deal sorte...

Kamo·18h ago
FixSecurityService

Never push a stage to the external MLOS that the sync itself wrote

The Arive import walks a loan through Kamo's pipeline one step at a time; the 20s sync tick saw each half-walked status as a Kamo change and sent it to Arive, r...

Kamo·19h ago
FixSecurityService

Never send exception text (SQL included) to the browser

BaseLosController.error() put e.getMessage() in every 500 body; the pipeline page showed a full JDBC statement. The exception now goes to the log under a short ...

Kamo·19h ago
Featurekamo-internal

Prospects — pre-application deals leave the open pipeline

A deal whose loans are all at intake, qualification or pre-approval (no application taken yet) shows under its own Prospects view and count. Open, its KPIs and ...

Kamo·20h ago
FixSecurityService

Pipeline reads retry on a Yugabyte read restart instead of failing the page

"We couldn't load the pipeline (JDBC … Restart read required)" appeared at random while the Arive import was writing loans. The deal and loan list reads are pur...

Kamo·1d ago
Fixkamo-shared-library

Retry the pipeline board read on a Yugabyte read restart; ignore impossible Arive dates

The board loads every loan over several statements; a concurrent write (the Arive import) made Yugabyte fail a later one with 40001, shown to the user as a raw ...

Kamo·1d ago
Featurekamo-internal

Pipeline shows pre-application stages, every outcome, and archived loans

- statuses: Application Intake, Qualification, Pre-Approved; Approved Not Accepted, Closed for Incompleteness, Rescinded, Pre-Approval Denied / Not Accepted...

Kamo·1d ago
FeatureSecurityService

Kamo holds every Arive loan, at the status Arive really has it

- import and inbound events adopt every loan — open, funded, adverse or archived — instead of only "active" ones - no per-loan Get Loan or crmReferenceId stam...

Kamo·1d ago
Featurekamo-shared-library

Pre-application statuses, every HMDA outcome, archive, and Arive's real dates

Arive loans were mapped from stage names alone: every pre-application stage became Application Taken, every archived loan Withdrawn (funded ones too), every adv...

Kamo·1d ago
Fixkamo-shared-library

Use the org's own mortgage market, whatever it is titled

ensureMortgageMarket matched only the title "Residential Mortgage Loans", so an org that had renamed its market ("Loans", "KamoMLOS") got a second, empty mortga...

Kamo·1d ago
October 25, 2026
FixSecurityService

Retry the import's progress write on a Yugabyte read restart

The first live import stalled at RUNNING after page 1: saving the connection loads the org's domains, Yugabyte answered 40001, and the failure write hit the sam...

Kamo·1d ago
Docskamo-internal

Keep Harmony's Arive Zapier zaps as reusable templates

Sanitized Zap definitions (current loan-level set and the retired lead-level set), the sanitizer, and how to rebuild them for another Arive client.

Kamo·1d ago
Featurekamo-internal

External MLOS lives on the mortgage market and on each loan

- Settings → POS markets → mortgage market: new "External MLOS" tab (Arive via Zapier, MeridianLink) with connection, stage map, transaction window and the ...

Kamo·1d ago
FeatureDaemonService

MeridianLink poll applies to loan applications, not leads

Changed loans are matched through MLOS_LOAN_LOS_LINKS and sent to securityservice by connection; unknown loans are adopted only where the LO unit maps to a sing...

Kamo·1d ago
FeatureSecurityService

Mirror every loan application to the market's external MLOS, both ways

Arive and MeridianLink connect to the MORTGAGE (MLOS) market instead of a lead market, and sync loan applications instead of leads. - LoanLosSyncService: queue...

Kamo·1d ago
Featurekamo-shared-library

Sync external MLOS (Arive, MeridianLink) at the loan, not the lead

The lead-level LOS link is replaced by a loan-level one: every loan application is mirrored to the market's external MLOS and back, linked one-to-one by MLOS_LO...

Kamo·1d ago
FixSecurityService

Billing write service starts again — the constructor keeps its @Autowired

The terminology commit inserted the code-checker field between @Autowired and the constructor, so the annotation moved onto the field and Spring found three una...

Kamo·1d ago
FeatureSecurityService

Coded terminology — RxNorm, ICD-10-CM, CVX and HCPCS loaded from their publishers; pickers, real code checks, and the ONC high-priority interaction screen

Loaders (ehr.terminology): RxNorm Current Prescribable Content (NLM, MD5 verified against NLM's page; **************** drug->ingredient resolved through compone...

Kamo·1d ago
Featurekamo-internal

Message patients from the chart, consent first; reminders, confirmations and video visits on the schedule

- Messages tab: contact consent card (texts, e-mail, do not contact — when and how, history), a composer that asks the server before sending (consent, and a m...

Kamo·1d ago
FeatureMediaService

A medical practice's video visit room, created server to server

POST /api/internal/meet/telehealth (X-Internal-Auth = internal.auth.secret, MeetInternalAuth) creates a meeting on the organization's own provider and live doma...

Kamo·1d ago
FeatureVOIPService

A practice's patient chart hears a patient's replies, STOP/START and delivery receipts

PatientSmsRelay posts (X-Internal-Auth, off the carrier's thread, bounded queue, never throws) to SecurityService **************** - every inbound text after de...

Kamo·1d ago
Featurekamo-internal

E-prescribing — e-Prescribe dialog, e-Prescriptions worklist, setup and pharmacies

- Chart medications: e-Prescribe opens our prerequisite + safety check, then the network's page in a large frame; closing it imports what was sent. Each presc...

Kamo·1d ago
FeatureSecurityService

Patients can be texted and e-mailed from the chart — consent first, reminders, video visits, recall messages

- One consent-gated door **************** for chart messages, reminders, video links, recall messages and confirmation replies: the patient's own consent per ...

Kamo·1d ago
FeatureSecurityService

Electronic prescribing through Weno Exchange EZ Integration

- ErxTransport vendor seam (UnconfiguredErxTransport default, WenoErxTransport first network) - Practice eRx account (MANAGE_EHR_SETTINGS): network, TEST/LIVE w...

Kamo·1d ago
Featurekamo-shared-library

E-prescribing schema — network account, enrollments, pharmacy directory, transmissions

Five new clinical tables (ehr_erx_settings, ehr_erx_enrollment, ehr_erx_pharmacy, ehr_erx_pharmacy_import, ehr_erx_transmission), structured preferred/alternate...

Kamo·1d ago
Featurekamo-shared-library

Patient outreach entities — contact consent, sent messages, reminder ledger, reminder settings, video visits

- PatientContactConsent (ehr_patient_contact_consent): append-only SMS / EMAIL / do-not-contact ledger - PatientMessage (ehr_patient_message): texts and e-mails...

Kamo·1d 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