KamoCRM

Live Change Log

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

18,418
Total Changes
6,548
Features
5,540
Fixes
30
Projects
Filter by project
All Projects18,418AIService276APIService178BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService623InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService621RAGService79SecurityService2,000TranslateService62VOIPService265VectorService11kamo-apps27kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,701kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,829kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,548Fix5,540Other1,001Performance174Refactor283Revert23Style45Test175Upgrade1
September 6, 2026
Fixkamo-internal

Pay without leaving the order, and never lose it again

Sending somebody to another page to add a card was the wrong answer, and it was wrong at the worst possible moment. The console noticed there was no card and li...

Kamo·2mo ago
Fixkamo-internal

The app shell was capping every page under every scrollbar

My last fix was in the wrong file. Removing the stacking context from the launchpad changed nothing, because the one that matters is a level above it, in the sh...

Kamo·2mo ago
Fixkamo-internal

The commitment term travels with the plan, not just the plan

Carrying the plan code alone was half a fix, and the missing half was the half that carries the price. Somebody who set three years on /myplan, saw $49 a seat a...

Kamo·2mo ago
Fixkamo-internal

Opening an attachment no longer throws React #310

Clicking a thumbnail threw "Minified React error #310 — rendered more hooks than during the previous render" over the whole page. Mine, from the attachment-aut...

Kamo·2mo ago
Docskamo-internal

Finish the spec's inventory, and add the order to check things in

The "where it lives" table was written before the setup service, the media handoff, the CARRIER_TO_PHONE_SERVER rail and the phone server's default text route e...

Kamo·2mo ago
Docskamo-internal

The two inbound shapes, and the rule that keeps the endpoint safe

Records what voipservice 9e9e814 and ea6d631 established, because the reasoning is not recoverable from the diff. A Telnyx messaging profile has exactly one we...

Kamo·2mo ago
Featurekamo-internal

One setting that covers every number on a phone system

The approved routing design had three tiers and only two of them were reachable. A number could name its own text provider, and failing that the phone server wa...

Kamo·2mo ago
Testkamo-internal

The /myplan to console journey, end to end

The preselect landed across two sessions and two files, so the thing worth pinning is the journey rather than either half: a plan chosen on /myplan arrives sele...

Kamo·2mo ago
Fixkamo-internal

One price on the screen, and a purchase that cannot fail silently

The console showed a customer three different numbers for one plan and let them buy with no card. Rendering it against the live catalogue, Business at five seat...

Kamo·2mo ago
Featurekamo-internal

React to a status change, not only to a comment

"🎉" on a Fixed event is the single most natural thing anybody wants to say in a bug thread, and offering reactions only on comments meant typing one to say it....

Kamo·2mo ago
Featurekamo-internal

Live thread updates, and reactions that are actually reachable

Two halves of the thread were built and then left unconnected. The server has published every comment and status event to `chat.session.{guid}` since the featu...

Kamo·2mo ago
Fixkamo-internal

Stop the launchpad capping its own dropdowns under every scrollbar

The admin bar's dropdowns were painting under the App Shelf's scrollbar, and lowering the shelf's z-index last time did not help — because the number was never ...

Kamo·2mo ago
Featurekamo-internal

The plan you picked travels to the page that sells it

"Move to Business" opened the billing console with nothing selected. The choice the person had just made was dropped on the floor and they were asked to make it...

Kamo·2mo ago
Testkamo-internal

Pin KamoCRM's own sales details, and that no org can change them

The address and number are constants a single edit away from becoming a tenant lookup, which would route a customer asking about a KamoCRM plan back to their ow...

Kamo·2mo ago
Featurekamo-internal

A plan card says what it adds to the one below it

The picker gave a price, a seat ceiling and one sentence. Choosing between $46 and $80 a seat on that is a decision with one obvious answer, and for most teams ...

Kamo·2mo ago
Fixkamo-internal

Attachments authenticate like chat's, instead of showing broken

Every attachment on a bug report rendered as a broken tile. In production: seven content requests, seven 401s, zero successes — while the report's own JSON load...

Kamo·2mo ago
Featurekamo-internal

One way to reach sales, and a seat control that knows the plan's limit

ContactSalesDialog holds KamoCRM Inc.'s own details — Sales@KamoCRM.com and (949) 298-9960 x1 — as constants, deliberately. Every other address on this platform...

Kamo·2mo ago
Featurekamo-internal

A Numbers screen, so calls and texts can come from different companies

An organization buys its numbers from one company and answers the calls with another. That is ordinary, and Kamo could not describe it: texting was a property o...

Kamo·2mo ago
Fixkamo-internal

Anchor it to the first cell, and stop the scrollbar collapsing it

Three things, and two of them are the same mistake: asking a question about a portalled element as though it were a child. THE SCROLLBAR COLLAPSED THE PANE. Sc...

Kamo·2mo ago
Featurekamo-internal

The shelf replaces the per-app cards, and four fixes to its rows

The launchpad was a wall of one card per app. The App Shelf lists every one of those apps in a single pane, with what each does and everything inside it, so the...

Kamo·2mo ago
Fixkamo-internal

Quote the real price, and stop the Free plan looking like the best one

Two things on this page were wrong in a way that reaches customers. The price. bestRate() took the cheapest rate across all three terms and printed it as "per ...

Kamo·2mo ago
Fixkamo-internal

The templates button called an endpoint that could not answer

Found by reading the controller rather than the code calling it, and it was broken twice over in a way that LOOKED fine: - The list asked for `status=ACTIVE`...

Kamo·2mo ago
Featurekamo-internal

The report's thread in the drawer, shelving, and Issue Persists

