KamoCRM

Live Change Log

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

18,392
Total Changes
6,527
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,392AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService619InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,692kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,824kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,527Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
October 26, 2026
FixSecurityService

A generated personality keeps everything the SI already holds

Only an earlier generation's items, named by id and still marked as drafted, are replaced; a configure-assistant draft or a person's item stays, and a generated...

Kamo·2w ago
FeatureSecurityService

Apply a generated personality to an SI's own charter, around what people set

Voice realism VR2, owner decision D2: every SI gets a unique, job-fit personality, generated from its own work. kamoai-service drafts it; this internal endpoint...

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

837P claim files for hand upload, 999/277CA acknowledgements and 835 ERA review and posting

No clearinghouse contract exists, so practices upload X12 files to a portal by hand. This builds that path end to end: - 837P (005010X222A1) for one or many re...

Kamo·2w ago
October 24, 2026
FeatureSecurityService

Billing can read a patient's desk payments and reprint a receipt

Voiding a desk payment needs MANAGE_CLAIMS or POST_INSURANCE_PAYMENTS, but listing them and reading a receipt needed BOOK_APPOINTMENTS — a biller could void a p...

Kamo·2w ago
FeatureSecurityService

Visits and notes a practice can run on — safe autosave contract, walk-ins, documents, printouts

Notes - Reads return the current text (original after addenda), author/cosigner names and exact id keys; GET /notes/{id} re-reads one note, audited. - Only th...

Kamo·2w ago
FeatureSecurityService

Front-desk registration tier, contact details, MRN assignment, search, coverage writes

- **************** members holding CREATE_PATIENTS, EDIT_PATIENT_DEMOGRAPHICS, BOOK_APPOINTMENTS or MANAGE_CLAIMS open a patient's REGISTRATION record without...

Kamo·2w ago
FeatureSecurityService

A patient's care gaps carry the measure's name and when it was computed

The chart's care-gap card shows 'Breast Cancer Screening', never a measure id, and keeps the newest result per measure.

Kamo·2w ago
FeatureSecurityService

Chart write paths — allergies/NKDA/review, problems, visit diagnoses, vitals, outside meds, results and review; order loop closure fixes

- ChartEntryController/Service: add allergy (reaction, severity, criticality, onset), record NKDA, mark allergy list reviewed (ClinicalListReview), **********...

Kamo·2w ago
FeatureSecurityService

A front desk that runs a real clinic day

