Live Change Log

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

17,874
Total Changes
4,587
Features
4,515
Fixes
32
Projects
Filter by project
All Projects17,874AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService351InitializerService299KBService74KlusterServices542MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,556kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore670Docs226Feature4,587Fix4,515Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
August 19, 2026
Chorekamo-marketing

Add an opt-in navigation timing probe behind ?perf=1

Page switches still feel slow on production, and the server has been ruled out from the reporter's own machine: 55-122ms responses, x-nextjs-cache HIT, prefetch...

Kamo·3w ago
Featurekamo-internal

Rebuild the knowledge base as a console

The four knowledge-base screens were the last in the app still wearing the old look, and three of them stated things that were not true. /kb showed "Pinned Art...

kamo·3w ago
FeatureSecurityService

Enforce is_fake, and close the holes that let an unattended signup in

Two halves of one incident. An account registered, verified an address at a disposable provider, took an auto-login session and created five organizations in th...

Kamo·3w ago
FeatureKBService

Serve what the knowledge console reads, and fix what it never could

Four endpoints the rebuilt knowledge base needs, and three facts the API was unable to state. GET /api/kb/pins returned a Page of pin ROWS, and KbArticlePin.ar...

Kamo·3w ago
Fixkamo-capcha

Reject a replayed Capcha payload instead of accepting it forever

`verifySolution` answers "is this a correct solution to a challenge we issued". It says nothing about whether we have already accepted that exact solution, and ...

Kamo·3w ago
FeatureInitializerService

Add users.is_fake, in the only statement order a populated table allows

Mirrors the new `User.isFake` field. Four statements, and the order is the whole migration: YugabyteDB rejects `ADD COLUMN … NOT NULL` on a populated table — re...

Kamo·3w ago
Featurekamo-shared-library

Add is_fake, the flag that makes an account invisible instead of deleted

A synthetic account — a test artifact, a seeded fixture, or a signup judged to be automated — now carries `users.is_fake`, and the platform stops acknowledging ...

Kamo·3w ago
Fixkamo-marketing

Survive a retried image pull, and stop deploying twice per push

The 013faf1 deploy failed on `exceeded its progress deadline` while the rollout itself was fine — the pod came up healthy about 90s in, and prod has been servin...

Kamo·3w ago
Performancekamo-marketing

Stop every page switch waiting on a redirect and a 2s fade-in

The prerendering work in 4fae924 fixed the server and the router, and the site still felt like it took 1-2 seconds to change pages. It was never the network. Tw...

Kamo·3w ago
Performancekamo-marketing

Prerender the routes again and give a navigation something to paint

The locale layout resolved its messages with a bare getMessages(), which reads request headers and so opted the ENTIRE app out of static rendering. With no load...

Kamo·3w ago
FixMediaService

Resolve a public chat's owner without walking a lazy association

getChatSessions runs outside a transaction, so reaching the session owner through the visitor's lazy session proxy worked only for as long as open-in-view stays...

Kamo·3w ago
Fixkamo-internal

Nobody with a login is the anonymous web-chat visitor

A widget ticket names the org's SYSTEM member as its requestor because the visitor has no member record — and that member is the org owner, usually the person a...

kamo·3w ago
FixMediaService

Stop reading the org's system member as the web-chat visitor

Four reported faults, one cause. A widget visitor has no Member, so the org's SYSTEM member — the owner, who works the queue — stands in for them as the ticket'...

Kamo·3w ago
Fixkamo-shared-library

Give the web-chat visitor an identity of their own

A public web-chat visitor has no Member, so the platform stands the org's SYSTEM member in for them: the ticket's requestor, and the author of every message the...

Kamo·3w ago
Fixkamo-marketing

Carry the heading contrast fix to pricing, security, about and offer

Same defect as the home page, same nine remaining spots: section headings opened on `--color-primary`, which measures 2.61:1 against a mid-green background — un...

Kamo·3w ago
Fixkamo-marketing

Raise section-heading contrast off the green end of the ramp

Every section heading's second line ran `--color-primary` -> `--color-primary-light` -> `--color-secondary`, so it STARTED in the brand green. Measured against ...

Kamo·3w ago
Fixkamo-internal

