Live Change Log

See what we're building, in real-time. Every feature, fix, and improvement shipped across the platform.

17,916
Total Changes
4,605
Features
4,536
Fixes
32
Projects
Filter by project
All Projects17,916AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService371InitializerService300KBService74KlusterServices545MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,573kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,321kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI523Chore670Docs226Feature4,605Fix4,536Other6,781Performance136Refactor274Revert23Style48Test69Upgrade1
September 7, 2026
Fixkamo-internal

Three React Compiler errors, and what each of them was really saying

The compiler rules caught three things in the achievement surfaces, and none of them was a style complaint. A component aliased into a local during render (`co...

Kamo·4d ago
Fixkamo-internal

A two-level jump published two frames and the browser kept one

`useMediaTopic` holds ONE message slot and overwrites it, so two frames arriving in the same tick are batched by React into a single render and only the last is...

Kamo·4d ago
Featurekamo-internal

Growth Hub — one thing at a time, beside the App Shelf

The launchpad pane a member works their organisation's growth requests through, and the Marketing settings tab an admin writes and reviews them from. `WidgetDe...

Kamo·4d ago
Featurekamo-internal

A trophy cabinet, and a celebration that finds the member

Adds the Achievements surface: the trophy in the rail, /achievements, the launchpad leaderboard, and the unlock popup that arrives over whatever page a member h...

Kamo·4d ago
Fixkamo-internal

The docked row has one height, and no way left to arrive at another

Resizing a docked window's top edge moves every window's top edge — the row sits on the bottom with its tops in a line, and a row of different heights is a ragg...

Kamo·4d ago
Featurekamo-internal

The board every org can read, and a vote on every improvement

The organization column is on for everybody now, because every viewer sees every organization's reports. What varies is whether a given ROW can be named, and th...

Kamo·5d ago
Otherkamo-internal

Merge branch 'main' of ****************

Kamo CI·5d ago
Featurekamo-internal

A way onto a paid plan that is not hidden under a profile

An owner deciding whether to pay had to know the answer lived under their own profile, three clicks from the page they open every morning, signposted only by a ...

Kamo CI·5d ago
Featurekamo-internal

Give a member their text numbers, and let them choose which one sends

Two screens, one idea: a phone line usually is not one person's. MEMBER SETTINGS → PHONE A card modelled on the Email tab's mailbox list, because the two scre...

Kamo·5d ago
Fixkamo-internal

The launchpad hid the App Shelf to say the member had no apps

A member granted an app or two and no widget right — Support and the Knowledge Base, say — opened their launchpad to "No apps yet. You don't have access to any ...

Kamo·5d ago
Fixkamo-internal

A meeting link the member can set, and one guest row per guest

Two halves of "Add external guest to meetings does not send an email to that person". The link. meetingUrl came back from the API, was bound to nothing, and co...

Kamo·5d ago
Featurekamo-internal

The repeat interval goes down to one second

Asked for on 2026-09-06. The floor was five; it is one everywhere now — the control, the clamp the browser applies, and the clamp the service applies. Zero is s...

Kamo·5d ago
Featurekamo-internal

One checkbox on a callback, to tell the lead

The callback dialog hid the invite controls, and the note under it said "The lead is not notified." That was true, and it was the right call for the control bei...

Kamo·5d ago
Fixkamo-internal

A knowledge-base link the member can actually click

The assistant's KB links did nothing at all. Not a wrong path and not a rights problem — the click handler was never called, because no click event was ever dis...

Kamo·5d ago
Fixkamo-internal

The unread-chat card opened the member's mailbox

It carried deepLink: '/messages', which is the mail client. Chat has no route to point at — its window is a tool raised by a tool:open event — so the card navig...

Kamo·5d ago
Featurekamo-internal

Tell me about new mail and unread chat, and keep saying it

Two more tiles under "What you are told about", and the two things behind them. New email is raised off the inbox socket the app already holds open. Unread cha...

Kamo·5d ago
Chorekamo-internal

The last two files git was treating as binary

Finishing the sweep that started when my own billingDraft.ts committed as "Bin 0 -> 6882 bytes". Scanning every tracked text file for a NUL byte found three mor...

Kamo·5d ago
Fixkamo-internal

The wallpaper was painting under the body, not failing to load

The launchpad backdrop — the plain gradient, the org watermark and the wallpaper slideshow it carries — has been completely invisible since 03743d02. Nothing fa...

Kamo·5d ago
Fixkamo-internal

An expired card can no longer be the one you are billed to

Answering "is changing the default still there on Payment Info" — it was, and reading it turned up a defect worth more than the answer: nothing stopped an EXPIR...

Kamo·5d ago
Featurekamo-internal

Show the URL a carrier has to be told to post to

Adding a text provider covers sending. Receiving needs the carrier told where to deliver, which happens in the carrier's own console — and the form never said w...

Kamo·5d ago
September 6, 2026
Fixkamo-internal

A NUL byte in two source files, which made git call them binary

Caught on a last pass over my own work: `billingDraft.ts` committed as "Bin 0 -> 6882 bytes". A separator written as a space had reached the file as a raw NUL b...

Kamo·5d ago
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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d 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·5d ago

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing