KamoCRM

Live Change Log

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

17,374
Total Changes
5,891
Features
5,258
Fixes
30
Projects
Filter by project
All Projects17,374AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,822TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,321kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,631kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,891Fix5,258Other993Performance165Refactor278Revert23Style42Test159Upgrade1
October 23, 2026
Featurekamo-internal

The invoice shows the Receivables remittance block, as quotes do

The invoice dialog renders the same QuoteRemittanceBlock the quote preview uses, from the seller's Receivables details, while anything is owed. The Receivables ...

KamoΒ·4h ago
Featurekamo-signer-monorepo

The invoice's remittance block reads exactly as the quote's

Same heading, labels and ACH Credit Only notice (signer.quote.remit), with the invoice-number reference kept beneath it.

KamoΒ·4h ago
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Β·4h ago
Featurekamo-internal

Change seats and licenses from a date, with the prorated charge previewed

Change seats & licenses opens a dialog to set: - seats and each add-on's licenses (per-user licenses follow the seats until typed over); - the date it takes e...

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

Seat and add-on license changes mid-period, on a chosen date, prorated

SubscriptionChangeService records a change to a live subscription's seats and add-on licenses effective on any date from today. It previews the exact prorated c...

KamoΒ·16h ago
Featurekamo-internal

Plain-language statuses everywhere; agreed add-on prices and a monthly discount in the order wizard

StatusChip (89 call sites) showed raw codes such as PENDING_APPROVAL; it now shows the dictionary's words (common.statusCodes), or the code read aloud for one i...

KamoΒ·18h ago
Featurekamo-signer-monorepo

Pay by card on the invoice page

When the server offers it (platform-sold invoices with a balance), the invoice page shows Pay by card. It posts to /<locale>/i/<token>/pay, which sends the cust...

KamoΒ·18h 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Β·18h ago
FeatureBillingService

Pay a subscription invoice by card on a Stripe-hosted page

Internal POST **************** creates a payment-mode Checkout session for the amount owed. It saves the card for future automatic charges when the customer has...

KamoΒ·18h ago
Featurekamo-shared-library

Track an invoice's pending online card payment

New nullable column **************** plus helpers to list and settle pending sessions idempotently (a payment carrying the same processor reference is never rec...

KamoΒ·18h ago
Featurekamo-shared-library

Negotiated add-on prices and a quote's discount carry into the subscription

Converting a quote now carries: - each add-on's agreed per-license price (when it differs from the catalog's) - the quote's or accepted option's discount, as a ...

KamoΒ·18h ago
Featurekamo-internal

Auto-renew and notes work on live subscriptions; card on file and charge card now

- The auto-renew switch sets the subscription's own renewal (it posted a field the draft-only order update ignored) and says when a non-renewing one ends. - N...

KamoΒ·19h ago
Featurekamo-internal

Show licenses held and in use where mailboxes and extensions are assigned

