Live Change Log

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

17,896
Total Changes
4,600
Features
4,522
Fixes
32
Projects
Filter by project
All Projects17,896AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService364InitializerService299KBService74KlusterServices542MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,565kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore670Docs226Feature4,600Fix4,522Other6,781Performance136Refactor274Revert23Style48Test69Upgrade1
August 20, 2026
FeatureInitializerService

Retire ****************

Tracking codes are shared as ?discount=<uuid> now. The old <memberId>.<n> token published a real member id in every shared link and made the space walkable — on...

Kamo·3w ago
Performancekamo-marketing

The reel was never using hls.js, and phones paid for it

Chasing "make fewer HTTP requests" found two real things, and the second is much larger than the audit that led to it. THE HLS BRANCH NOBODY WAS TAKING. HeroSt...

Kamo·3w ago
CIkamo-marketing

Retry npm ci through the runner's transfer corruption

The build failed on: npm error code ERR_SSL_CIPHER_OPERATION_FAILED ossl_gcm_stream_update:cipher operation failed That is a GCM authentication-tag mi...

Kamo·3w ago
Fixkamo-marketing

Clear every console error and DevTools issue

Diagnosed with Chrome over the debugging protocol rather than by reasoning, collecting exactly what Lighthouse's errors-in-console and inspector-issues audits c...

Kamo·3w ago
Featurekamo-marketing

Serve a real per-request CSP nonce with strict-dynamic

Clears both remaining High findings on script-src: the 'unsafe-inline' one and "host allowlists can frequently be bypassed". Only a nonce with 'strict-dynamic'...

Kamo·3w ago
Featurekamo-marketing

Enforce Trusted Types, path-scope the script allowlist

Clears the "No Content-Security-Policy header with Trusted Types directive found" finding by moving require-trusted-types-for into the enforced policy. This is...

Kamo·3w ago
Fixkamo-marketing

Clean the console, and restore the static rendering I broke

Three things from the console, one of them much bigger than the other two. THE BIG ONE. Chasing the "Fetch failed loading" lines led to the prefetch payload, a...

Kamo·3w ago
Fixkamo-marketing

The Trusted Types policy was being injected by next/script

The report-only console showed two violations, and one of them was the policy component's own doing: This document requires 'TrustedScript' assignment. Thi...

Kamo·3w ago
Featurekamo-internal

Show when a visitor's credit moved to another link

The timeline gains ATTRIBUTION_MOVED, in the warn tone — not a conversion and not a failure, but the moment this visitor stopped being this member's to earn fro...

kamo·3w ago
FeatureMediaService

Move credit on a newer link, and record the moment it moves

The ingest worker now calls reattributeWhileAnonymous after the traffic bumps. The repository method carries the entire rule, so there is nothing to check here ...

Kamo·3w ago
Featurekamo-shared-library

Credit the newest link until an account exists, then freeze it

Attribution was frozen at first touch, which gets the common case wrong: someone who follows member A's link in March and member B's in June, and only then sign...

Kamo·3w ago
Featurekamo-internal

Move Windows Desktop and Master Machine into Platform Admins

Both are Guacamole targets that share one credential between everybody, which makes them operator tooling rather than a member's own workspace. They were top-ba...

kamo·3w ago
Featurekamo-marketing

CSP and COOP enforced; Trusted Types report-only

Re-lands the security headers after I took the site down with them, minus the one directive that did it, plus a build guard so it cannot happen again. WHAT BRO...

Kamo·3w ago
Otherkamo-marketing

Revert "feat(security): enforce a CSP, COOP and Trusted Types"

This reverts commit ****************

Kamo·3w ago
Featurekamo-marketing

Enforce a CSP, COOP and Trusted Types

Adds the three headers the Trust and Safety audit asked for, plus Referrer-Policy and Permissions-Policy. Every origin in the policy was taken from what the sit...

Kamo·3w ago
FixKlusterServices

Stop the edge rate limit from 429ing every cold KamoDesktop load

Opening an assigned Linux instance always landed on Guacamole's generic "An error has occurred and this action cannot be completed" modal, and always worked aft...

Kamo·3w ago
Fixkamo-internal

