KamoCRM

Live Change Log

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

17,395
Total Changes
5,910
Features
5,260
Fixes
30
Projects
Filter by project
All Projects17,395AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,830TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,328kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,637kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,910Fix5,260Other993Performance165Refactor278Revert23Style42Test159Upgrade1
September 5, 2026
Otherkamo-internal

Merge branch 'feat/one-scrollbar'

One scrollbar for every scroller in the app, with the terminal window's five controls on all of them.

Kamo·1mo ago
Fixkamo-internal

Every scrollbar keeps all five controls, at every size

The first cut dropped the four buttons on any bar shorter than 140px, on the argument that 96px of them leaves a 250px popover with a stub of track. That was th...

Kamo·1mo ago
Featurekamo-internal

One scrollbar, for every scroller in the app

The terminal tool window had a scrollbar worth keeping — 32px, with a button for each END of the scrollback as well as the usual step arrows, because in a long ...

Kamo·1mo ago
Fixkamo-internal

Prove the deploy by digest, not by tag

The preceding commit stops `set image` being a silent no-op. This asserts the outcome: after the rollout, the tag is resolved to a digest at the registry and th...

Kamo·1mo ago
Featurekamo-internal

Publish the policy addresses, the real state licences, and a link per product

Three things the public loan-application site could not previously be told, and one it was told wrongly. **Company Info gains Privacy Policy Address and Terms ...

Kamo·1mo ago
Fixkamo-internal

A rebuild of the same commit deployed nothing and reported success

The image is tagged with the commit SHA, so rebuilding the same commit produces an identical image reference. `kubectl set image` then changes nothing, the Depl...

Kamo·1mo ago
Featurekamo-internal

Start a coder session from the Linux Desktop menu, at a model and effort you keep

The icon already opened a remote desktop and a remote terminal. The third thing people actually go to that machine for was reachable only by opening the Interac...

Kamo·1mo ago
Fixkamo-internal

Make Add Source actually connect Google and Microsoft

The Manage Sources dialog on the Contacts page had the same defect as the CalDAV/CardDAV settings tab, on a screen ordinary members reach rather than one behind...

Kamo·1mo ago
Featurekamo-internal

Finish the personal calendars panel, and put it where a member can reach it

PersonalProviderSection was scaffolding that nothing rendered, and it would not have worked if it had: it read GET /member/{id}, a route that did not exist, so ...

Kamo·1mo ago
Featurekamo-internal

Gate the user account on platform rights, not on which org owns it

Authored in a concurrent session on this machine and committed here at the user's request; recorded so the provenance is not guessed at later. The user account...

Kamo·1mo ago
Fixkamo-internal

A 404 costs 1.45 MB, which is how a scanner took the site down

Next's not-found is a PAGE. It renders through the root layout, which resolves the tenant's organization over the network and serializes the whole app shell and...

Kamo·1mo ago
Fixkamo-internal

Map a provider's own folders onto the standard ones, wherever they sit

The last fix pinned a folder by the role the server gave it and still left a member on Google Workspace looking at "[Gmail]" among their own folders with their ...

Kamo·1mo ago
Fixkamo-internal

Say whether a DAV server's credentials are already stored

The Apple iCloud / custom CalDAV panel shows four empty boxes whether or not a username and password are on file. It cannot do otherwise -- a stored password is...

Kamo·1mo ago
Fixkamo-internal

Keep the folder in the path too, wherever it can survive there

The endpoints prefer the query parameter, but they are deployed separately from this code, and a browser that loads the new bundle a minute before EmailService ...

Kamo·1mo ago
Testkamo-internal

Cover the arrangement the Gmail sidebar actually asks for

The classification is tested in folderTargets; this is the call the sidebar makes with it. None of Gmail's well-known folders is a root and none is named anythi...

Kamo·1mo ago
Fixkamo-internal

A role with no slot in the pinned block leaves the folder unpinned

indexOf answers -1, and -1 is not null, so a role that ever lost its place in PINNED_ROOT_ORDER would have pinned its folder ahead of the inbox rather than fall...

