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
September 6, 2026
Fixkamo-marketing

One source of truth, and a build that can actually reach it

Every price on this site had a second copy in the repo, and the second copy was the one being served. kamo-prices.ts said so in its own comment: the fallback t...

Kamo·1mo ago
FixInitializerService

Drop the frozen type_id CHECK that blocked every bug thread

`media_sessions` is created by Hibernate's ddl-auto, not by a migration, so it carries the constraint ddl-auto writes for an `@Enumerated(ORDINAL)` column — fro...

Kamo·1mo 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·1mo 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·1mo 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·1mo 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·1mo ago
FixSecurityService

Wire the god guard into the identity-rights test's policy

UserAccountEditPolicy took a third constructor argument and this test still built it with two, so test-compile failed — and CI runs `mvn package -DskipTests`, w...

Kamo·1mo 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·1mo 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·1mo 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·1mo ago
FixVOIPService

One send contract across all five providers, and stop dropping inbound texts

The SMS abstraction layer had five providers disagreeing about how to fail and an inbound path that discarded real customer messages in silence. Sending - Se...

Kamo·1mo ago
Fixkamo-marketing

Remove the footer picker, keep the ?holiday= parameter

The dropdown was a temporary control for the initial review of the eighteen scenes and it has served its purpose. The query parameter stays — it is the only way...

Kamo·1mo ago
Fixkamo-marketing

Stop the page-rotation easter egg re-firing on every trip to the footer

The reported lockup was never the holiday scenes. It is `HiddenAnimations`, which has been in this repo the whole time, and the report described it exactly: "so...

Kamo·1mo ago
Fixkamo-marketing

Stop the scenes hanging the tab

Reported: "after about a minute or two the page looks to animate away then animate back and its completely locked up. Browser wants to close the tab." Reproduce...

Kamo·1mo 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·1mo ago
FixEmailService

Give the bug-status preview the denial block it now renders

SystemBugStatusEmail pre-renders two conditional blocks, and the admin preview has to supply both. Present and empty rather than absent: an unsupplied placehold...

Kamo·1mo ago
FixSecurityService

Keep the dispatch's status write in step with the denial reason

Two services move a system bug's status, and only one of them knew about the new denial_reason column. A dispatch applying IN_PROGRESS to a report that had been...

Kamo·1mo ago
FixInitializerService

Stop the operator seed re-granting revoked platform rights

Rights taken away from a platform administrator on Platform Admins came back on their own days later, which read from the console as a save that would not stick...

Kamo·1mo 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·1mo 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·1mo ago
Fixkamo-internal

Preview each logo from the org being edited, and stop hiding the software simple logo

Two defects on Behavior & Labeling, both of which make a logo that IS uploaded read as though it is not. **Every preview URL now comes from the org this pane f...

Kamo·1mo ago
Fixkamo-internal

Make the logo-preview checker mid-grey, so a white logo shows

The checker shipped in 5e0fb7b2 at #e0e0e0/#fff, matching the image-to-svg tools. Rendered against real logo geometry that is wrong for this screen: a pure-whit...

Kamo·1mo ago
FixConversionService

Stop an indexed source turning the tab icon into a black box

A tab icon uploaded as a transparent PNG-8 arrived in the browser tab as a black square with a ragged logo on it. Measured on the upload that exposed it: of the...

Kamo·1mo ago
Fixkamo-login

Carry a referral code through to the register link

The referral code normally travels in the apex cookie the marketing site sets (kdsc_src on .<apex>), which register.<apex> reads for itself, so this link does n...

Kamo·1mo ago
FixSecurityService

Log a referral code that arrives with no visitor guid

A signup carrying a marketing code but no visitor guid had its referral dropped in complete silence — the branch that publishes the attribution event is gated o...

Kamo·1mo ago
FixMediaService

Credit a signup whose page views were never recorded

**************** was the ONLY thing in the fleet that ever inserted into MARKETING_VISITORS, so the whole conversion pipeline silently depended on a browser bea...

Kamo·1mo ago
Fixkamo-register

Mint a visitor id when a referral code arrives without one

RegisterFlow already read `?discount=` for visitors who reached the form without passing through the marketing middleware — a code pasted into an ad, an email o...

Kamo·1mo ago
Fixkamo-marketing

Stop losing referral attribution on the marketing site

Two ways a member's referral was being dropped, both silent. 1. Every register/login CTA was the string literal `https://register.kamocrm.com`, while this s...

Kamo·1mo ago
Fixkamo-internal

Give the member Careers tab the route its own gate asks for

The tab was invisible to every team member in every organization, including one looking at an open posting. Not a rights problem, though it was shaped exactly l...

Kamo·1mo ago
Fixkamo-internal

Stop the header eating the priority badge in a narrow window

The ticket number and both badges sit in one nowrap row, and none of the three can give way. The number is a 19-digit int64 that must not be abbreviated. The ba...

Kamo·1mo ago
Fixkamo-internal

Stop a hover control giving the message list a scrollbar

The support chat window drew a horizontal scrollbar under a conversation that had nothing to scroll sideways to. Each message's reply button is absolutely posi...

Kamo·1mo ago
Fixkamo-apps

Let the document scroll, so the scrollbar is the browser's own

Third attempt at this, and the first two were aimed at the wrong thing because the harness was lying. Puppeteer launches Chrome with --hide-scrollbars by defaul...

Kamo·1mo ago
Fixkamo-internal

Make /settings/member/me the real address three callers already assume

RestrictedMembershipGuard builds it when the session's member id has not settled, the sign page's back link builds it, and kamo-login now lands a candidate on i...

Kamo·1mo ago
FixMediaService

Let a manager accept the web chat they were just paged about

Clicking Accept on a web-chat request closed the popup and reopened it a moment later, unassigned and with no chat window — the same card, over and over, with n...

Kamo·1mo ago
Fixkamo-internal

Give the right-click menu the copy and paste it never had

Suppressing the browser's context menu (734f68cb) took the only copy/paste the terminal window actually had. That is not what it looked like — there are Copy an...

Kamo·1mo ago
Fixkamo-apps

Put the scrollbar where the artwork cannot paint over it

The last fix reserved the scrollbar's space but it still could not be seen, and the reason was not the scrollbar. BackgroundStage is `position: fixed` with the ...

Kamo·1mo ago
Fixkamo-internal

One refused request no longer ends the call and the session

The last way a member could lose a live call and everything in their tool windows without doing anything wrong. `authenticatedFetch` answered EVERY 401 with `w...

Kamo·1mo ago
Fixkamo-apps

Give the pane a real scrollbar, and the gap the lender's colour

The scroller had an OVERLAY scrollbar: Chrome's default for an inner scroll container, taking no layout space and fading out when idle. On a document you tolera...

Kamo·1mo ago
FixMediaService

Don't file chats into a support topic the org deactivated

resolveTopic honoured a configured topic by id alone, so deactivating one left the integration still pointing at it and new website chats still landing there — ...

Kamo·1mo ago
Fixkamo-apps

Pin the background and the support bubble, and point the way on

The pane could not both anchor `position: fixed` children and scroll them, and was being asked to do both. Its transform is what makes it their containing block...

Kamo·1mo ago
Fixkamo-internal

Every tool window keeps what the member typed, not just one

Follow-up to c45b3857, which fixed the bug/improvement window and left four others named in a "known gaps" list. That list was the wrong answer: a gap recorded ...

Kamo·1mo ago
September 5, 2026
FixMediaService

Tell the widget the org's name so it stops speaking as Kamo

The public-chat bootstrap payload carried orgId but no org name, so the widget had nothing to brand the assistant with and fell back to a hardcoded "Kamo AI". A...

Kamo·1mo ago
FixSecurityService

Publishing an application opens its chat key to the page it is on

The support widget on a published application loaded with Kamo's default config instead of the org's: it auto-opened on desktop with auto-open turned off, wore ...

Kamo·1mo ago
Fixkamo-internal

The scrollers styled with classes rather than sx get the bar too

Reported against /hr/overview, and the page itself is innocent — it declares no overflow at all. Its scroller is one line in app/hr/layout.tsx: <div classN...

Kamo·1mo ago
Fixkamo-internal

A populated bug report survives a page change

Reported again: a fully filled-in bug/improvement window came back empty after switching to /hr, and again from the analytics nav icon. The window was never los...

Kamo·1mo ago
Fixkamo-internal

The rail's own scrollbar is not an exit from the rail

The previous attempt at this fixed the wrong handler. It taught the reconcile in useNavHoverPeek to see through the bar, which was worth doing and was not what ...

Kamo·1mo ago
Fixkamo-internal

Resting on the rail's own scrollbar no longer flaps it open and shut

Reported as the rail switching between expanded and collapsed rapidly with the pointer held still over its scrollbar, which is exactly what it did. useNavHover...

Kamo·1mo ago
Fixkamo-internal

Give the expanded rail back the width the scrollbar took

The rail is the one place where the app's scrollbar was paid for out of somebody else's layout. Expanded, it has always reserved a gutter — 20px, for the bar it...

Kamo·1mo ago
Fixkamo-internal

The scrollbar moves the content over instead of sitting on it

Painting the bar over the last 32px is fine over a background — the launchpad's wallpaper does not mind — and wrong everywhere else. In a chat log it lands on t...

Kamo·1mo ago
FixSecurityService

Close the last two catalog-bump gaps, and stop echoing exceptions

Two reads and nine response bodies, both halves of the same report. SessionRefreshController loaded the member one statement before the rights read that was fi...

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