A popup with nowhere to dock now overlaps instead of not opening

A tool window — the email composer, a support conversation, a chat, the softphone — would sometimes simply not appear, and be fine after a reload. Three silent ...

kamo·3w ago
Performancekamo-marketing

Stop re-measuring the document on every scroll frame

Two scroll listeners on the homepage read `scrollHeight` per event. That is a layout query, and this page is the worst place to make one repeatedly: its section...

Kamo·3w ago
Fixkamo-internal

Say which link the strip is offering

"Your tracking link" showed exactly one link while a member can hold any number of them, so the strip silently rendered whichever code the sort put first and ga...

kamo·3w ago
Performancekamo-marketing

Drop backdrop-filter on phones

The homepage renders 94 elements carrying `backdrop-filter: blur(20px)`. Every one is a separate compositing layer that has to read back everything painted behi...

Kamo·3w ago
Performancekamo-marketing

Take the footer and the scroll chrome off the client

Three changes, all removing work from the window where the page is being judged. `(pages)/layout.tsx` carried `"use client"` and never needed it — no state, no...

Kamo·3w ago
Performancekamo-marketing

Stop three resources from outranking the LCP element

The LCP breakdown is where the remaining time is, and its two loading subparts — 270 ms of resource load delay, 500 ms of load duration — are a priority problem...

Kamo·3w ago
Fixkamo-marketing

A fixed-position banner cannot use a scroll-driven reveal

