KamoCRM

Live Change Log

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

17,395
Total Changes
5,910
Features
5,260
Fixes
30
Projects
Filter by project
All Projects17,395AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,830TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,328kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,637kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,910Fix5,260Other993Performance165Refactor278Revert23Style42Test159Upgrade1
August 3, 2026
Featurekamo-shared-library

Durable audit trail — persist PHI access, append-only

Turns §164.312(b) from a log line into evidence. The capture layer has been wired across seven services for a while, but it wrote through Slf4jPhiAccessLogWrite...

Kamo·2mo ago
FeatureInitializerService

Create phi_access_log — the durable §164.312(b) audit trail

Until now PHI access was recorded only to a log stream with 14-day retention against a six-year obligation, and with no query surface. An accounting of disclosu...

Kamo·2mo ago
Featurekamo-shared-library

Mint the Universal Loan Identifier (ULI) + store the org LEI

Adds the HMDA ULI to the LAR export. UliMinter builds the ULI = org LEI(20) + loan number + two ISO 7064 MOD 97-10 check digits (Mod97CheckDigit — the IBAN algo...

Kamo·2mo ago
Featurekamo-internal

Set the org LEI in Company Info (activates the HMDA ULI)

The Company Info card gains a Legal Entity Identifier field (20-char, upper- cased), sent through the existing org PUT — OrganizationController deserializes it ...

kamo·2mo ago
Featurekamo-internal

Promote an ingested guideline version from the console

For a GUIDELINE source document the ingestion panel shows a "Promote as guideline version" card (product select + revision label). The rate-sheet card is now hi...

kamo·2mo ago
FeatureSecurityService

Gateway relay to promote an ingested guideline into a version

MlosCatalogController/Client gain promote-guideline, mirroring promote- eligibility: god-eligible gate, organizationId server-stamped via write().

Kamo·2mo ago
Featurekamo-register

Auto-login after email verification via one-time key

When /verify-email responds with the additive otk + autoLoginHost fields (minted by SecurityService on first verification), deep-link straight to https://<host>...

Kamo·2mo ago
Featurekamo-marketing

Phase 3+4 — convert the traffic that already arrives

- changelog (#2 destination) gets a conversion block; careers shows the honest no-openings state - /subscribe page: post-registration plan intent lands somewher...

Kamo·2mo ago
FeatureSecurityService

Mint auto-login OTK on first email verification

Completing the register wizard's email verification (6-digit code or email link) already proves inbox possession, yet the new user was bounced to the login page...

Kamo·2mo ago
Featurekamo-marketing

Related-content modules + signup CTA retargeting on programmatic templates

Solutions, integrations, alternatives, and glossary templates were organic dead ends: no internal related links and "Start free" CTAs pointing at /pricing inste...

Kamo·2mo ago
FeatureSecurityService

Gate login on the second factor — §164.312(d)

Completes MFA. The core landed in kamo-shared-library; this is the wire that turns stored configuration into an actual gate. The gate is small because login al...

Kamo·2mo ago
Featurekamo-marketing

Phase 0+1 — instrument the real funnel, unblock first paint

- forward data-* props through MagneticButton/RippleButton (events never reached the DOM) - instrument SharedNavigation, Hero, PreviewBanner, section CTAs; ?ref...

Kamo·2mo ago
Featurekamo-shared-library

TOTP second factor — §164.312(d)

The compliance assessment called the absence of any second factor disqualifying on its own, and under the 2025 Security Rule NPRM MFA stops being addressable at...

Kamo·2mo ago
Featurekamo-login

Add analytics analytics + ?registered=1 welcome notice

- Mount analyticsAnalytics client component in the root layout: next/script loader for analytics.kamocrm.com scoped via data-domains to login.kamocrm.com on...

Kamo·2mo ago
FeatureInitializerService

Create the second-factor tables

Backs UserMfaEnrollment and MfaRecoveryCode in kamo-shared-library — §164.312(d) Person or Entity Authentication, the gap the compliance assessment called disqu...

Kamo·2mo ago
FeatureVOIPService

Require VIEW_CALL_LOGS for call playback in PHI-handling orgs

Recording and voicemail playback checked tenancy and nothing else: any member of the owning org could pull any call in it, transcript included, on extensions th...

Kamo·2mo ago
Featurekamo-internal

Automatic logoff after inactivity (HIPAA 164.312(a)(2)(iii))

A session left open on an unattended workstation stayed usable indefinitely. This terminates it after 15 minutes of no interaction, with a 60-second warning so ...

kamo·2mo ago
FeatureDocsService

Audit WOPI content endpoints and close the last byte-serving gaps

WOPI serves whole documents to Docs and recorded nothing. GET /wopi/files/{id}/contents is the same disclosure as /download, relayed the same way through APISer...

Kamo·2mo ago
Featurekamo-internal

Promote an ingested eligibility matrix from the console

For an ELIGIBILITY_MATRIX source document the ingestion panel now shows a "Promote as eligibility matrix" card: pick the product, limit type (MAX_LTV/CLTV/DTI),...

kamo·2mo ago
FeatureSecurityService

Gateway relay to promote an ingested eligibility matrix

**************** gain promote-eligibility, mirroring promote-adjustments: god-eligible gate, organizationId server-stamped via write(), downstream 4xx relayed v...

Kamo·2mo ago
Featurekamo-internal

Authoring UI — list, line-item editor, share-link management

Completes the quote/estimate system: staff can now build a quote, price it, mint a share link and email it, all from the pipeline. app/lib/quotesApi.ts ...

kamo·2mo ago
FeatureSecurityService

Record lead reads and refuse un-auditable exports

HIPAA §164.312(b) for SecurityService. The platform records every lead CHANGE (LeadHistory) and every login (SystemAccessLog) and records no READ at all, so "wh...

Kamo·2mo ago
Featurekamo-signer-monorepo

Public branded quote/estimate document at /{locale}/q/{token}

The customer-facing surface for the commerce quote system. Server-rendered so the org's branding is in the first paint — an unbranded flash on a commercial docu...

Kamo·2mo ago
FeatureSecurityService

Quote REST surface — staff management and public share links

Staff endpoints at /api/security/commerce/quotes and an unauthenticated resolver at /api/security/public/quotes. QuoteController extends BaseLosController rath...

Kamo·2mo ago
Featurekamo-shared-library

Quote/estimate domain — entities, pricing engine, share links

Adds a first-class Quote alongside the existing commerce spine. The pre-existing "ServiceQuote" is an Intent plus a JSON blob carrying one offering and one flat...

Kamo·2mo ago
FeatureKlusterServices

Egress containment for the avatar resolver, as a CiliumNetworkPolicy

Reinstates what 8f6c672 reverted, in the only form that actually works here. The earlier attempt failed because a plain NetworkPolicy cannot express this clust...

Kamo·2mo ago
Featurekamo-internal

Show a facepile for group conversations

A thread with five people on it was represented by one arbitrary face, which reads as a message from one person. Up to three participants now overlap, so "sever...

kamo·2mo ago
FeatureSecurityService

Instrument the chain, reap expired entries, record disclosures

Every failure mode in this feature is silent. A latched circuit breaker, a worker queue discarding every task, a provider that started returning HTML — each loo...

Kamo·2mo ago
Featurekamo-internal

Promote an ingested LLPA matrix into adjustments from the console

The ingestion panel could only publish a rate sheet. For an LLPA_MATRIX source document it now shows a "Promote as LLPA adjustments" card: pick the existing rat...

kamo·2mo ago
FeatureSecurityService

Gateway relay to promote an LLPA matrix into conditional adjustments

**************** gain promote-adjustments, mirroring the promote-rate-sheet relay: god-eligible gate, organizationId server-stamped onto the payload via write()...

Kamo·2mo ago
FeatureVOIPService

Record call recording, voicemail and transcript access

Recording playback left no trace. A recorded call is the densest PHI the platform stores — the unredacted conversation — and "who listened to this call" was una...

Kamo·2mo ago
FeatureAIService

Record PHI access on every read of stored AI conversation history

Wires the shared §164.312(b) spine into the paths that read persisted prompts and completions. The assistant is the module the compliance assessment put OUTSIDE...

Kamo·2mo ago
FeatureMediaService

Record chat message reads on the endpoints that return bodies

Sending a message left a row; reading one left nothing. Every chat, support and social thread on the platform renders from a handful of endpoints here, and none...

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
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
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
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

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