Kamo·1mo ago
Stylekamo-internal

Restore FolderSidebar's CRLF line endings

The previous commit rewrote the file through a text-mode tool, which flattened every line ending and turned a 66-line change into a 2755-line diff. Content is b...

Kamo·1mo ago
Featurekamo-internal

Make Connect via OAuth on the CalDAV/CardDAV tab actually connect

The button raised alert('OAuth flow not yet implemented - configure credentials manually via the API'). It now opens the real Google Workspace / Microsoft 365 c...

Kamo·1mo ago
Fixkamo-internal

Make Gmail's folders open, and list them as folders rather than paths

Two faults, both from the client deciding for itself things only the mail server knows. **"Failed to load messages."** The folder travelled as a path segment, ...

Kamo·1mo ago
Fixkamo-internal

Offer a RingCentral sign-in, not a JWT box, on every member

The per-member credential card had exactly one control: paste a RingCentral JWT. A RingCentral JWT is minted per user inside the developer console, by a user wh...

Kamo·1mo ago
Stylekamo-internal

Double the scrollback bar's width

16px to 32px. A terminal scrollbar is not chrome to be tucked out of the way — it carries four buttons that get pressed deliberately and a grip dragged over a l...

Kamo·1mo ago
Fixkamo-internal

Make the scrollbar scroll the shell, because the scrollback is not here

The bar moved xterm's own buffer, and under tmux that buffer never grows: tmux sends the client only the lines that end up visible and keeps the history itself....

Kamo·1mo ago
Fixkamo-internal

The end-terminal confirm was unreadable over the row behind it

Two things, both about the seam between a navigator and what is beside it. ## The confirm had no surface of its own A terminal row's actions sit OVER the row ...

Kamo·1mo ago
Fixkamo-internal

Point the seat, payment-method and add-on calls at routes that exist

Four calls in posApi addressed REST-shaped URLs — /seats, /payment-method, /addons, DELETE /addons/{id} — and POSController exposes none of them. It has change-...

Kamo·1mo ago
Featurekamo-internal

A put-away terminal's hexhead says whether it wants you

A member with six terminals minimized has one question about each: is that one waiting for me? The head now answers it in a colour. green working — nothing ...

Kamo·1mo ago
Featurekamo-internal

Give a head the app's own tooltip, placed from where it sits

The label was the browser's native `title` box: unstyled, and put wherever the other 291 hover targets in this chrome use, arrow and all. A head is not a norma...

Kamo·1mo ago
Featurekamo-internal

Show the startup fee before it is charged, and where a deal overrides it

calculate-price has always returned a setupFee and the order wizard printed it nowhere, so a charge that runs to four figures on a large order reached the custo...

Kamo·1mo ago
Fixkamo-internal

Retire the SMS provider's test verdict when its credentials change

The same defect as the phone server's Overview tab, one screen across: saving new credentials left the previous Test Connection result on display, so a "Test fa...

Kamo·1mo ago
Fixkamo-internal

Catch the app credentials pasted into RingCentral's JWT box

Two things went wrong on the same screen, and together they produced a settings page showing a green "Credentials complete" chip above a red "RingCentral instan...

Kamo·1mo ago
Featurekamo-internal

Pick the model and effort before starting a coder session, once

Send To AI dialog has, and the two are the SAME choice rather than two. Somebody who has settled on Sonnet at High has settled on it. Re-picking in the other p...

Kamo·1mo ago
Featurekamo-internal

Name a hexhead after the window it stands for

A hexhead's tooltip read "User w12" — the head id, which is the window id, in a string written for member avatars. A dock of six minimized windows was six ident...

Kamo·1mo ago
Fixkamo-internal

Point the integrations proxy at the path EmailService serves

The Manage Sources dialog forwarded to /api/settings/integrations, which EmailService does not map — its controller is at **************** Every request from th...

Kamo·1mo ago
Fixkamo-internal

Say why a mailbox sync failed, and what key is on file