Stop the inbox claiming email is unset while it works it out

Opening /messages showed the "email isn't available / you have no mailbox" panel for a moment on nearly every visit, then replaced it with the member's real inb...

kamo·3w ago
Refactorkamo-internal

Drop the masthead stat rail, move the filter to the bar

The five counted tiles are gone from the header. It now states what the page is and gives the rest of its width to the primary action. They were also the only ...

Kamo·3w ago
Featurekamo-internal

Rebuild /hr/attendance as a payroll console

Eight flat tabs over eight panels that each drew their own heading, table, skeleton, error line and Snackbar — and had drifted. The overhaul is three things at ...

kamo·3w ago
Featurekamo-internal

Rebuild the network page as an operations console

The page was the last screen still wearing the old look — a flat gradient bar, white cards, a centred spinner, alert() for every failure — while the rest of the...

Kamo·3w ago
FeatureSecurityService

Let a member give up their own membership

The network page has offered "Unsubscribe" since it was written. It opened a confirmation dialog and then said the feature would be implemented soon, because th...

Kamo·3w ago
Featurekamo-internal

Rebuild /hr/legal-compliance as the legal registry

The surface was a MUI tab strip over two AG Grids. Packages rendered as seven columns of counts and an actions cell of six unlabelled icon buttons, three of whi...

kamo·3w ago
Featurekamo-marketing

Play the kamo13 reel

Points the hero at the new reel's ladder, MP4 fallback and poster. The source is spec-identical to the one it replaces (H.264 720p24, 66s, ~30 MB), so nothing a...

Kamo·3w ago
FeatureKlusterServices

Swap the hero reel to kamo13

