Live Change Log

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

17,896
Total Changes
4,600
Features
4,522
Fixes
32
Projects
Filter by project
All Projects17,896AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService364InitializerService299KBService74KlusterServices542MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,565kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore670Docs226Feature4,600Fix4,522Other6,781Performance136Refactor274Revert23Style48Test69Upgrade1
August 3, 2026
FeatureAIService

Persist AI conversation PHI access trail to phi_access_log

Stored assistant conversations are the reads least able to afford a 14-day, unqueryable log stream: the module sits outside the compliance boundary, so prompts ...

Kamo·1mo ago
FeatureMediaService

Persist MediaService PHI access trail to phi_access_log

Chat message reads were recorded through the Slf4j default writer, which puts the §164.312(b) trail in a 14-day log stream against a six-year retention obligati...

Kamo·1mo ago
FeatureSecurityService

Inject the TOTP secret-encryption key

KAMO_MFA_SECRET_KEY maps to kamo.mfa.secret-key by Spring's relaxed binding, and is what MfaEnrollmentService uses to encrypt stored TOTP secrets at rest. With...

Kamo·1mo ago
FeatureDocsService

Persist this service's PHI audit trail to the database

DocsService serves document bytes, so its trail is what an accounting of disclosures under §164.528 is actually assembled from. It was writing to a 14-day log s...

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

Surface quotes in every vertical, not just retail

The Quotes tab was only wired into the RETAIL sub-tab set, so on an org whose active markets are SUBSCRIPTION / MORTGAGE / PERSONAL_LOANS there was no way to re...

kamo·1mo ago
FixSecurityService

Treat SERVFAIL/timeout (TRY_AGAIN) as pending, not hard error

Flaky customer authoritative servers (seen: migo.host for rodaris.md) intermittently answer SERVFAIL on healthy zones, which /setup/dns rendered as a red 'DNS l...

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

Time out the *** call instead of hanging every login

A bare `new RestTemplate()` has no connect or read timeout. When the *** service became unreachable today, every login thread blocked on this call indefinitely ...

Kamo·1mo ago
FixKlusterServices

Stop the avatar-resolver policy blocking every login

This policy took the whole platform's login offline for hours. Cilium enforces egress against the RESOLVED BACKEND, after service DNAT, so the port it matches ...

Kamo·1mo ago
Fixkamo-internal

Resolve the org from the real request host, not the internal address

checkAccess resolves the tenant by looking up `org:domain:<hostname>`, and was being handed request.nextUrl.hostname — which behind Traefik is 127.0.0.1. That k...

kamo·1mo ago
FixDaemonService

Annotate the injectable StewardNotifier constructor

DaemonService has been in CrashLoopBackOff for days — 1654 restarts on the pod before the last deploy, 60 on the current one — and never started: Failed to i...

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

500s on dynamic-segment pages + en fallback for missing locale keys

Removing the global force-dynamic made routes with generateStaticParams attempt static rendering for on-demand params, which throws DYNAMIC_SERVER_USAGE because...

Kamo·1mo ago
FixAIService

Scan the shared MFA repositories

MfaEnrollmentService is a @Service in kamo-shared-library, so the wildcard @ComponentScan("com.kamo") in this application constructs it whether or not this serv...

Kamo·1mo ago
FixVOIPService

Scan the shared MFA repositories

MfaEnrollmentService is a @Service in kamo-shared-library, so the wildcard @ComponentScan("com.kamo") in this application constructs it whether or not this serv...

Kamo·1mo ago
FixDaemonService

Scan the shared MFA repositories

MfaEnrollmentService is a @Service in kamo-shared-library, so the wildcard @ComponentScan("com.kamo") in this application constructs it whether or not this serv...

Kamo·1mo ago
FixMediaService

Scan the shared MFA repositories

MfaEnrollmentService is a @Service in kamo-shared-library, so the wildcard @ComponentScan("com.kamo") in this application constructs it whether or not this serv...

Kamo·1mo ago
FixEmailService

Scan the shared MFA repositories

MfaEnrollmentService is a @Service in kamo-shared-library, so the wildcard @ComponentScan("com.kamo") in this application constructs it whether or not this serv...

Kamo·1mo ago
FixSecurityService

Declare the MFA bean here, since the library no longer does

kamo-shared-library dropped @Service from MfaEnrollmentService so that ~40 services stop constructing an authentication component they do not use — that stereot...

Kamo·1mo ago
Fixkamo-shared-library

Drop @Service so 40 services stop constructing an auth bean

MfaEnrollmentService shipped with @Service. Every Kamo service carries @ComponentScan("com.kamo"), so all of them construct it — but each declares its own EXPLI...

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

Add the MFA repositories to the JPA scan — unbreaks login

@EnableJpaRepositories here is an EXPLICIT package list, not a wildcard. com.kamo.z.shared.mfa.repos was missing from it, so UserMfaEnrollmentRepository and Mfa...

Kamo·1mo ago
FixEmailService

Merge duplicate kamo key that crashlooped EmailService

The new EmailService pod has been in CrashLoopBackOff since 16e8a05 — 22 restarts, never once started. snakeyaml raises DuplicateKeyException on a repeated top-...

Kamo·1mo 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·1mo ago
Fixkamo-shared-library

Pin the constructor Spring uses, and prove the context starts

MfaEnrollmentService is a @Service and every Kamo service component-scans com.kamo, so it is instantiated in roughly forty applications. It had two constructors...

Kamo·1mo ago
Fixkamo-login

Accept starter/enterprise plan handoff, carry promo code, target www /subscribe

kamo-register now whitelists starter|business|enterprise and stashes sp_checkout_code; the old pro|business filter silently dropped Starter buyers, and the apex...

Kamo·1mo ago
Fixkamo-internal

Apply the image policy to every page, not just the authenticated ones

The policy was attached only at the final `NextResponse.next()`, so /logout and /validate — both real, browser-rendered documents — were served with no img-src ...

kamo·1mo 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·1mo ago
Fixkamo-register

Unblock portrait phones, add analytics funnel analytics, fix plan handoff

- Remove the portrait-phone gate and "rotate your phone" dialog that hid the entire wizard on portrait phones; the wizard now renders single-column below th...

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

Restore theme assets — CSP derived the wrong host and SVG was disabled

Avatars, org logos and backgrounds stopped loading for every tenant. Two separate regressions I introduced in 36ad904b, both live for hours. 1. The per-request...

kamo·1mo 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·1mo 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·1mo ago
TestSecurityService

Ratchet on endpoints that resolve no session

ResourceServerConfig is anyRequest().permitAll() and @EnableMethodSecurity appears nowhere in this service, so every @PreAuthorize is inert and public is the de...

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

Close the /_next/image open proxy

remotePatterns was [{ protocol: "https", hostname: "**" }]. That made the image optimizer a general-purpose fetcher: any caller could ask this server to retriev...

kamo·1mo 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