Live Change Log

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

17,965
Total Changes
4,632
Features
4,554
Fixes
32
Projects
Filter by project
All Projects17,965AIService112APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService383InitializerService300KBService74KlusterServices547MCPGatewayService43MediaService462RAGService61SecurityService1,526TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,588kamo-login319kamo-marketing588kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,325kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI523Chore670Docs228Feature4,632Fix4,554Other6,781Performance136Refactor274Revert23Style48Test71Upgrade1
September 11, 2026
Fixkamo-internal

The rim's lead current stays white-hot all the way round

Its gradient was pinned to the hexagon's box rather than travelling with the arc, so for a third of every lap the current was gold on the gold rim and simply va...

Kamo·1d ago
Featurekamo-internal

A minimized Exec2Exec head runs a current of light round its rim

A line to KamoCRM's executives must never sit in the dock looking like one more chat. Its minimized head now carries an energy rim: a gold-to-white-to-sky arc r...

Kamo·1d ago
Fixkamo-internal

A window's scrollbars no longer show through the window on top of it

Maximizing a tool window left a column of scrollbar buttons from the window behind it floating in the middle of the pane, and two overlapping floating windows s...

Kamo·1d ago
Fixkamo-internal

MUI text is set in Geist, not Helvetica and Arial

I18nProviders handed the Geist font to createTheme as an overlay, and overlays are merged in after the theme is built. By then MUI has already written its Robot...

Kamo·1d ago
Fixkamo-internal

Every Chats sub-tab fits, with the same gap between each

The Interaction Center's Chats strip gave its seven tabs seven equal shares of the 550px pane, 78px each whatever they said. "Team Members" needs 91px, so it wa...

Kamo·1d ago
September 10, 2026
Featurekamo-internal

NavTop's Exec2Exec control is the desk for a KamoCRM executive