kamo13.mp4 uploaded to MinIO at public/kamo13.mp4 (30 MB, sha256 174aaec6…, verified byte-identical to the local source after transfer — this link has a history...

Kamo·3w ago
Featurekamo-internal

Rebuild /hr/training as a training console

The tab was two AG Grids under a tab bar: accurate and mute. It now opens on the org's whole training obligation and lets an admin act on the gaps. - A masthea...

kamo·3w ago
Fixkamo-internal

Let a note pinned from its sticky reach the launchpad band

The home band fetched the pinned list once on mount, so a note pinned from its floating sticky afterwards was in no list it held. Closing the sticky then left t...

kamo·3w ago
Fixkamo-marketing

Move the grid out of styled-jsx; drop two dead components

Finishes the styled-jsx sweep started on the preview banner. No `<style jsx>` block remains anywhere in the app. SITEMAP — the grid was an inline `display:grid...

Kamo·3w ago
Chorekamo-internal

Rebuild to pick up the Start Group Chat/Meeting labels

The image bakes messages/ from kamo-translation-dictionary at build time, so the dictionary push alone left the deployed bundle on the old copy.

kamo·3w ago
Fixkamo-marketing

Stop the banner flashing unstyled, make whole feature cards clickable

PREVIEW BANNER — its CSS lived in a `<style jsx>` block inside the component. In the App Router styled-jsx does not server-render CSS for client components, so ...

Kamo·3w ago
Stylekamo-marketing

Centre the reel in its column instead of pushing it to the edge

Two earlier passes had the stage reaching for the page edge — first overhanging the viewport by 1.5–5rem, then sitting flush against it. Overhanging cropped a p...

Kamo·3w ago
Featurekamo-marketing

Wire the offer banner, fix dead Learn more links and the hexagon field

Five fixes, all of them things that looked present but did nothing. OFFER BANNER — HeroOfferBanner was dead code; nothing imported it. Restored, but driven by ...

Kamo·3w ago
Featurekamo-login

Rebuild the welcome panel around a live status rail

The left column was a generic headline, a security platitude and a pile of ambient decoration (dot grid, floating orbs, a pulsing dash). Replace it with one sha...

Kamo·3w ago
Featurekamo-marketing

Rebuild the hero as an editorial split with the reel as an aperture

The reel was a centred rounded rectangle with a drop shadow — an object placed on the design rather than part of it — and it was the ONLY thing in the hero: ff0...

Kamo·3w ago
FixKlusterServices

Pin and verify the kubectl download instead of falling back to a broken wget

The deploy died at "Install kubectl". Three separate faults lined up: 1. curl aborted mid-stream with (56) "decryption failed or bad record mac" — the corru...

Kamo·3w ago
DocsKlusterServices

Correct the README to the routes that actually shipped

The WebRTC endpoint moved from /webrtc/<ch>/whep to /live/<ch>/whep when channels were renamed live/<ch> to drop StripPrefix, and the README still described the...

Kamo·3w ago
FixKlusterServices

Name channels live/<name>, use Recreate, feed the loop a uniform GOP

Three defects found by exercising the deployed service. 1. The /live/ route 404'd through Traefik. MediaMTX answers the first HLS request with a 302 to `?co...

Kamo·3w ago
FixSecurityService

Make the verification sweep's DNS upgrade reachable

DomainVerificationWatcher gated on **************** but **************** only ever answers ok/pending/error/na — it has never returned "verified". allVerified w...

Kamo·3w ago
FixKlusterServices

Move the encode job's decision logic out of the mc container

The plan stage died on `sed: command not found`. The minio/mc image is minimal to the point of having no sed, awk, grep, wget or curl — it can move objects and ...

Kamo·3w ago
FixKlusterServices

Upload segments with an explicit glob, not --recursive

mc cp --recursive takes a directory; the segments were being passed as a glob, which is the wrong shape for that flag. Segments and the playlist beside them nee...

Kamo·3w ago
Featurekamo-marketing

Play the reel as an adaptive HLS ladder instead of a 31.8 MB MP4

The hero pointed a bare <video src> at a single 3.9 Mbps 720p24 MP4, so a phone on a weak connection downloaded exactly the same stream as a desktop on fibre, a...

Kamo·3w ago
FeatureKlusterServices

Deploy a streaming server and an ABR ladder for the hero reel

MediaMTX serves live channels over HLS, WebRTC, RTSP and RTMP, and loops the marketing reel as an always-available channel via alwaysAvailableFile — no ffmpeg s...

Kamo·3w ago
FixSecurityService

Restore media as a required DNS alias so its card can verify

media.<domain> backs MediaService realtime websockets and is live in Traefik, auto-cert and the /setup/dns studio catalog, but it was dropped from KnownAliases ...

Kamo·3w ago
Fixkamo-register

Hold the token's int64 ids as digits, not as numbers

KToken could not verify a real token. The four ids it carries are int64s, and the Java signer (kamo-shared-library KToken#canonicalForMac) appends each as a raw...

Kamo·3w ago
Fixkamo-login

Hold the token's int64 ids as digits, not as numbers

KToken could not verify a real token. The four ids it carries are int64s, and the Java signer (kamo-shared-library KToken#canonicalForMac) appends each as a raw...

Kamo·3w ago
Fixkamo-internal

Hold the token's int64 ids as digits, not as numbers

KToken could not verify a real token. The four ids it carries are int64s, and the Java signer (kamo-shared-library KToken#canonicalForMac) appends each as a raw...

kamo·3w ago
Fixkamo-internal

Market filters were comparing a UUID against a number

Both market filters were dead, in different ways, and neither said so. Leads: a market tab matches a lead either by marketId or by the market's vendor products...

kamo·3w ago
FixKlusterServices

Preserve the client IP so the KAMOTEAM export ACL matches

Mounts failed with 'access denied by server'. A packet capture inside the guest showed the connection arriving from 10.42.0.151 — a pod-network address — not th...

Kamo·3w ago
ChoreDaemonService

Rebuild against the shared-library lead id fix

This service creates leads through LeadService, so it hit the same failure as /leads/new: on a mortgage market Hibernate 6.2 emitted "insert into leads (...) re...

Kamo·3w ago
ChoreMediaService

Rebuild against the shared-library lead id fix

This service creates leads through LeadService, so it hit the same failure as /leads/new: on a mortgage market Hibernate 6.2 emitted "insert into leads (...) re...

Kamo·3w ago
FixSecurityService

Stop reporting a missing column as a missing table

Four controllers each rewrote ANY message containing "does not exist" into "Database table X does not exist. Please run KamoInitializerApp to create the schema....

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