KamoCRM

Live Change Log

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

17,445
Total Changes
5,946
Features
5,271
Fixes
30
Projects
Filter by project
All Projects17,445AIService243APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService571InitializerService329KBService151KlusterServices738MCPGatewayService238MediaService596RAGService79SecurityService1,843TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,341kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,648kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,254Feature5,946Fix5,271Other994Performance165Refactor278Revert23Style42Test159Upgrade1
August 3, 2026
FixESigService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FixConversionService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FixDaemonService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FixVOIPService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FixRAGService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FixKBService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FixAIService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FixMCPGatewayService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FixDocsService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FixEmailService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FixSecurityService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FixMediaService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FixAPIService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·2mo ago
FeatureDocsService

Record byte access on the four document paths that recorded nothing

/download already logged through **************** and it was the platform's only byte-access injection site. The sibling endpoints serving the exact same bytes ...

Kamo·2mo ago
FeatureKlusterServices

Contain egress from the avatar resolver; note the Redis eviction pool

SecurityService now runs a fetcher whose target URL is chosen by an untrusted party — a BIMI record is DNS content published by whoever owns a sending domain, a...

Kamo·2mo ago
Featurekamo-internal

Show sender and recipient photos

The mailbox rendered a single letter on a single shared gradient for everyone, so every row looked the same and the circle carried no information. It now shows ...

kamo·2mo ago
FeatureEmailService

Avatar endpoints; fix unauthenticated reachability and contact tenancy

Adds the mailbox side of sender avatars, and fixes three pre-existing holes this work would otherwise have built on top of. AUTHENTICATION. OTKPreAuthFilter us...

Kamo·2mo ago
FeatureSecurityService

Sender-avatar resolution chain for the mailbox

Resolves a correspondent's email address to a picture, working outward from what Kamo already knows: member photo, then a photo someone attached to a contact, t...

Kamo·2mo ago
Featurekamo-shared-library

Sender identity model + org-scoped batch email lookups

Backing store and queries for the mailbox sender-avatar chain. SenderIdentityEntity is the durable tier of the avatar cache. org_id is part of the natural key ...

Kamo·2mo ago
Featurekamo-shared-library

Audit spine for PHI access — §164.312(b)

The Security Rule requires recording access to ePHI, which means reads. The platform records changes well — LeadHistory, SystemAccessLog, UserHistory, LoanAudit...

Kamo·2mo ago
FeatureSecurityService

403 rather than 500 when the compliance boundary refuses

Two call sites of featureService.enableFeature now understand the HIPAA boundary: - /enable maps PhiModuleNotPermittedException to 403 carrying the reason, m...

Kamo·2mo ago
Featurekamo-shared-library

Enforce the compliance boundary at the feature switch

Wires PhiTenantGuard into FeatureService, the single choke point through which a module is switched on for an organization. This is where the boundary stops bei...

Kamo·2mo ago
Featurekamo-shared-library

Auto-assign a MERS-compatible loan number at application creation

LoanFile.loanNumber was null on create (both blank-create and lead-promote) and only ever set when a steward typed one — which hard-blocked MERS MIN minting (a ...

Kamo·2mo ago
Fixkamo-signer-monorepo

Make the kubectl install resilient to flaky egress

With the PATH bug fixed, the deploy then failed on a transient TLS drop while downloading kubectl: curl: (56) OpenSSL SSL_read: error:0A000119:decryption fail...

Kamo·2mo ago
Fixkamo-signer-monorepo

Invoke kubectl by absolute path in the step that installs it

Root cause of deploy_k1m1 never succeeding. The install step did: echo "$BIN" >> "$GITHUB_PATH" kubectl version --client but $GITHUB_PATH only applies to SU...

Kamo·2mo ago
Fixkamo-signer-monorepo

Point the deploy kubeconfig at the LAN IP, not the k1m1 hostname

deploy_k1m1 had never succeeded (0/5 since the repo was created). The job rewrote the kubeconfig API server to https://k1m1:6443, but the runner's job container...

Kamo·2mo ago
CIkamo-signer-monorepo

Re-trigger deploy after fixing K1M1_KUBECONFIG_B64

The deploy_k1m1 job had never succeeded (0/5) because the secret held k1m1's on-host kubeconfig verbatim, whose server is https://127.0.0.1:6443 — reachable fro...

Kamo·2mo ago
FixEmailService

Add missing CampaignController REST endpoints for /api/email/campaigns

The bulk-email workspace/editor call GET/POST /api/email/campaigns etc., but only CampaignService (the @Service) was ever created — no @RestController exposed i...

Kamo·2mo ago
Featurekamo-signer-monorepo

Render signer dates in the recipient's resolved timezone

SigningSession gains a required `timeZone` (IANA id) that ESigService resolves from the recipient's member zone, then the org's, then UTC. WelcomeScreen now pas...

Kamo·2mo ago
FeatureESigService

Resolve signer display timezone from member, then org

Signing dates were rendered in whatever zone the client defaulted to, so an envelope expiring 2026-08-03T05:00Z could read "Aug 3" to a Pacific signer for whom ...

Kamo·2mo ago
FeatureInitializerService

Create HANDLES_PHI and PHI_EFFECTIVE_DATE on orgs

Mirrors the two new Organization fields, following the OrgBrandingFieldsMigration convention, so the columns are reproducible on any environment rather than onl...

Kamo·2mo ago
Featurekamo-shared-library

Persist handlesPhi and phiEffectiveDate on Organization

Backs PhiTenantGuard with a real column. HANDLES_PHI is NOT NULL DEFAULT FALSE following the **************** pattern, so every existing tenant is explicitly ou...

Kamo·2mo ago
Featurekamo-shared-library

PhiTenantGuard and the module compliance boundary

The keystone of the HIPAA compliance boundary: which modules a tenant may reach, given whether that tenant handles protected health information. Everything down...

Kamo·2mo ago
August 2, 2026
Fixkamo-signer-monorepo

Disable hreflang alternates header; make LANGUAGE_NAMES total

- routing.ts: set alternateLinks: false — the app is noindex/nofollow with no consumer for the Link: rel=alternate header next-intl emits by default for all...

Kamo·2mo ago
Otherkamo-shared-library

Revert "feat(phi): add the handlesPhi tenant flag and PhiTenantGuard"

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

Kamo·2mo ago
OtherInitializerService

Revert "feat(phi): create HANDLES_PHI and PHI_EFFECTIVE_DATE on orgs"

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

Kamo·2mo ago
FeatureInitializerService

Create HANDLES_PHI and PHI_EFFECTIVE_DATE on orgs

Mirrors the two new fields on the Organization entity in kamo-shared-library, following the OrgBrandingFieldsMigration convention. HANDLES_PHI is NOT NULL DEFAU...

Kamo·2mo ago
ChoreESigService

Gitignore superpowers SDD scratch directory

Kamo·2mo ago
FeatureESigService

Emit the signer locale segment in signing links

Extracts the byte-for-byte duplicated buildSignLink into SignLinkBuilder and adds a locale segment sourced from Organization.language, falling back to English f...

Kamo·2mo ago
CIkamo-signer-monorepo

Clone translations from the dictionary, stop tracking messages/

Adds the dictionary clone step before the Docker build and gitignores apps/kamo-signer/messages/, matching kamo-internal and kamo-marketing. Requires **********...

Kamo·2mo ago
Featurekamo-shared-library

Add the handlesPhi tenant flag and PhiTenantGuard

The keystone of the HIPAA compliance boundary: a per-organization flag plus a guard deciding which modules that organization may reach. Everything downstream ke...

Kamo·2mo ago
Featurekamo-signer-monorepo

Locale-aware date formatting and per-locale metadata

Kamo·2mo ago
FixDocsService

Require a session on POST ****************

The handler took an HttpServletRequest but never used it, carrying the comment "No auth required — internal admin maintenance endpoint". APIService relays /api/...

Kamo·2mo ago
FixConversionService

Require a session on POST /backfill-conversions

The handler was declared backfillConversions() — it took no request at all — under the comment "No auth — internal maintenance, mirrors /backfill-thumbnails". I...

Kamo·2mo ago
Featurekamo-signer-monorepo

Add language switcher to the signer top bar

Endonym-labelled menu over the 22 supported locales. Preserves the query string on switch — ?t= is the signer's only credential.

Kamo·2mo ago
Featurekamo-signer-monorepo

Mirror layout for RTL locales via stylis-plugin-rtl

The MUI theme direction alone flips component logic but leaves physical CSS properties untouched, so Arabic rendered with LTR spacing. Swaps the Emotion cache k...

Kamo·2mo ago
FixSecurityService

Gate DELETE /api/security/org/{id} behind active god mode

The handler was `public void **************** Long id)` — no HttpServletRequest parameter at all, calling straight through to a bare deleteById. With ResourceSe...

Kamo·2mo ago
Featurekamo-signer-monorepo

Route the signer under /{locale} with next-intl middleware

Adds i18n/routing.ts (localePrefix always), i18n/navigation.ts, and middleware.ts, and moves the route tree under src/app/[locale]/. request.ts now resolves fro...

Kamo·2mo ago
Fixkamo-internal

Delete /api/set-token and /api/get-jwt-token; add route guards

Both routes were dead — no caller anywhere in kamo-internal, kamo-login or kamo-register — and both leaked credentials. /api/set-token built its upstream URL f...

kamo·2mo ago
FixSecurityService

Require auth + org scope on job-title/department mutations

PUT and DELETE on /api/security/job-titles/{id} and /api/security/departments/{id} resolved no session at all — they read a UUID off the path and called straigh...

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