- Practice clock (practice time zone, else the organization's): every day window is the practice's, never UTC; settings + rooms endpoints (/schedule/practice)...

Kamo·2w ago
FeatureSecurityService

Real refusals, break-glass review decisions, honest claim sending, hand-keyed EOBs

- EhrRuleViolationException: a business-rule refusal (unsigned note at close, double booking, not the author/cosigner, self-cosign, already signed, restrict...

Kamo·2w ago
October 23, 2026
FeatureSecurityService

Invoices print the Receivables ACH details exactly as quotes do

The PDF and the email now carry the quote's remittance block, word for word: - Remit payment to - payee (legal name) - bank - routing number (ABA) - account num...

Kamo·2w ago
FeatureSecurityService

Endpoints for dated, prorated seat and license changes; the job applies them

New endpoints: - POST **************** - POST /subscriptions/{uid}/changes - GET /subscriptions/{uid}/changes - POST **************** The hourly billing job ap...

Kamo·2w ago
FeatureSecurityService

Customers pay invoices by card online; a bank's SCA request reaches the customer

On invoices sold by the platform org (the only seller whose Stripe account it is): - the public invoice offers Pay by card: POST **************** opens a Stri...

Kamo·2w ago
FixSecurityService

The owners' invoice link opens on the workspace host the org can actually reach

Built internal.<domain> by hand, which OrgDomainRuleGuardTest forbids: an org whose own domain is not finished would get a link to a host that answers nothing. ...

Kamo·2w ago
FeatureSecurityService

Refuse a department or contact mailbox past the email licenses

Owner rule 2026-10-22: per-user add-ons bill the licenses purchased; how many mailboxes may be in use is limited only by them. Under a 3rd-party provider a depa...

Kamo·2w ago
FeatureSecurityService

Record offline acceptance, log prints, convert quotes into subscriptions

- POST **************** (SEND_QUOTES or MANAGE_QUOTES) - POST **************** (VIEW_QUOTES or MANAGE_QUOTES) - POST .../{uid}/convert takes an optional body (t...

Kamo·2w ago
October 22, 2026
FeatureSecurityService

Card customers are charged automatically on the billing day

For AUTO_BILL subscriptions the billing job charges each approved invoice to the customer's saved card on its billing day through BillingService's internal card...

Kamo·2w ago
FixSecurityService

The billing job takes each subscription and invoice in its own transaction

Its first run raised Harmony's October invoice and lost it when one audit insert failed, because the whole prepare step was one transaction.

Kamo·2w ago
FeatureSecurityService

Automatic subscription invoicing - drafts, owner review, email with PDF, payments, reminders

SubscriptionBillingJob (hourly, one pod, and at startup) runs the cycle: - raise each renewal invoice as a draft lead-days before its billing day - move subscri...

Kamo·2w ago
FixSecurityService

Catalog edits reach only the caller's organization; own-order callers cannot comp or price themselves

Every update and delete of a subscription plan, price, feature, add-on, bundle, volume discount, promotion or agreement template now checks that the row belongs...

Kamo·2w ago
FixSecurityService

Creating a MORTGAGE market gives the organization its lender profile at once

A MORTGAGE market's lender profile (and its five config rows) was only created by the boot-time self-heal, so a market created while SecurityService was running...

Kamo·2w ago
October 21, 2026
PerformanceSecurityService

The mortgage pipeline loads in a handful of queries, and a deal can be renamed and take a second loan

The pipeline's two reads were N+1 on the round trip: - GET /mortgage-apps loaded plain AppMortgage rows, and each one then fired a SELECT per inverse @OneToO...

Kamo·3w ago
FeatureSecurityService

Approve and always allow checks the rights a tool needs in one case only

Approval follow-up 2026-10-21: the Tool Plane's card now names the rights a tool's service enforces in some cases only (alwaysAllow.rightsWhen: a colleague's le...

Kamo·3w ago
FeatureSecurityService

S-I1 accepts REPLACED, so IoTService revokes a superseded Alexa link's grant

Owner 2026-10-21. KamoOAuthRevokeReason.REPLACED already exists (STRING-persisted, no CHECK on revoked_reason), so no shared-lib or DDL change; the internal rev...

Kamo·3w ago
FeatureSecurityService

Approve and always allow, from an SI's approval

GET **************** POST **************** {approvalId, scope TOOL|CLASS, grantRights?} DELETE **************** (Ask me again) The approval names the tool and...

Kamo·3w ago
October 19, 2026
FeatureSecurityService

An order lends only the rights the called tool needs (No Insubordination Rule, IoT R7 round 3)

POST **************** takes an optional neededRights (RoleRightType names; an unknown one is a right nobody holds). With it, OrderDelegationService.lend borrows...

Kamo·3w ago
DocsSecurityService

Index loan_files.loan_transaction_id, applied to production 2026-10-18 [skip ci]

Owner approved. The deal -> loans lookup in **************** (deal status, pipeline summary, retireIfEmpty) moves from a sequential scan to an index scan. Same ...

Kamo·3w ago
TestSecurityService

Fixtures stamp the god-mode window's end; an elapsed window is not elevated (shared SessionPlatformFacts expiry)

**************** now also needs godModeExpiresAt ahead (kamo-shared-library 1.6.1), so the open-window fixtures of the 28 test classes whose gates read it (Sess...

Kamo·3w ago
October 18, 2026
FixSecurityService

The endpoint ratchet sees @RequireRight; the org-graph ratchet allows two read-only hits (SITP TPGUARD)

**************** flagged the TP02 billing and commerce-invoice relays. Not a hole: every commerce-invoice handler carries @RequireRight (TenantRightInterceptor ...

Kamo·3w ago
FixSecurityService

Staff can delete a never-received mortgage application; a received one answers 409 (SITP TP21FU)

DELETE **************** went through AppMortgageService.delete, which 500'd for every application (borrower satellite rows left behind). The shared library now ...

Kamo·3w ago
FixSecurityService

Every clinical audit row names its patient; pick up the shared-lib audit and updated_at fixes (SITP TP23FU)

Production phi_access_log rows from the clinical audit methods carried no purpose, basis or patient: the shared PhiAccessRecorder dropped them while stamping th...

Kamo·3w ago
FixSecurityService

Starting a clinical note no longer fails on updated_at (SITP TP23 live smoke)

ClinicalBaseEntity.updated_at is NOT NULL and defaulted by the database on INSERT only (insertable = false), so a note just inserted holds null in memory and th...

Kamo·3w ago
FeatureSecurityService

Each break-glass window has its own id, so other services can audit under it (IoT R7)

A god-mode window now carries godModeSessionId (a random UUID) in ***: minted when it opens, cleared when it closes, and added to a window that was opened befor...

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