Live Change Log

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

17,983
Total Changes
4,644
Features
4,557
Fixes
32
Projects
Filter by project
All Projects17,983AIService112APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService385InitializerService302KBService74KlusterServices547MCPGatewayService43MediaService462RAGService61SecurityService1,528TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,598kamo-login319kamo-marketing588kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,327kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI523Chore670Docs231Feature4,644Fix4,557Other6,781Performance136Refactor274Revert23Style48Test71Upgrade1
September 2, 2026
Fixkamo-internal

Send MUI's styles with the markup that needs them

internal.kamocrm.com was serving a 1.34 MB document containing 123 `css-xxxx` class names — `MuiBox-root css-e26q24` among them — and not one rule for any of th...

kamo·1w ago
Fixkamo-internal

A reopened conversation is the one you were having

A member started a chat about KB articles, minimized it to its hexhead, went to their mail and brought the window back to a blank conversation — "having to star...

Kamo·1w ago
Fixkamo-internal

Read a new lead's phone number against the country it is in

The New Lead form asks which country the lead is in, then ignored the answer when reading their phone number. Both PhoneField instances and the validator fell t...

Kamo·1w ago
Fixkamo-internal

Do not follow a protocol-relative link in-app

"//example.com" starts with a slash but is another origin. The in-app branch matched it and would have handed router.push an off-site destination; it belongs in...

Kamo·1w ago
Fixkamo-internal

Mirror the monthly-rate reading in the editor preview

previewOption divided the line-item sum down to a monthly figure the same way the server did, so the card and the print preview showed one month of any term. A ...

Kamo·1w ago
Fixkamo-shared-library

A unit price is a MONTHLY rate, so the term multiplies it

The engine treated an option's line-item sum as the price for the whole billing period and divided down to reach a monthly figure. It is the other way round. P...

Kamo·1w ago
Fixkamo-internal

Follow a link without losing the conversation

Reported alongside the KB links all pointing at one article: "when it is fixed and they will work, please let the AI chat still hover on top so you don't have t...

Kamo·1w ago
FixAIService

A KB link goes to the article its text names

A member asked how to set their org up and got the setup checklist back, each step naming the article that explains it. All three links pointed at the same arti...

Kamo·1w ago
FixEmailService

Keep the words typed after an inserted photo

The same reported message had a sign-off underneath its photo. That did not arrive either — the reading pane showed an empty body above the attachment. There i...

Kamo·1w ago
FixEmailService

Let a photo attached from a phone be opened

A member sent themselves a message from an outside account with a file attached. The message arrived; the file was nowhere in it — no preview, no download link,...

Kamo·1w ago
Fixkamo-internal

Fix the Reports tab's folder heading nesting

The per-folder count Chip sat inside the heading Typography. MUI renders subtitle1 as an h6, which takes phrasing content, and a Chip is a div — so the count wa...

Kamo·1w ago
FixEmailService

Give a folder with an ampersand in its name its message count

A mailbox called "Bugs & Enhancements" showed no count in the sidebar while every folder beside it showed the right one, and the mailbox totals were short by ex...

Kamo·1w ago
Fixkamo-internal

Give the annotation tools their tooltips back

The five annotation tools in the PDF designer built their tooltip key by interpolating the tool type onto a "tool_" prefix, but the dictionary names those same ...

Kamo·1w ago
Fixkamo-shared-library

A three-year deal totals three years, not one month of it

Two faults, both showing a monthly figure where the term's value belonged. 1. The headline took periodTotal + setup. On a MONTHLY option committed to 36 mon...

Kamo·1w ago
Fixkamo-internal

A committed term is worth what it commits to

The card led with the recurring rate whatever the term, so a 36-month commitment priced at $100 a month showed $100. The deal is $3,600. Where the contract run...

Kamo·1w ago
Fixkamo-internal

Keep a grid's popups opaque when its body is see-through