Two silences that made a working Google Workspace connection read as broken. The mailbox sync caught the provider's rejection and dropped it. Google refuses th...

Kamo·1mo ago
Featurekamo-internal

Show the sign-in lockout as a rule that cannot be switched off

SecurityService now applies a progressive sign-in lockout to every organization whether or not a row exists for it — five free attempts, then five seconds, then...

Kamo·1mo ago
September 4, 2026
Featurekamo-internal

Show a member the redirect URI on their own domain

This is the screen the whole change is for. A member setting up Google Workspace with their organization's own OAuth app comes here to find the address to paste...

Kamo·1mo ago
Fixkamo-internal

Stop a password reset asking the operator to type ERASE

ConfirmationDialog described every action as a deletion. Left to itself it picked the type-to-confirm word at random from DELETE, REMOVE, DESTROY and ERASE, dre...

Kamo·1mo ago
Featurekamo-internal

An operator may set a personal address, and ask about the right account

Two changes to the member profile, both about the same confusion: which person a question is being asked about. The personal email card is no longer self-only....

Kamo·1mo ago
Fixkamo-internal

Stop asking for logos that were never uploaded

/network built each org's logo URL from its alias and requested it for every org on the page. An org whose theme folder was never provisioned has no img/logo.sv...

Kamo·1mo ago
Featurekamo-internal

coder sessions beside the running shells, and a scrollbar that reaches both ends

## Terminals is now two views of one machine Sub-tabs rather than two top-level tabs, because they are not two destinations: a terminal is a shell that may be ...

Kamo·1mo ago
Featurekamo-internal

Answer a readiness probe, and run two pods

This deployment had no readiness probe, so a pod counted as Ready the instant its container process started. With maxUnavailable 0 Kubernetes reads that as "the...

Kamo·1mo ago
Featurekamo-internal

Choose a logo overlay for the sign-in and sign-up sites

A fourth and fifth surface beside the home page, loading screen and KamoMeets overlays, sharing their thirteen-token vocabulary and their live swatches. Both a...

Kamo·1mo ago
Featurekamo-internal

Change your own address, and a platform tab for every account

Two surfaces, joined by one distinction the platform has never explained to anybody: a user account is the PERSON, and a member is one organization's relationsh...

Kamo·1mo ago
Featurekamo-internal

"What happened?" fills the window, so maximizing enlarges it

Every other field on the report form is sized by its content. The description is the one somebody is actually writing in, so it now takes whatever height is lef...

Kamo·1mo ago
Fixkamo-internal

Add the preStop hook the drain script was always missing

Deploys replaced the only pod of each service with nothing to catch the requests in flight. Three settings, applied across the fleet: - preStop sleeps 10s befo...

Kamo·1mo ago
Featurekamo-internal

Public rides the SEND TO AI row, and arms the hand-off for god

The Publish control was a bordered block of its own further down the form, carrying two lines of hint under the switch. It is now a compact toggle on the headin...

Kamo·1mo ago
Fixkamo-internal

Draw the Publish switch on god eligibility

Reported: "my user has god enabled, yet I still don't see the new publish field." The gate was isGodModeActive(), which is getIsGod() AND an open break-glass wi...

Kamo·1mo ago
Fixkamo-internal

The SPF card had no proxy route, so it never reached the API

The card shipped calling /api/security/domains/{id}/spf, and every request 404'd at Next.js before SecurityService ever saw it — which the card reported as "We ...

kamo·1mo ago
Featurekamo-internal

Ending a terminal takes its window and hexhead with it

Ending a terminal from the Interaction Center killed the shell and left the window behind, showing a red `closed` status over something that no longer exists. T...

Kamo·1mo ago
Featurekamo-internal

Tell each domain what its SPF record actually needs

/setup/dns walked a customer through ownership, subdomains and SSL and then said nothing about the record that decides whether the mail we send for them is beli...

kamo·1mo ago
Featurekamo-internal

Copy your referral link from any public role

Referrals are the highest-converting channel a job board has, and what stops them here is friction rather than unwillingness: the careers site answers on a diff...

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