Live Change Log

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

17,865
Total Changes
4,581
Features
4,512
Fixes
32
Projects
Filter by project
All Projects17,865AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService348InitializerService299KBService74KlusterServices539MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,553kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore670Docs226Feature4,581Fix4,512Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
April 17, 2026
Featurekamo-login

Add subtle KamoCRM backlink to auth pages

Adds a small "Powered by KamoCRM" style footer badge to the three user- facing auth surfaces (login, recover, validate). Since kamo-login is the shared white-la...

Kamo·4mo ago
CIkamo-marketing

Trigger fresh run to activate deploy-first workflow

Previous run (3445, commit f93a173) completed on the old workflow before commit 4123431 could cancel-and-requeue it. Pushing an empty commit to exercise the new...

Kamo·4mo ago
CIkamo-marketing

Deploy-first, translate-after, re-deploy-if-changed

Reworks the CI/CD flow so the initial deploy is no longer blocked by translation time. The pipeline now: 1. build_initial — builds and pushes image ta...

Kamo·4mo ago
Featurekamo-marketing

Add /alternatives hub + 9 competitor comparison pages for SEO

Adds a full competitor comparison suite targeting "X alternative" search queries. Each page includes deep narrative (2500+ words), 20-25 row feature matrix, pri...

Kamo·4mo ago
Fixkamo-analytics

*** session check, loading spinner, rebrand analytics to Kamo Analytics

Use redis get instead of exists for more reliable *** validation on logout. Replace "Authenticating..." text with an animated spinner on the OTK auth page. Rena...

Kamo·4mo ago
Featurekamo-analytics

Use CockroachDB geolite tables for IP geo lookup instead of .mmdb file

Replace the bundled MaxMind .mmdb file with a query to the geolite_blocks and geolite_locations tables in CockroachDB, which are maintained and updated weekly b...

Kamo·4mo ago
Fixkamo-analytics

Copy GeoLite2 database to production image for country detection

The /geo/ directory containing GeoLite2-City.mmdb was built during the builder stage but never copied to the runner stage, so all country/region lookups returne...

Kamo·4mo ago
Fixkamo-analytics

Preserve logo aspect ratio in SideNav

Kamo·4mo ago
Fixkamo-analytics

Move CSP to proxy.ts instead of middleware.ts to avoid build conflict

Next.js 16 doesn't allow both middleware.ts and proxy.ts. The Docker build copies proxy.ts as the middleware, so add CSP frame-ancestors header there instead. T...

Kamo·4mo ago
FixKlusterServices

Clean up legacy analytics deployment on each CI run

Delete old analytics deployment, service, and ingressroute that conflict with the kamo-analytics deployment managed by its own CI/CD pipeline.

Kamo·4mo ago
Fixkamo-analytics

Use Next.js middleware for CSP so frame-ancestors works at runtime

The standalone build bakes next.config.ts headers at build time, so ALLOWED_FRAME_URLS was always empty. Move CSP to a Next.js middleware that reads the env var...

Kamo·4mo ago
FixKlusterServices

Strip X-Frame-Options header in iframe-compatible middleware

Set X-Frame-Options to empty string to remove the SAMEORIGIN value that was being inherited, allowing CSP frame-ancestors to control iframe embedding instead.

Kamo·4mo ago
Fixkamo-analytics

Read ALLOWED_FRAME_URLS at runtime so CSP frame-ancestors works in standalone mode

The env var was being read at module scope during build, baking an empty value into the standalone server. Move CSP and all header construction into functions c...

Kamo·4mo ago
FeatureKlusterServices

Add iframe-compatible middleware chain for kamo-analytics

Add security-headers-allow-iframe (no X-Frame-Options) and kamo-middlewares-allow-iframe chain so analytics can be embedded in iframes from internal.kamocrm.com...

Kamo·4mo ago
Featurekamo-analytics

Remove logout, move nav to right, tie session to kamo-internal ***

Remove logout option from UserButton since auth is managed by kamo-internal. Move SideNav from left to right side. Store the *** ID in analytics auth data durin...

Kamo·4mo ago
Featurekamo-analytics

Replace login with OTK auth, force light mode, hide theme toggle

Remove direct login — authentication now handled exclusively via one-time keys from kamo-internal. New /api/auth/otk route validates OTK against shared Redis, s...

Kamo·4mo ago
Featurekamo-internal

Add analytics icon to navtop with OTK-authenticated iframe

Adds a BarChart icon to NavTop gated to Team Members of the top-level org (no parent). Clicking navigates to /analytics which generates an OTK and loads analyti...

kamo·4mo ago
Featurekamo-analytics

Initial Kamo Analytics — forked from analytics with Kamo branding

- Replace analytics logo SVG with Kamo logo (theme.kamocrm.com) - Replace analytics favicons with Kamo favicon - Replace "analytics" heading/nav text with "Kamo...

Kamo·4mo ago
FeatureKlusterServices

Move kamo-analytics to own repo, keep only postgres in KlusterServices

- Remove analytics deployment, service, and nginx-configmap (now owned by kamo-analytics project with its own CI/CD pipeline) - Remove analytics-ingressroute ...

Kamo·4mo ago
OtherSecurityService

Change to configmap to add kamo-analytics

Kamo·4mo ago
FixKlusterServices

Reset document.title in rebrand() when React overwrites it

React re-applies RSC payload after hydration, resetting the title to "analytics". Add a title check inside the MutationObserver callback so it gets corrected ev...

Kamo·4mo ago
FeatureSecurityService

Redact tokens ≥32 chars in changelog sanitization

Any word (run of non-whitespace) that is 32 characters or longer is replaced with **************** before titles and descriptions are sent to the translation se...

Kamo·4mo ago
FixKlusterServices

Use TreeWalker to remove all "analytics" text nodes from rendered DOM

The workspace nav title "analytics" comes from JS bundles loaded after auth, rendered as a text node next to the logo SVG. Uses TreeWalker to find and clear all...

Kamo·4mo ago
FixKlusterServices

Add guarded MutationObserver for client-side rendered logo/text

Login page and dashboard content is rendered by Next.js JS bundles, not in the HTML body, so sub_filter can't reach it. Adds a script with a busy-flag-guarded M...

Kamo·4mo ago
FixKlusterServices

Redirect favicons at nginx level, fix RSC payload escaping

- Serve favicon via nginx 302 redirect instead of trying to rewrite HTML/RSC payload href strings (cleaner, always works) - Fix RSC title replacement with pro...

Kamo·4mo ago
FixKlusterServices

Use pure sub_filter replacements instead of MutationObserver

MutationObserver caused infinite loop (DOM change -> observer fires -> DOM change). Switch to direct nginx sub_filter string replacements targeting both static ...

Kamo·4mo ago
Fixkamo-marketing

Load analytics by default and include www subdomain in allowed domains

- Track all visitors by default since analytics is cookieless/GDPR-friendly - Only disable if user explicitly denies analytics in cookie preferences - Add www.k...

Kamo·4mo ago
FixKlusterServices

Comprehensive analytics rebranding for login page and dashboard

- Replace title dynamically (handles "Login | analytics", "Dashboard | analytics" etc.) - Replace "analytics" h2 text on login page with Kamo logo image - Repla...

Kamo·4mo ago
FixKlusterServices

Use MutationObserver to rebrand analytics client-side rendered UI

analytics is a Next.js app that sets title/logo via JavaScript after initial HTML load. Replaces static sub_filter approach with injected script that uses Mutat...

Kamo·4mo ago
FeatureKlusterServices

Rebrand analytics analytics UI with Kamo logo, title, and favicon

Adds nginx sidecar proxy that injects CSS to replace the analytics logo with KamoCRM logo, changes the page title to "Kamo Analytics", and overrides the favicon...

Kamo·4mo ago
Featurekamo-marketing

Replace Google Analytics with analytics, add event tracking across site

- Remove Google Analytics (gtag.js) from layout - Add analyticsAnalytics component: consent-aware script loading via cookie preferences, data-do-not-track, do...

Kamo·4mo ago
FeatureKlusterServices

Add analytics analytics deployment and analytics.kamocrm.com routing

- New analytics/ directory: PostgreSQL StatefulSet + analytics deployment, services, and secret template - **************** routes analytics.kamocrm.com → analy...

Kamo·4mo ago
Chorekamo-marketing

Update locale translations and hash [skip ci]

Kamo CI·4mo ago
Featurekamo-marketing

Add legal fine print to footer across all locales

Adds protective legal disclaimers to the bottom of every page covering platform liability, AI/eSignature disclaimers, translation authority, terms agreement, an...

Kamo·4mo ago
Otherkamo-marketing

Fix translations — manual overrides + full delta retranslation

Manual overrides for nav/UI terms both engines consistently fail on: - nav.home, nav.company, nav.roadmap, nav.changeLog, nav.legal, nav.login, nav.documentat...

Kamo·4mo ago
Featurekamo-internal

Show TXT domain ownership record in DNS setup UI

- DomainData/DnsStatus: add verificationToken, ownershipVerified, type fields - AliasStatusTable: show TxtOwnershipCard above CNAME table with copy button, in...

kamo·4mo ago
FixTranslateService

Fall through to next provider when translation equals source text

Bergamot was returning the source text unchanged for single-word nav items, acronym phrases (API, CRM), and compound words (Change Log) while reporting success ...

Kamo·4mo ago
FeatureSecurityService

Generate TXT verification token on domain create, check in verify-dns

- createDomain: generate 32-char UUID token and store via setVerificationToken - verifyDns: check _kamo-verify TXT record for kamo-site-verification=<token> - T...

Kamo·4mo ago
Featurekamo-shared-library

Add domain ownership verification via DNS TXT record

- OrgDomain: add verificationToken and ownershipVerified fields - DomainService: add setVerificationToken() and setOwnershipVerified() - DomainDTO: expose verif...

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