Live Change Log

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

17,845
Total Changes
4,566
Features
4,508
Fixes
32
Projects
Filter by project
All Projects17,845AIService110APIService138BillingService132ConversionService85DaemonService107DocsService189ESigService78EmailService347InitializerService299KBService73KlusterServices539MCPGatewayService43MediaService459RAGService61SecurityService1,515TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,546kamo-login318kamo-marketing580kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,319kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore669Docs226Feature4,566Fix4,508Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
September 11, 2026
Fixkamo-marketing

Order sitemap <url> children as the schema does, and give each chunk one address

The sitemap XSD is a sequence: loc, lastmod, changefreq, priority, then extension elements. The hreflang links were written straight after <loc>, which Google t...

KamoΒ·2h ago
Fixkamo-shared-library

Count the files a document keeps only as old versions

A category that keeps versions holds every earlier file of a document in img_versions, each on its own content-addressed file. The storage meter, the quota and ...

KamoΒ·10h ago
FixDocsService

Sharing a document works again, as someone who can read it

The share dialog sends a document id as a string β€” an img id is an int64 past 2^53, which a JSON number would round β€” and createShare cast it to Number. Every s...

KamoΒ·12h ago
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Β·14h 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Β·15h 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Β·15h 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Β·16h ago
September 10, 2026
Fixkamo-marketing

Drop the remaining third-party plan and cost wording

- zoho-mail, ecwid: the FAQ answering which of the vendor's plans, free or paid, the integration needs is removed. Both items take i18nKey "<slug>-r2" so no...

KamoΒ·20h ago
FixSecurityService

Quote and borrower-portal links only name a live domain

QuoteEmailClient settled for any active domain, verified or not, so an org still setting up its white-label domain had quote links mailed to sign.<that domain>....

KamoΒ·20h ago
FixMediaService

Chat and bug emails link to the console the recipient can reach

ChatEmailNoticeService named the recipient org's first domain whatever its state. The reported case: Exec2Exec letters to makeitpopsigns.com, sent before its DN...

KamoΒ·20h ago
FixEmailService

Template logos come from a live theme host

resolveLogoUrls built the logo URL from the org's first domain whatever its state, so an org still setting up its domain got a logo URL that could not be fetche...

KamoΒ·20h ago
FixESigService

Signing and document-manager links only name a live domain

**************** settled for any active root domain, so an org still setting up its domain had signing links mailed to sign.<that domain>, which answered nothin...

KamoΒ·20h ago
FixDocsService

Legal, training and careers emails link only to live hosts

- Legal: the org's console (OrgLinkHosts.internalOrigin) and the member page's Legal & Compliance tab. It linked the bare apex, which serves the marketing s...

KamoΒ·20h ago
FixDaemonService

Link the steward to the console the org can reach

StewardRecipientResolver built the steward link from the org's first domain row whatever its state, so an org still setting up its white-label domain was mailed...

KamoΒ·20h ago
Fixkamo-shared-library

An organization's own domain is named in a link only once it is live

OrgLinkHosts is the one rule for the host a link to an organization may name: its own root domain once it is active, ownership-verified and SSL-confirmed ******...

KamoΒ·20h ago
FixSecurityService

An organization's .svg names show its own art, not the platform's

A new organization's folder is seeded from the base theme, so it starts out with KamoCRM's art under img/logo-full.svg and favicon/favicon.svg. An organization ...

KamoΒ·20h ago
Fixkamo-meet

A tenant on the shared meet host is painted and configured as itself

On meet.kamocrm.com the hostname is the platform's for every organization that has no domain of its own, and nothing on the page ever told the sidecar which org...

KamoΒ·20h ago
Fixkamo-marketing

Quote only our own price, never another company's

The comparison pages set each competitor's list prices, add-on prices, "a typical team pays" estimates, TCO and implementation figures, and "N% cheaper" verdict...

KamoΒ·20h ago
FixKlusterServices

Strip identity headers on myloan.*/api/ before the portal BFF relays them

KamoMLOS's BFF routes under /api/ (the /api/proxy/* passthrough, /api/session/extend, /api/chat/routing, /api/chat/subject-state) copy every client header excep...

KamoΒ·20h ago
FixBillingService

Rerun a webhook event whose first attempt died, and refuse one the SDK cannot read