Opening Page Size in the doc manager under My Team Member Profile showed the rows reading straight through the open menu. It looks like a z-index bug, and was r...

Kamo·1w ago
Fixkamo-signer-monorepo

A committed term is worth what it commits to

The card led with the recurring rate whatever the term, so a three-year commitment priced at $100 a month was presented to the customer as $100. It is $3,600, a...

Kamo·1w ago
Fixkamo-internal

Give the Reports tab the console's own layout

It shipped as a bare unpadded Box, so the content sat flush against the container edge while every sibling tab pads its root with p:{xs:2,sm:3}. That was the vi...

Kamo·1w ago
Fixkamo-internal

Stop a message's own controls being cut in half by the window

Reported as the reply arrow and the ⋮ "only half showing" at every view and every zoom level. Geometry, not styling, which is why zooming never helped: the cont...

Kamo·1w ago
FixEmailService

Make a listed message searchable, not merely stored

The index is written from two directions. Opening a message runs the full indexer, which writes the row and then computes its search_vector. Listing a folder wr...

Kamo·1w ago
FixEmailService

Make label: search read the table that records labels

The clause tested si.label_ids, an array column on the search index. Nothing has ever written it — labelling a message inserts into email_metadata.message_label...

Kamo·1w ago
Fixkamo-internal

Name the remaining twelve switches, and guard the trap that unnamed them

MUI 7 drops `inputProps` on Switch — silently, with no warning and no type error, so the aria-label never reaches the DOM. Nearly every switch in this app puts ...

Kamo·1w ago
Fixkamo-internal

A search hit reads the same on your own messages as on everyone else's

The highlight inherited the bubble's text colour and drew itself as a 55% wash, and both of those quietly failed in the same place. The member's own messages ar...

Kamo·1w ago
Fixkamo-signer-monorepo

State the first invoice on an option that has a setup fee

The card already listed the setup fee, but the only figure that summed it with the period price — the total over term — was gated on the commitment running long...

Kamo·1w ago
Fixkamo-internal

Show the one-time setup fee in the option's figures

The card, the live rail and the print preview all led with the option's period total, and the only figure carrying the setup fee — the whole-term contract total...

Kamo·1w ago
Fixkamo-shared-library

The one-time setup fee belongs in the quote's total

A setup fee typed on an option reached exactly one figure — QuoteOptionTotals put it in contractTotal — and applyOptionHeadlineTotals then built the quote's hea...

Kamo·1w ago
Fixkamo-internal

Give the mail columns back their own scrollbars

The offline-banner fix stacked MessageBrowser's root into a flex-col and moved the three mail columns into a row of their own. That row was `flex flex-1 min-w-0...

Kamo·1w ago
Fixkamo-internal

Give the SEND TO AI switch an accessible name

The switch set its aria-label through `inputProps`, which MUI 7 drops on Switch without a warning — so the label never reached the DOM. The words SEND TO AI bes...

Kamo·1w ago
Fixkamo-marketing

The summary line double-counted sections

A section page is itself one of the articles, so "291 articles, 16 areas, 29 sections" invited the reader to add up three numbers that do not add up. One number...

Kamo·1w ago
Fixkamo-internal

Open Send To AI from the report window instead of dispatching

The SEND TO AI switch handed the report over the moment it was filed. It POSTed a bodyless dispatch, which left SecurityService to choose the instruction, the m...

Kamo·1w ago
Fixkamo-shared-library

ReportDefinition never shipped the narrower rights its resolver reads

ReportScopeResolver, its test and this class's own javadoc all name alsoGrantedBy, and ReportSecurityScope has had SELF/TEAM/ORGANIZATION since the framework la...

Kamo·1w ago
Fixkamo-internal

Reach the conversation on screen when it is pages down the list

Switching the navigator to the right tab was only half an answer. The list pages by last activity, 30 rows at a time, and the conversation a member has maximize...

Kamo·1w ago
FixKBService

A list read shipped every article's body, and a category page listed nothing