Fallout from the framer sweep, caught before it could matter. The rewrite maps entrance animations onto `.reveal`, which is driven by `animation-timeline: view(...

Kamo·3w ago
Performancekamo-marketing

Remove gsap, the second animation runtime on the homepage

Framer was the chunk Lighthouse named. GSAP is the one it did not, because it arrives late enough to fall outside "unused JavaScript" — but it is 69 KB in its o...

Kamo·3w ago
Fixkamo-marketing

The platform runs YugabyteDB, not CockroachDB

Unrelated to the performance work — found while reading the homepage's inline payload, where the string turned up in the FAQ answers. CockroachDB was retired f...

Kamo·3w ago
Performancekamo-marketing

Remove framer-motion from the site

"Reduce unused JavaScript" has named the same 35.4 KB chunk in every report, and it is Framer Motion. It is not an eager script on the homepage, which is why it...

Kamo·3w ago
Performancekamo-marketing

Resolve the org's icons on the server and preconnect the origin

Lighthouse named theme.kamocrm.com as an unconnected origin worth 300 ms while also reporting no origins preconnected, and last round I read that as a stale com...

Kamo·3w ago
Fixkamo-marketing

Make the server actually able to read the theme path

Completes the change 48493ae shipped half of. That commit swept four in-flight files — layout.tsx, DynamicMetaLoader, TouchOptimized and ThemedBackground — into...

Kamo·3w ago
Otherkamo-internal

Finish the details the first pass left rough

Nine small corrections, each with a visible symptom. The drawer opened on ~0.4s of blank panel: `loading` started false, so the first committed render fell thr...

kamo·3w ago
Fixkamo-marketing

Stop gating the referral beacon, and report the visit properly

Two corrections to what shipped, both restoring the behaviour this feature was asked for. The beacon was gating itself on the analytics consent record. That re...

Kamo·3w ago
ChoreMediaService

Follow the renamed tracking repository queries

findVisitorsForCode and findTimelineForVisitor replace the derived finders, which now carry an id tiebreaker and NULLS LAST; the conversion consumer moves to th...

Kamo·3w ago
Fixkamo-shared-library

Make the two paged tracking reads deterministic

Both paged queries ordered on a column that ties, with no tiebreaker, so the database was free to return tied rows in a different order per page fetch — which s...

Kamo·3w ago
Performancekamo-marketing

Stop three route bundles being prefetched onto the homepage

Lighthouse's 103 KiB of "unused JavaScript" named four chunks, two of them essentially 100% unused. None of them appear in the homepage's HTML — they are other ...

Kamo·3w ago
Performancekamo-marketing

Name the backdrop widths, and read the theme config on the server

Two findings, both of which were doing something other than what the code said. THE BACKDROP WAS FETCHING THE 1920 CANDIDATE. 149 KB, for a decorative picture ...

Kamo·3w ago
Featurekamo-internal

Build out Tracking Codes in place of the referral placeholder

/marketing/discounts was a ComingSoon stub; it is now /marketing/tracking, a working workspace, with the old path kept as a client redirect so existing bookmark...

kamo·3w ago
Featurekamo-register

Carry the marketing referral into the signup

The marketing site tags a referred visitor with kmrt_vid and kmrt_src on the shared apex, so register.<apex> can read them; handleFinish sends both in the reque...

Kamo·3w ago
Featurekamo-marketing

Honour a partner link and report what it brought

A visitor who follows https://www.<apex>?mrt=<code> gets two first-party cookies from the edge middleware — an opaque GUID that lasts two years and the code its...

Kamo·3w ago
FeatureSecurityService

Publish signup and org-created for tracked visitors

The register site now forwards the marketing visitor GUID and tracking code in the request body — not a header, because the proxy strips Cookie and the ingress ...

Kamo·3w ago
FeatureBillingService

Publish the paid conversion for tracked organizations

Both paths that stamp BillingSourceType.PAID now publish marketing.visitor.paid, because hooking only one silently misses half the traffic — AccountSubscription...

Kamo·3w ago
FeatureAPIService

Forward the tracking beacon to MediaService

Clones forwardPublicWebinar rather than the generic forward(): that method prints every URI, header map and body length to stdout with no level, and a visitor b...

Kamo·3w ago
FeatureMediaService

Serve the tracking-codes tab and ingest the visitor beacon

MediaService already backs the other marketing tabs, so it takes both halves of tracking codes: the authenticated CRUD and stats surface at /api/media/marketing...

Kamo·3w ago
Featurekamo-shared-library

Model tracking codes, their visitors and the visits they bring

A member mints a code, shares **************** and the six totals on the Tracking Codes tab answer what that link actually did: unique visitors, visits, page re...

Kamo·3w ago
FeatureKlusterServices

Provision MARKETING_EVENTS for visitor conversion signals

Marketing tracking codes credit a partner for the signups, organizations and paid accounts their link produced, and those three moments happen in services that ...

Kamo·3w ago
Performancekamo-marketing

Compress the images harder, hold the cards still, drop duplicate requests

Images. Every quality setting on the page goes down a step, and the allow-list in next.config.ts goes to [30, 50] so nothing can quietly ask for more: hero...

Kamo·3w ago
August 19, 2026
Performancekamo-marketing

Split the hero, and take the last two libraries off the page

Step C. Neither GSAP nor Framer Motion is on the homepage any more, and the `home` message namespace is no longer sent to the browser at all. JS 24...

Kamo·3w ago
Performancekamo-marketing

Seven sections stop hydrating

Step B. TrustBar, WhatReplacesWhat, HowItWorks, UseCases, Features, CTAStrip and Pricing are server components now. They render to HTML and ship no JavaScript. ...

Kamo·3w ago
Performancekamo-marketing

Take the animation runtime off the homepage entirely

Step A of the hydration work. Framer Motion is gone from the homepage's eager bundle: 798,723 -> 687,593 bytes raw, 245,367 -> 209,422 gzip. That is 35,945 fewe...

Kamo·3w ago
FixKlusterServices

Make the HLS playlists immutable, and say what that costs

The playlists were the last entry in Lighthouse's cache-lifetime audit — 300s originally, then an hour, still reported. Everything else in the ladder was alread...

Kamo·3w ago
Performancekamo-marketing

Stop rendering eight off-screen sections before the hero can paint

LCP was 4.4 s, and its breakdown said where: 120 ms to first byte, 290 ms of load delay, 390 ms actually downloading the image — and then 1,810 ms of "element r...

Kamo·3w ago
Performancekamo-marketing

Undo the two changes that cost 380ms of blocking time, and quiet the phone

The last two rounds took the score from 87 to 67. Total Blocking Time went from 80 ms to 460 ms and LCP from 3.9 s to 4.4 s. Two of my own changes did that, and...

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