A losing claim on an unprocessed row always answered 500, so an event whose first attempt failed (a unique-constraint race inside the invoice.created/finalized/...

KamoΒ·20h ago
FixBillingService

Only a failed charge starts dunning, and Stripe must agree before dunning acts

invoice.finalized carries status=open with an amount due for every auto-charged invoice before the charge is attempted, and the invoice handler started the deli...

KamoΒ·20h ago
FixAPIService

Never forward client-supplied identity headers upstream

forward(), forwardWebhook() and forwardCallback() copied every inbound header except Host (and, for the sessionless two, the credential headers) onto the upstre...

KamoΒ·20h ago
FixKlusterServices

Delete identity headers at the edge before header-trusting backends

Add a strip-identity-headers Middleware. A customRequestHeaders value of "" deletes the header, so X-Org-Id, X-Member-Id, X-User-Id, X-God-Mode-Active, X-Member...

KamoΒ·21h ago
Fixkamo-meet

The tab title reads the organization's own folder too

title.html is SSI-included into the room page and most of static/ (both close pages, 404, oauth, offline, dialInInfo, prejoin, whiteboard). Its script still der...

KamoΒ·21h ago
Fixkamo-meet

Paint a tenant's lobby from its alias folder, with the logo it uploaded

On meet.makeitpopsigns.com every logo, background, stylesheet and favicon 404'd. The sidecar resolved the host's organization for its meet settings but never as...

KamoΒ·21h 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Β·21h ago
Fixkamo-marketing

Draw the search icon down from the full-size mark instead of doubling the small one

The 192px icon Google lists was the 96px export with every pixel doubled. It is now downscaled from the 820px master, so its edges are drawn rather than stepped...

KamoΒ·21h ago
Fixkamo-marketing

Give Google a canonical it can read, and stop redirects outvoting it

Search Console began excluding pages as "Duplicate without user-selected canonical", "Duplicate, Google chose different canonical than user" and "Alternate page...

KamoΒ·22h ago
Fixkamo-marketing

Publish prices search engines accept, and the ones the page actually shows

Search Console's product snippet report flagged "Invalid price format" on both `price` and `priceSpecification.price`. The cause was Enterprise going out as "pr...

KamoΒ·22h 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Β·1d ago
FixMediaService

A customer's message reaches the desk, not only the thread

An executive wrote into their Exec2Exec chat and nobody at KamoCRM heard. announce() told the session's own members, and an operator is only a member of a conve...

KamoΒ·1d ago
FixMediaService

An announce that throws must not roll back the buy-in

`announceToConversation` runs INSIDE the transaction that seats the host and charges them β€” unlike `announceTable`, which the controller calls after the fact. T...

KamoΒ·1d 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Β·1d 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Β·1d ago
FixMediaService

Colleagues in the invite list, and an invitation from a chat that arrives

Two reported defects, both in who a table can reach. **The invite dialog offered accounts.** `invitableFor` read `members.findByOrganizationId`, and an organiz...

KamoΒ·1d ago
September 9, 2026
Fixkamo-signer-monorepo

Publish the packages from CI, with a token that can actually publish

The secret exists now β€” a Forgejo token scoped to `write:package`, added to this repository β€” so `publish_packages` does the publishing instead of a person doin...

KamoΒ·1d ago
FixESigService

The certificate must not claim a disclosure nobody was shown

Verified against a real completed envelope on the cluster, and the closing paragraph read "Each signer was shown, and accepted, the consumer disclosure required...

KamoΒ·1d ago
FixESigService

Stop asserting an eIDAS assurance tier this product does not implement

`buildSession` reported `stepUpRequired ? "AES" : "SES"`, so requiring a one-time passcode made every signing session assert an ADVANCED electronic signature β€” ...

KamoΒ·1d ago
Fixkamo-signer-monorepo

Publish the packages from a job of their own, and never nest a second pdf.js

The publish steps sat inside `build`, so run 12014 failed and took the image with it β€” and `pnpm install --frozen-lockfile` was clean locally, which is the tell...

KamoΒ·1d 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Β·1d ago
FixDocsService

A rename answered with no Url skips Docs's rename callback

Docs shares one client-side callback between RenameFile and Save As, and **************** skips its whole body β€” the File_Rename event the embedding page listen...

KamoΒ·1d ago
FixDocsService

Losing the race to store identical content is not a failed save

The look-up before the ImgDat insert is not a lock, and kamowsdocs runs two replicas behind one gateway β€” two documents whose bytes are identical (two members c...

KamoΒ·1d ago
FixESigService

Every e-signature email was a silent 403, and a Signature Date field

**No e-sign email had been leaving the cluster.** EmailService gates /api/email/templates/send on the cluster-wide internal-auth secret (mlos-internal-auth -> I...

KamoΒ·1d ago
FixDocsService

A Save As that changes format is not the source document's type

uploadDocument refuses an upload whose claimed MIME type disagrees with what it detects from the bytes, and saveAsNewDocument claimed the type of the row it was...

KamoΒ·1d ago
FixDocsService

A Docs save could not store bytes the platform already held

Saving a document twice, and renaming one, both ended in "Document cannot be saved, please check your permissions" β€” and after five retries Docs gave up and dis...

KamoΒ·1d ago
Fixkamo-marketing

The offer countdown could not hydrate, so React threw the banner away on every load

The homepage has been throwing React #418 β€” "the server rendered text didn't match the client" β€” on every load, in production as well as locally. The mismatch i...

KamoΒ·2d ago
FixSecurityService

An org without the app must not accrue achievements either

The award gate asked for VIEW_ACHIEVEMENTS and stopped there. Rights are not entitlement-filtered, so that right stays granted β€” and keeps answering true β€” in a...

KamoΒ·2d 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Β·2d 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Β·2d ago
FixSecurityService

Refuse to award a member whose security type excludes it

AchievementController checks VIEW_ACHIEVEMENTS on all four of its endpoints, and that read like the rule being enforced. It was not: it is the rule enforced on ...

KamoΒ·2d 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