KamoCRM

Live Change Log

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

18,414
Total Changes
6,545
Features
5,540
Fixes
30
Projects
Filter by project
All Projects18,414AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService623InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,999TranslateService62VOIPService265VectorService11kamo-apps27kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,701kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,828kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,545Fix5,540Other1,001Performance174Refactor282Revert23Style45Test175Upgrade1
September 6, 2026
Featurekamo-internal

Context menus for tool window title bars and hex heads

A member with a dozen windows open could only put them away one at a time, and the only bulk gesture that existed — throwing each hex head at the goal — is a ge...

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

Checkerboard behind the logo previews on Behavior & Labeling

The nine logo slots painted their artwork straight onto the card's own white, which hid the two things an admin is looking at: whether the file is actually tran...

Kamo·2mo ago
Featurekamo-internal

Ribbon wording and a tab icon column on Behavior & Labeling

Two additions to the same page, each in the pane it belongs to. **Custom Labels** grows a Ribbon Messages box: five rows, one per public pane screen, in the or...

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

Show the member Careers tab on team membership and an open role

Two conditions, and no right among them: the viewer is a team member, and the organization has at least one posting open and taking applications. The second ch...

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

Choose the support topic a website's chats are filed under

The add/edit dialogs had no way to say which support queue a website's chats belong in, because the setting didn't exist — the widget sent a hardcoded "General ...

Kamo·2mo ago
Featurekamo-internal

Park the swarm at the bottom-left, against the nav rail

The home cluster's default spot moves from the bottom-right corner to the bottom-left, sitting one padding clear of the primary rail's right edge — collapsed at...

Kamo·2mo 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·2mo ago
September 5, 2026
Featurekamo-internal

Send a new starter to the board, and open the advert they came for

A team member whose employment is not ACTIVE is already confined to the restricted tier, and the home screen already bounced them somewhere. It now matters WHER...

Kamo·2mo ago
Testkamo-internal

Pin the right-click to one menu

The handler itself is already in — swept into 734f68cb by a concurrent commit in a shared checkout, under an unrelated message. This is the test it was written ...

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

Publishing an application is a decision, and it comes with a chat

**Vendors & Products no longer prints a link for every product it has.** It printed one for every mortgage product the moment that product existed, which meant ...

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