Owner rule 2026-10-22: per-user add-ons bill the licenses purchased, and the licenses are the only limit on what may be in use. A LicenseUsageMeter ("4 of 10 li...

KamoΒ·20h ago
Featurekamo-internal

Quotes start subscriptions; offline acceptance; tenant orders; plain-language billing

- Quotes: "Add from subscription catalog" fills a row from the live plans/add-ons (name, monthly price, "per user / month" / "per 10 GB block / month") and ke...

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

Quotes convert into subscriptions; tenant orders never comp the seller

- A quote in a SUBSCRIPTION market, or whose accepted rows were filled from the subscription catalog, converts into a SubscriptionOrder (plan, seats from the ...

KamoΒ·20h ago
FeatureEmailService

Refuse a mailbox past the organization's 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. Before a mailbox is put into use,...

KamoΒ·20h ago
FeatureVOIPService

Refuse a phone extension past the organization's licenses

Owner rule 2026-10-22: per-user add-ons bill the licenses purchased; how many extensions may be in use is limited only by them. Before an extension is put into ...

KamoΒ·20h ago
FeatureBillingService

License usage and per-unit license checks for per-user add-ons

Owner rule 2026-10-22: every per-user add-on bills the licenses purchased, like seats; how many mailboxes or extensions may be in use is limited only by them. ...

KamoΒ·20h ago
October 22, 2026
Featurekamo-shared-library

Turn renewal on or off for a live subscription; notes on any order

The console's auto-renew switch sent a field the draft-only order update did not have, so it never saved; and notes failed on any order past draft.

KamoΒ·20h ago
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Β·20h ago
FeatureBillingService

Internal card endpoints for subscription invoice auto-charge

GET **************** and POST /charge, guarded by the shared X-Internal-Auth secret (constant-time compare; 403 without it). A charge is an off-session PaymentI...

KamoΒ·20h ago
Featurekamo-shared-library

Card auto-charge bookkeeping on subscription invoices

AUTO_BILL invoices are charged on their billing day once approved and retried every three days, up to four attempts. Each attempt is numbered before it is made ...

KamoΒ·21h ago
Featurekamo-internal

Subscription billing console β€” invoice drawer, draft editor, payments, market invoicing

Invoices tab: plain-language rows (period, total, amount due, due date, status) open a drawer with the lines, totals, payments received, where and when it was s...

KamoΒ·22h 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Β·22h ago
Featurekamo-signer-monorepo

The customer's invoice, online β€” branded, printable, with a PDF download

/[locale]/i/[token] resolves the invoice server-side (token in a POST body, never a URL) and renders it in the seller's own name and colour, falling back to a n...

KamoΒ·22h ago
FeatureEmailService

BILLING_INVOICE, gated on viewing subscription invoices

Raised by SecurityService to the selling organization's owners when a subscription invoice draft is waiting for review or a customer's invoice goes past due. Al...

KamoΒ·22h ago
Featurekamo-shared-library

License-based add-on pricing and a real subscription invoice lifecycle

One rule for add-on quantity (AddOnLicenses): every add-on bills the licenses PURCHASED, like seats - per-user add-ons default to the seat count, storage to the...

KamoΒ·22h ago
FeatureBillingService

Rebuild the Stripe mirror from Stripe nightly and on startup

Events older than 30 days cannot be fetched, so the September invoice and subscription events lost to the API-version mismatch are unrecoverable as events. Stri...

KamoΒ·23h ago
FeatureTranslateService

One engine, MADLAD-400, for every language pair

Replaces the LibreTranslate, Bergamot and IndicTrans providers with MadladProvider (klusterservices madlad/). Their languages did not overlap, and a pair none o...

KamoΒ·1d ago
FeatureKlusterServices

One translation engine for every pair, MADLAD-400-3B on CPU

Replaces LibreTranslate (Argos), Bergamot and Kamo IndicTrans, whose language sets did not overlap and whose gaps came back as English. MADLAD-400-3B-MT (Apache...

KamoΒ·1d ago
October 21, 2026
Featurekamo-internal

The Pipeline's loan officer filter shows faces and opens the member card

Each officer in the filter's options, and the one selected, is their avatar and name wrapped in the shared MemberHoverCard. A click still selects.

KamoΒ·1d ago
Featurekamo-internal

The Pipeline's loan officer opens the shared member card

The loan officer on each deal is wrapped in MemberHoverCard, the popup every other surface uses for a member. It opens on hover and keyboard focus; a click stil...

KamoΒ·1d ago
Featurekamo-internal

A full-width, full-height HMDA LAR page; readable brand buttons on the loan page

- HMDA LAR: the register is an AG Grid that takes the whole width and every pixel under the header, and scrolls inside itself β€” the page no longer scrolls. Is...

KamoΒ·2d ago
Featurekamo-internal

A new mortgage Pipeline β€” open deals first, past ones a click away, and every deal managed from its card

The Pipeline tab under a mortgage market is rebuilt around transactions: - Open | Past | All views (past = completed or cancelled), with counts - headline numb...

KamoΒ·2d 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Β·2d ago
Featurekamo-internal

Corner ribbons on every edge, on tabs, and on the top bar's open pages

Following the left-edge round, the other three edges get the same treatment, on a fixed mapping: a top rule becomes a top-left ribbon, a right rule a bottom-rig...

KamoΒ·2d 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Β·2d ago
Featurekamo-internal

Corner ribbons replace every left-edge accent rail

The System Bugs page went first. This change does the rest of kamo-internal: about 120 files where an item was marked by a coloured rule down its left edge β€” a ...

KamoΒ·2d ago
Featurekamo-internal

Approve and always allow, the named why, the SI's own picture, the org's own colours

Always allow: from the decision bar, the approver picks just this action or the whole kind (in plain words), reads exactly what changes in the SI's job descript...

KamoΒ·2d ago
FeatureMCPGatewayService

Honour standing permissions; offer Approve and always allow on the card

CharterPolicy reads resolved.toolApprovals and each rule's standing flag. A member's rule about one tool stands for its class's rule for that tool; a standing p...

KamoΒ·2d 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Β·2d ago
Featurekamo-shared-library

Standing permissions from an approval (Approve and always allow)

A member's own APPROVAL item may now name one tool (tool_name) and record the approval it came from, who granted it and when (item_origin APPROVAL). The resolve...

KamoΒ·2d ago
Featurekamo-internal

Corner ribbons replace the left-edge accent rails on System Bugs

CornerRibbon is the indicator form of kamo-login's sign-in pane ribbon: a thin shaded diagonal band across an item's top-left corner, in any colour, at three si...

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