For a member with Exec2Exec Access standing in the platform organization, the control now counts messages from clients they have not viewed (GET ***************...

Kamo·2d ago
Featurekamo-internal

One brand-painted dropdown surface for the whole top bar

Every dropdown that hangs off NavTop — the eight option menus (Mail, Docs, Call / Text, Calculator, Support, Settings, Linux Desktop, Games), the availability p...

Kamo·2d ago
Fixkamo-internal

Stop a revoked executive's window; raise only chats waiting on the desk

- A MEMBER_REMOVED naming the viewer unsubscribes the transcript, empties it, disables the composer and says why. Revoking Exec2Exec Access used to leave th...

Kamo·2d ago
Featurekamo-internal

Show who from KamoCRM is on the chat, and how to reach them

The customer's window now lists the KamoCRM executives on their conversation, re-read whenever somebody is added or removed. The line shows NAMES only, with tit...

Kamo·2d ago
Featurekamo-internal

Stop at a pinned Interaction Center; keep windows under every menu

Two follow-ups to 0c5ef994 (maximize beside the nav). A PINNED Interaction Center now takes its width away from the maximized pane. Pinned, the panel is worked...

Kamo·2d ago
Featurekamo-internal

Maximize beside the nav, not over it

A maximized tool window used to take the whole viewport. It, its navigator column and its tab strip were all pinned at (0,0) at the dock's stacking level, over ...

Kamo·2d ago
Fixkamo-internal

Raise the conversation when a customer writes, and on a reply

An executive's message reached nobody at KamoCRM: nothing on the console read an Exec2Exec frame. Exec2ExecDeskOpener now raises that customer's window — named,...

Kamo·2d ago
Featurekamo-internal

The executive channel in the console

A direct line between a customer executive and the KamoCRM executives: the chat half of the support window with no ticket, no status, no rating and no queue. T...

Kamo·2d ago
Featurekamo-internal

Finish the category page — width, one back arrow, real words

The three managers were written to sit inside a nested tab of a tab. As a page of their own they needed the space they now have. - Configuration capped itself ...

Kamo·2d ago
Fixkamo-internal

The nudge the inviter could never send, and a chat invite that rejoins

**Nudge.** The rail hid the button unless it was the opponent's turn, which reads as a rule about fairness and is a rule about nothing — the server has never ha...

Kamo·2d ago
Fixkamo-internal

One "on" colour, and a retry that does not cascade

Two things left over from the categories table. The allow swatch was tinted by whether the setting is locked — primary for locked, a green for unlocked. The lo...

Kamo·2d ago
September 9, 2026
Featurekamo-internal

Categories are a table, and each one opens as its own page

/settings/features/docs carried eight tabs: General, then seven that each mounted the same three managers against a different ordinal. Seven copies of one scree...

Kamo·2d ago
Testkamo-internal

Cover the topInset the maximized window already honours

ToolWindowShell has taken a topInset since the tab strip landed — it starts the window below the strip and stops it short by the same amount, or the strip is dr...

Kamo·2d ago
Refactorkamo-internal

Stop forking the signing surface, and offer the whole signed record

kamo-internal carried a hand-copied fork of the external signer app — fifteen files under app/lib/esign, app/stores/esign and app/components/esign/signing, each...

Kamo·2d ago
Fixkamo-internal

The envelope dashboard could not tell "not emailed" from "not opened"

The warning naming an undelivered invitation lives in the send response, so it is gone the moment the dialog closes. After that the dashboard is all there is — ...

Kamo·3d ago
Featurekamo-internal

A Signature Date field, and a send that admits when nothing was emailed

**"Sent" was not the same thing as "delivered", and the dialog never said so.** ESigService discarded the result of every invitation email, so a send whose mail...

Kamo·3d ago
Featurekamo-internal

Open at the front of a new session, stay put inside one

Two rules that only make sense together, and the panel did the opposite of both. A member arriving in a NEW browser tab — a fresh sign-in, a second tab opened ...

Kamo·3d ago
Featurekamo-internal

Twelve endings, and every one of them looks different

A hand ends for everyone at the table at once and it ends differently for each of them. Until now it ended one way: somebody won a pot, and the window played th...

Kamo·3d ago
Featurekamo-internal

A side pot says who is playing for it

The last "consider" left in the request, and the one question a short stack actually has: when the middle splits in two, both piles look like money and only one...

Kamo·3d ago
Fixkamo-internal

The particles ran at the monitor's speed, and the chips were unreadable on two denominations

Two deferred things finished, both measured rather than eyeballed. THE PARTICLE LOOP IS TIME-STEPPED. `PixelParticles` advanced physics once per FRAME — every ...

Kamo·3d ago
Fixkamo-internal

Four things about the celebration only a browser could say

Measured in Chrome against the real component, not reasoned about. The headline was sized at a flat 13cqw, which is right for a number and wrong for a word: CH...

Kamo·3d ago
Featurekamo-internal

One table at a time, and a table you can name

The felt half of the four rules MediaService started enforcing in a02dd1d. ONE WINDOW. The registry said `maxInstances: Infinity`, reasoning in a comment that ...

Kamo·3d ago
Featurekamo-internal

The whole window celebrates when somebody wins

A win used to be a sentence in a strip under the board. It is now the entire tool window: an impact flash and a shockwave, light turning behind the board, firew...

Kamo·3d ago
Featurekamo-internal

The Directory leads the tab strip, Chats follows

Flips the two always-present tabs. The strip now reads Directory, Chats, Sales Scripts, Terminals. The panel still OPENS on Chats: the button that opens it is ...

Kamo·3d ago
Testkamo-internal

The motion guard matched a form, and longhand opted out of it

The reduced-motion walker scanned for the `animation:` shorthand. Writing the same animation as `animationName:` plus longhand properties — the first refactor a...

Kamo·3d ago
Testkamo-internal

Prove the chat window's menu consults the entitlement too

The companion to the MediaService endpoint test, at the second door. The chat games menu had the entitlement hole independently of the nav icon — it asked for t...

Kamo·3d ago
Testkamo-internal

The ramp-order fallback was a branch no test took

The invariant added in 80aee0ee falls back to the whole allowance when `clockStages` reports no critical boundary — which happens when the clock opens critical ...

Kamo·3d ago
Testkamo-internal

The two clock ramps are independent, but not unordered

The colour and the sound escalate on deliberately different beats — a rate and a state are different vocabularies, and each says something the other cannot. Tha...

Kamo·3d ago
Performancekamo-internal

The clock drains on the compositor, not on a timer

The felt's turn clock ran off a 200ms setInterval writing a fraction into React. That is an honest way to build a bar that must track a server deadline, and it ...

Kamo·3d ago
Fixkamo-internal

The opening effect's cancel guards were guarding nothing

`cancelled` was declared, read seven times, and never assigned — the effect returned no cleanup — so every `if (!cancelled)` in the load that opens a window was...

Kamo·3d ago
Featurekamo-internal

A put-away table says you are on the clock

The other half of the hexhead turn indicator. A minimized Hold'em window now lights its head while the action is on you, and drains the head's own outline — gre...

Kamo·3d ago
Featurekamo-internal

A minimized game says it is your move

A head could already say a message had arrived. It could not say a game was waiting on you — chess tinted its border brass, which on a forty-pixel hexagon at th...

Kamo·3d ago
Refactorkamo-internal

One table per game, and drop the cast the union forced

Follow-up polish on the Games entitlement gate. No behaviour change; the tests that pin it are unchanged and still pass. **************** was typed `GamesOrgan...

Kamo·3d ago
Testkamo-internal

Stop pinning setThemeSlug's argument list in a source assertion

`tabOrgResolution` was red on main. It asserts on the SOURCE of app/validate/page.tsx and required the literal text `setThemeSlug(orgRef)`, so `f9bd7621` — whic...

Kamo·3d ago
Fixkamo-internal

Early Bird and Twenty Doors read the laptop's clock, not the member's

`check-server-timestamps` was red on main: `rememberToday` bucketed the day with `new **************** which is the BROWSER's zone. The guard exists because tha...

Kamo·3d ago
Featurekamo-internal

The Show button, and the clock hook mounted

The client half of showing a hand nobody made you show, plus the mount point for the turn-clock audio that landed dead in the previous commit. SHOWING OUTRANKS...

Kamo·3d ago
Featurekamo-internal

Your own clock, out loud

A thirty-second clock a player is not watching is a hand lost to a timeout while reading an email, and the felt's draining bar only helps somebody already looki...

Kamo·3d ago
Fixkamo-internal

The chips were on the table, not on the felt

A member reported that the player opposite them had chips half off the table. Measured in a browser: NINE of the ten piles were off the cloth. The reader's own ...

Kamo·3d ago
Featurekamo-internal

Every logo on the Branding card can be downloaded

The download control shipped on one of the six artwork slots — the compact company logo — because the row was written inline at that one call site. The other fi...

Kamo·3d ago
Fixkamo-internal

The computer's reply was silent against the quickest level

The four move cues carried an 80ms throttle. Each is raised once per published frame the board could prove it understood, and a frame is a move — so there was n...

Kamo·3d ago
Fixkamo-internal

Six the adversarial review upheld

Ten reviewers, three skeptics each. Twelve findings survived; most of the rest were refuted because they had already been fixed. Of the twelve, six were still r...

Kamo·3d ago
Featurekamo-internal

A table that has ended sends you to the lobby, with the news

An invitation card outlives the table it points at. Somebody follows one ten minutes later, the game is over, and the window answered with a red error bar over ...

Kamo·3d ago
September 8, 2026
Featurekamo-internal

The captures get the room the notation was taking

Two things the member asked for after seeing it. **The move list is gone.** Nobody was reading a column of notation; what two colleagues playing each other wan...

Kamo·4d ago
Fixkamo-internal

What an adversarial read of the whole thing found

Ten reviewers over the change, three skeptics per finding. These are the ones that survived, and most of them were in the wiring rather than in the parts that h...

Kamo·4d ago
Chorekamo-internal

Sweep the two locals the pot block left behind

`potTotal` and the component-level `t` were the only readers of the pot block I moved into the chip layer, and both survived it — read by nothing, flagged by no...

Kamo·4d 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