`SystemBugThread` renders everything anybody has said about a report and every status it has passed through, under the current-status callout: the callout answe...

Kamo·2mo ago
Fixkamo-internal

Two rows tall, and it opens by widening rather than by a second pane

The pane was 861px tall, not the 496 its two rows ask for. The launchpad grid is gridAutoRows: minmax(106px, auto), and an auto maximum sizes a track to its ite...

Kamo·2mo ago
Fixkamo-internal

No explanation that lasts one frame, and a failure you can act on

A refused member was shown an info alert and redirected home in the same breath, so the message appeared for one frame and was replaced by the launchpad. That i...

Kamo·2mo ago
Featurekamo-internal

A document outline, and a skeleton in the page's own shape

Only the hero was a real heading. Everything else — the ledger's nine categories, the account panels, the covenant, each upgrade option — was a styled div, so a...

Kamo·2mo ago
Refactorkamo-internal

One module owns the link from the plan page to the billing tab

Every action on /myplan is a link into Plans & billing, and it has to land on the right sub-tab or "Payment and invoices" opens on Subscriptions and looks broke...

Kamo·2mo ago
Fixkamo-internal

The upgrade section said the opposite of the truth during a trial

A trialling organization's plan row really is FREE — the subscription points at it — while the trial has the whole catalogue switched on. The difference this se...

Kamo·2mo ago
Featurekamo-internal

Draw the god rules the server now holds

The Users tab locked every god row for everybody, and both halves were wrong. Too loose, because the lock lived only in this component — the endpoints behind it...

Kamo·2mo ago
Testkamo-internal

Type the nav-option fixture the shelf tests hand the launcher

The helper took { id: string }[], so every fixture with a kind, an href or a toolKey on it was a type error the test run never saw and tsc did.

Kamo·2mo ago
Featurekamo-internal

Staff can write the sentence the customer reads

The customer-visible note had a column, a DTO field and a plan page ready to render it, and no way for anyone to set it — so Harmony's was the only one that wou...

Kamo·2mo ago
Fixkamo-internal

Bridge SMS unread across the boundary the tool dock sits above

ToolDock is mounted in ToolProviders ABOVE AuthedChrome, deliberately, so it never unmounts across a navigation -- the single fact that keeps a member's typing ...

Kamo·2mo ago
Fixkamo-internal

Clear the shelf's edge, cap the pane's height, and read apps from one source

Three things a real browser found that the tests could not: - The pane anchored to the shelf's inner content column, so it opened a dozen pixels INSIDE the w...

Kamo·2mo ago
Featurekamo-internal

The softphone gets an inbox, and an SMS window is one thread

The SMS tool window opened on a twelve-key dialpad and then became a three-tab window -- Chat / Templates / CRM -- titled "Conversation #a3f1c8de-...". None of ...

Kamo·2mo ago
Featurekamo-internal

A Free Plan pill, and a page at /myplan behind both pills

The trial pill lived twice — the nav rail and the launchpad — with the countdown, the member-type gate and the styling copied between them. Both gated on a live...

Kamo·2mo ago
Featurekamo-internal

The shelf, its slide-out pane, and its place on the first row

Every app the member may open, with a pin, a search, and a pane that slides out of whichever side has room for it. Locked to the launchpad's first row by lib/ho...

Kamo·2mo ago
Refactorkamo-internal

The launcher machinery is a context, not a prop

Kamo·2mo ago
Featurekamo-internal

First-row arithmetic for a pane locked to row one

Kamo·2mo ago
Docskamo-internal

Implementation plan

Kamo·2mo ago
Docskamo-internal

Design for the App Shelf launchpad widget

A system widget with no rights, locked to the first row of the launchpad by arithmetic rather than a band of its own, with a portalled flyout carrying each app'...

Kamo·2mo ago
Fixkamo-internal

One scrollbar on a data grid, not two

Every grid in the app drew two vertical bars — ours and the library's, side by side. Measured on /leads: ours at x∈[868,900], ag-Grid's at x∈[900,915]. ag-Grid...

Kamo·2mo ago
Featurekamo-internal

Fix Verified, a reason on every denial, and a Requires Verification filter

The status menu on /support?tab=system-bugs leads with "Requires Verification" and a rule, then the individual statuses. It stands for NEW, IN_PROGRESS and FIXE...

Kamo·2mo ago
Featurekamo-internal

Lock the platform rights an operator may not grant

SecurityService now refuses to grant a right the caller does not hold themselves — an administrator may create a peer or a lesser, never a superior. The Manage ...

Kamo·2mo ago
Fixkamo-internal

Make the left seam move the LEFT edge, and put one on every window

Two things were wrong with the width gesture. **It moved the far edge.** `store.resize` writes a window's width and touches nothing else — not `dockX`, not the...

Kamo·2mo ago
Fixkamo-internal

Stop a horizontal scrollbar flashing under every tab switch

Every tab and sub-tab change in the Interaction Center slides the incoming pane in from x: 12 (the panel's tabs) or x: 10 (the Terminals workbench's). A transfo...

Kamo·2mo ago
Featurekamo-internal

Show how much coder allowance is left, live, in the Linux Desktop menu

windows is left, which window resets when, and whether what is on screen is current. It is the fact that decides whether starting a session is worth doing, so i...

Kamo·2mo ago
Featurekamo-internal

A tab per open window above the maximized pane

A maximized tool window with a navigator down its left side now gets a row of tabs across the top of the column beside it — one per OPEN window of the type the ...

Kamo·2mo ago
Featurekamo-internal

Keep the dock clear of every scrollbar, and let members size it

Three things about the row of docked tool windows. **It stops covering scrollbars.** The dock reserves the viewport's right edge so it does not park a window o...

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