KamoCRM

Live Change Log

Every feature, fix and improvement, posted as it ships. Nothing is held back for a launch.

17,393
Total Changes
5,908
Features
5,260
Fixes
30
Projects
Filter by project
All Projects17,393AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,829TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,327kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,637kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,908Fix5,260Other993Performance165Refactor278Revert23Style42Test159Upgrade1
August 19, 2026
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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo ago
FeatureKlusterServices

Workstation-side mount script for the KAMOTEAM share

NFSv4 over the NodePort, mounted soft with a systemd automount so an unreachable cluster returns an error instead of hanging every process that touches the fold...

Kamo·2mo ago
Featurekamo-marketing

Polish video hero unit with modern animations and optimizations

- Add poster image for instant visual feedback during video load - Implement loading skeleton with pulsing animation - Start video muted (browser autoplay polic...

Kamo·2mo ago
FeatureKlusterServices

KAMOTEAM shared folder on every desktop

desktop-1 hosts /srv/kamoteam and exports it over NFSv4; every VM user gets ~/Desktop/KAMOTEAM as a symlink (via /etc/skel for new accounts and the agent for ex...

Kamo·2mo ago
August 17, 2026
Featurekamo-marketing

Replace hero text unit with autoplay promo video

Swap the homepage hero copy, CTAs, and stats for a looping muted video while keeping the rotating background treatment.

Kamo·2mo ago
August 16, 2026
FeatureKlusterServices

Alert on OOMKills, and on the occupancy that precedes them

Nothing was watching memory. MediaService was OOMKilled every few hours for most of a day and EmailService six times, and the way anyone found out was a chat wi...

Kamo·2mo ago
August 15, 2026
FeatureKlusterServices

Block outbound SSH except sage, resolve k1m1/k3m1, bundle the agent dir

Outbound tcp/22 is rejected for every uid except root and sage, keyed on socket owner so future accounts are covered without re-running anything. Reapplied at b...

Kamo·2mo ago
FeatureKlusterServices

Standard toolchain, taskbar pins and passwordless installs for all users

Adds krita and maven **************** were already present), pins Chrome, VS Code, Kate, Spectacle and Krita to the taskbar for every user, and lets dev users i...

Kamo·2mo ago
Featurekamo-internal

Gate the Linux desktop icon on a provision, not on god

The icon now appears exactly when the connection behind it will work — the SSO endpoint enforces the same rule, so the two cannot disagree. Windows and Master s...

kamo·2mo ago
Featurekamo-internal

Dev Machine dialog on the administrator card

Keeps three states apart that one toggle would collapse: never provisioned (needs a password), provisioned but locked (needs only the switch), and failed (needs...

kamo·2mo ago
Featurekamo-internal

Client module and proxy routes

*** is forwarded explicitly — buildForwardHeaders sets X-OTK but not the session token, and the dev-machine endpoints resolve the caller from it. The action seg...

kamo·2mo ago
FeatureSecurityService

Per-member SSO credentials and a preflight that explains failures

Linux is gated on an enabled provision rather than god, and served with the member's own credentials. The connection is omitted from the token entirely when the...

Kamo·2mo ago
FeatureSecurityService

Dev machine service and controllers

Username derives from the member ACCOUNT email, not the TeamMember work email — a work address can sit on another domain and would silently produce a different ...

Kamo·2mo ago
FeatureSecurityService

HTTP client for the dev machine provisioning agent

health() swallows transport failures and answers false so the SSO preflight can return an actionable 503 rather than a 500.

Kamo·2mo ago
FeatureSecurityService

AES-GCM secret codec and POSIX username derivation

Codec is deliberately reversible — RDP auto-login needs a real password — and uses GCM so a tampered or wrong-key row fails loudly rather than decrypting to noi...

Kamo·2mo ago
Featurekamo-shared-library

Dev_machine_accounts entity, status enum and repository

status and enabled are deliberately separate: a provisioned-but-disabled account keeps its home directory, so re-enabling restores access rather than rebuilding...

Kamo·2mo ago
FeatureKlusterServices

Agent secrets in CI, guacamole liveness, availability alerts

Alert expressions verified against the live Prometheus. Uses kube-state-metrics rather than kubevirt_* — the KubeVirt metrics endpoint is not scraped here, so r...

Kamo·2mo ago
FeatureKlusterServices

Idempotent agent installer, shared by cloud-init and live installs

Staged under /opt/kamo-desktop-agent so install-agent.sh has a distinct source and destination. Covers netplan-by-driver, cloud-init network disable, xrdp sessi...

Kamo·2mo ago
FeatureKlusterServices

Add the provisioning agent and its unit tests

Python 3 stdlib only. Every mutation runs subprocess with an argv list, never a shell string; passwords go to chpasswd on stdin so they stay out of /proc.

Kamo·2mo ago
FeatureSecurityService

Send int64 ids to the browser as strings, without touching sessions

CockroachDB unique_rowid() ids are 19 digits, past Number.MAX_SAFE_INTEGER, so an id sent as a JSON number arrives in the browser with its low digits rounded aw...

Kamo·2mo ago
Featurekamo-login

Replace the stock alert with an animated status plate

The inline sign-in messages ("Login successful! Redirecting...", "Invalid username and/or password.") used MUI's default Alert, whose pastel fill plus matching ...

Kamo·2mo ago
Featurekamo-marketing

Add the 25-year anniversary seal

Two placements, both chosen for where the claim is already being made: Footer — 60px, beside "© 2001–<year> ... established 2025". Site-wide, ...

Kamo·2mo ago
Featurekamo-marketing

Show the 2001 copyright range and the incorporation year

Renders "© 2001–<year> KamoCRM. KamoCRM Inc. established 2025. All rights reserved." The range start is hard-coded next to the dynamic end year rather than livi...

Kamo·2mo ago
Featurekamo-marketing

Add the meeting and payroll integrations

Zoom and Microsoft Teams for meetings, and the ten payroll vendors — ADP Workforce Now, BambooHR, Dayforce, Gusto, Paychex Flex, Paycor, Paylocity, Rippling, UK...

Kamo·2mo ago
Featurekamo-marketing

Count apps and integrations separately with real numbers

"Apps & Integrations" was one tile reading 31+. It is now two, each with a figure that can be re-derived rather than estimated: Apps 64 — Forgejo pro...

Kamo·2mo ago
Featurekamolos

Enable ProxyHmacFilter — step 2, X-Org-Id is now a proven header

los.proxy-hmac.enabled has been falling through to its false default since this service deployed, so ProxyHmacFilter existed and never ran. X-Org-Id — the heade...

Kamo·2mo ago
Featurekamo-internal

Sign the proxy identity headers — step 1 of enabling ProxyHmacFilter

KamoLOS trusts X-Org-Id and X-Member-Id from this proxy. ProxyHmacFilter exists to prove those headers really came from here, but it is disabled in production: ...

kamo·2mo ago
FeatureSecurityService

Resolve the KamoMeet logo overlay into config.json

KamoMeet is a Meet fork with no access to OrgContext, so it learns org branding from the theme config.json this service bakes. The org stores an overlay TOKEN; ...

Kamo·2mo ago
FeatureInitializerService

Add the kamomeet_logo_overlay column

Third overlay surface: the KamoMeet pre-meeting screen. Same shape as the other two — nullable, no backfill, no DEFAULT. The drift guard needed only its field ...

Kamo·2mo ago
Featurekamo-shared-library

Carry the KamoMeet logo overlay on Organization

Third and last overlay surface, same vocabulary as its two siblings, plus its branch in the generic patch path. This one is different in where it ends up. The ...

Kamo·2mo ago
Featurekamo-internal

A logo overlay for the KamoMeets pre-meeting screen

Third and last surface, offered next to the other two — same thirteen options, its own setting, default No Overlay. Hidden unless the org can actually reach th...

kamo·2mo ago
FeatureInitializerService

Purge the reports and dashboard rows, and stop seeding VIEW_DASHBOARD

VIEW_DASHBOARD (0), VIEW_REPORTS (1) and EXPORT_REPORTS (2) were deleted from RoleRightType today, along with the two pages they named. This removes what they l...

Kamo·2mo ago
Featurekamo-shared-library

Delete VIEW_DASHBOARD, VIEW_REPORTS and EXPORT_REPORTS

All three named pages that existed on disk and were backed by nothing: app/dashboard rendered sample posts straight out of i18n, app/reports imported framer-mot...

Kamo·2mo ago
Featurekamo-internal

App icons on the wizard's Apps & Features step

The create-network wizard drew each app as the first letter of its name, so the same app was a storefront on Settings -> Features and an "S" here. The icons alr...

kamo·2mo ago

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing