Live Change Log

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

17,994
Total Changes
4,654
Features
4,558
Fixes
32
Projects
Filter by project
All Projects17,994AIService112APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService386InitializerService303KBService74KlusterServices547MCPGatewayService43MediaService462RAGService61SecurityService1,531TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,603kamo-login319kamo-marketing588kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,328kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI523Chore670Docs231Feature4,654Fix4,558Other6,781Performance136Refactor274Revert23Style48Test71Upgrade1
August 3, 2026
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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo ago
Otherkamo-shared-library

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

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

Kamo·1mo ago
OtherInitializerService

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

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

Kamo·1mo 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·1mo ago
ChoreESigService

Gitignore superpowers SDD scratch directory

Kamo·1mo 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·1mo 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·1mo 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·1mo ago
Featurekamo-signer-monorepo

Locale-aware date formatting and per-locale metadata

Kamo·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo 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·1mo ago
Chorekamo-signer-monorepo

Gitignore superpowers SDD scratch directory

Kamo·1mo ago
Docskamo-signer-monorepo

Implementation plan for the kamo-signer i18n upgrade

Seven tasks across kamo-translation-dictionary, kamo-signer-monorepo and ESigService, ordered by the deploy constraint: dictionary must exist before CI clones i...

Kamo·1mo ago
Docskamo-signer-monorepo

Design for kamo-signer /{locale}/ i18n upgrade

Specifies bringing kamo-signer to platform i18n parity using the kamo-marketing /{locale}/ URL convention, as the prerequisite for hosting a localized public qu...

Kamo·1mo ago
July 31, 2026
Fixkamo-internal

Resolve template images from kept sources, not neighbouring slots

The composer re-resolved a template's image sources whenever the template config changed, and for 'member-avatar' it guessed the URL from whichever of signature...

kamo·1mo ago
FixSecurityService

Store and read avatars under one domain-independent prefix

Avatar object paths were prefixed with the domain of whatever host the request arrived on (getPublicBucketName → kamocrm-com, optionone-com, cluster-local, …), ...

Kamo·1mo ago
Featurekamo-internal

Blink the mail icon while an unread indicator is showing

The unread badge alone was easy to miss in the top bar. NavItemButton gains a blinkIcon prop that pulses the icon (and its badge) — kept distinct from the exist...

kamo·1mo ago
ChoreInitializerService

Starter maxSeats 5, Business maxSeats 25

Keeps the KamoCRM pricing seed in step with the live catalog after repositioning the published seat caps.

Kamo·1mo ago
Featurekamo-marketing

Starter capped at 5 users, Business at 25

Repositions the published seat caps on /pricing (and the calculator, JSON-LD offers, and llms.txt summaries) to match the subscription catalog: Starter 25 -> 5 ...

Kamo·1mo ago
Fixkamo-internal

Double vertical scrollbar width for easier dragging

Bump the nav options scroll container from a 6px to a 12px webkit scrollbar and widen the thumb radius to match, giving members a larger drag target. The collap...

kamo·1mo ago
July 30, 2026

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