Two defects on the public reads, both visible on kamocrm.com/help-center. The index served 3.9 MB of HTML. tree-by-parent-slug returns every node with its full...

Kamo·1w ago
Fixkamo-internal

Stop the offline banner standing as a column beside the mail

Same defect the search results bar had, in the same container. MessageBrowser's root was a horizontal flex row whose children are the columns of the mail client...

Kamo·1w ago
Fixkamo-marketing

Keep made-up article paths out of the index

The canonical check already stops a wrong path rendering the article -- it serves the not-found page instead. What it cannot do is change the status code: this ...

Kamo·1w ago
Fixkamo-internal

Send a cleared status label as a removal, not as silence

Emptying a custom label box and saving did nothing. The save built its payload from the labels that had text in them, so a box the org had just cleared was not ...

Kamo·1w ago
FixSecurityService

Accept a blank status label as the removal it is

The PUT is the org's complete set of custom labels, so it has to be able to carry an emptied box. Two things stopped it: an empty list was rejected as a malform...

Kamo·1w ago
Fixkamo-shared-library

Let an org put a custom status label back to blank

A status label had no way to be removed. The settings screen saved through an upsert-only bulk write, so the only thing a request could say was "this status is ...

Kamo·1w ago
Fixkamo-internal

Do not claim nothing matched when a filter hid the matches

The empty-list explanation added with the search results bar keyed off the query alone, so it also fired when the search had matched plenty and the Unread or St...

Kamo·1w ago
FixKBService

Article translation has never worked

deleteByArticleUidAndLocale is a @Modifying query and JPA refuses to run one outside a transaction. Nothing on this path ever opened one, so every locale of eve...

Kamo·1w ago
Fixkamo-internal

Stop mail search opening a strip down the side of the screen

MessageBrowser's root element is a horizontal flex row whose children are the columns of the mail UI. The search results bar was written as a bottom bar -- bord...

Kamo·1w ago
Fixkamo-internal

Follow the maximized chat window's tab in the navigator

Maximizing a chat popup left the conversation navigator on whatever tab it was already showing. `visibleRows` drops every row outside the active bucket, so the ...

Kamo·1w ago
FixKBService

Saving an article blocked on 21 translation calls

@Async was inert. **************** called translateArticle on the same bean, so the call went straight to this and never reached the proxy that makes it asynchr...

Kamo·1w ago
Fixkamo-internal

Stop Send To AI resetting the boxes while they are being typed in

A member filed this against the Send To AI dialog: the description "often resets back to the original description while you are editing it". It reset the instru...

Kamo·1w ago
Fixkamo-internal

A window that raised itself has not been read

The chat unread badge was invisible everywhere — the Chat button, the Interaction Center, the hexhead — and the reason was not the badge. All three read one cou...

Kamo·1w ago
Fixkamo-marketing

Point at the real org, keep the tree in the URL, show related articles

KB_ORG_ID was "1". The help center lives in org 1168485648209608710, so every KB read on this site missed -- /help-center rendered its empty state no matter wha...

Kamo·1w ago
FixMediaService

Announce a message only once it can be read

POST /sessions/{guid}/messages is @Transactional, and the NATS publish of the message has always waited for the commit — with a comment saying exactly why: publ...

Kamo·1w ago
Fixkamo-internal

Add the missing form-fillable route, and stop offering ungranted actions

Two defects behind one report: the PDF editor would not open, and delete was offered to a member who may not delete. **The editor.** DocManager posts to /api/d...

Kamo·1w ago
Fixkamo-internal

Ride down to your own message when you had scrolled up

Sending while scrolled up into the history left the member parked where they were, with their own message appended below the fold. From the seat it looks exactl...

Kamo·1w ago
August 31, 2026
Fixkamo-internal

Offer the billing term up front, and stop hiding it over Enterprise

Two separate ways this page withheld the choice. The org console HAD a three-term control, but it was tucked into the right of the "Choose plan" heading behind...

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