KamoCRM

Live Change Log

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

18,791
Total Changes
6,772
Features
5,668
Fixes
30
Projects
Filter by project
All Projects18,791AIService286APIService179BillingService166ConversionService121DaemonService150DocsService275ESigService101EmailService650InitializerService349KBService162KlusterServices775MCPGatewayService278MediaService627RAGService79SecurityService2,041TranslateService62VOIPService266VectorService11kamo-apps29kamo-asterisk-support29kamo-capcha17kamo-capcha-widget4kamo-internal8,848kamo-login346kamo-marketing642kamo-nowww20kamo-register216kamo-shared-library1,876kamo-signer-monorepo71kamolos115
Filter by type
All TypesBuild23CI527Chore796Docs3,291Feature6,772Fix5,668Other1,007Performance174Refactor284Revert23Style45Test180Upgrade1
July 1, 2026
FixSecurityService

Set site region + use node-local MinIO per pod

- Add kamo.minio.region (MINIO_REGION, default us-west-ca-s-1) so SigV4 signatures match the server's enforced site region; fixes background upload and sett...

Kamo·4mo ago
FeatureSecurityService

Auto-grant a 3-day trial to every newly created org

Kamo·4mo ago
FixSecurityService

Stop cross-org background image leak; order-safe reorder + staging bucket

Reordering only re-uploaded new files to their new index, dropping reordered existing images and leaving imageBgCount claiming unpopulated slots; provisioning t...

Kamo·4mo ago
FixSecurityService

Return 404 for a missing org instead of 200 with empty body

getOrganizationById returned a bare null, which Spring serialized to HTTP 200 with an empty body; clients calling response.json() then threw 'Unexpected end of ...

Kamo·4mo ago
FixSecurityService

Let the System User resolve any org's applied model

The cross-org gate returned 403 when orgId != session org and the caller had no Member row in the target org. The platform-wide System User operates across ever...

Kamo·4mo ago
ChoreSecurityService

Rebuild against latest kamo-shared-library

Kamo·4mo ago
June 30, 2026
FixSecurityService

Canonicalize webhook repo name to public-projects casing

After the cluster migration the Forgejo repos were recreated lower-cased (securityservice), but historical rows and the public-projects filter use canonical cas...

Kamo·4mo ago
FixSecurityService

Generate favicons via multi-node logo read, not single-node exists()

generateAndUploadFavicons() gated on minioService.exists(), which only stats the current MinIO host. When the simple logo was written to (or only replicated ont...

Kamo·4mo ago
June 26, 2026
DocsSecurityService

Commit project markdown (rescind no-.md policy)

Kamo·4mo ago
June 16, 2026
FixSecurityService

Expose GD (god eligibility) in /user-info for kamo-universe

The session stores the GD flag (KSessionService) but /user-info never returned it, so kamo-universe's KamoIdentity always deserialized is_god=false and the god/...

Kamo·5mo ago
FixSecurityService

Case-insensitive email lookup so reset emails send

Password recovery lowercased the input but findByEmailEmail does a case-sensitive match against the stored email (e.g. Sage@KamoCRM.com), so the user was never ...

Kamo·5mo ago
June 15, 2026
FixSecurityService

Carry impersonation audit trail across org jumps

When the caller is already an impersonation session (a god admin acting as another member, carrying SUDO_MEMBER_ID), entering another org from /network minted t...

Kamo·5mo ago
FeatureSecurityService

God-mode member impersonation endpoint

POST /api/security/impersonate mints a fresh ***+OTK for an arbitrary member of the caller's current org, gated on the caller session carrying god mode (GD). Re...

Kamo·5mo ago
June 14, 2026
FeatureSecurityService

Return orgName + language in /user-info

Resolve the org's display name and the member's selected language (ISO-639-1 code) from the DB so kamo-universe can show each player's org + language flag on th...

Kamo·5mo ago
June 13, 2026
June 10, 2026
FixSecurityService

Select the SUBSCRIPTION market for platform setup

KamoCRM owns several markets **************** so resolveProductMarket must pick the SUBSCRIPTION-type (platform-access) market rather than the first active one....

Kamo·5mo ago
June 9, 2026
FeatureSecurityService

Scope member entitlements to product root, not KamoCRM

EntitlementService now resolves each member's entitlement root via EntitlementRootResolver (nearest market-owning ancestor-or-self) instead of walking to the to...

Kamo·5mo ago
June 8, 2026
FixSecurityService

Regenerate favicons on labeling save; sniff real logo type

provisionUpdate (run on every custom-labeling save) wrote config/css/manifest but never regenerated favicons — those were only produced by provisionFull. An org...

Kamo·5mo ago
FixSecurityService

Seed globals.css from template when org folder lacks it

provisionUpdate (run on every color save) rewrote the org's css/globals.css in place, but that object only exists once provisionFull has copied it from the defa...

Kamo·5mo ago
May 29, 2026
ChoreSecurityService

Trigger rebuild to pick up renamed PersonalLoan entity

The SecurityService image at 761019b was built before shared-lib d14dc54 (which renamed the personal-loans Loan entity to JPA name "PersonalLoan" to resolve the...

Kamo·5mo ago
May 28, 2026
ChoreSecurityService

KamoLOS → KamoMLOS in comment references

The /Next.js/KamoLOS project (mortgage applicant flow) was renamed to KamoMLOS so the KamoLOS name could be reused for the new personal-loan service. These are ...

Kamo·5mo ago
May 21, 2026
FeatureSecurityService

Backfill program offerings for existing mortgage markets on boot

DataLoader now calls **************** after the AppMortgage-engagement backfill. Sweeps every existing MORTGAGE CommerceMarket and ensures its program Offerings...

Kamo·5mo ago
FixSecurityService

Detach before replacing features collection in /org/domain

The previous fix wired the applied-model projection into **************** but called org.setFeatures(projected) on the still-managed entity. The Organization.fe...

Kamo·5mo ago
FixSecurityService

Resolve ambiguous /org/domain handler — Commerce nav was disappearing

SecurityController had a second **************** that collided with **************** Spring rejected the request with "Ambiguous handler methods mapped" → 500 →...

Kamo·5mo ago
FeatureSecurityService

PUT /programs/{code}/active + deprecate legacy mortgage POS endpoints

- MortgageProgramController gains PUT **************** with body {"isActive": bool}, gated on LOS_TAKE_APPLICATION. Delegates to **************** which upse...

Kamo·5mo ago
ChoreSecurityService

Backfill mortgage engagements on boot

DataLoader now invokes **************** after rights sync and System User backfill. Idempotent — once an app is attached to its engagement+intent, subsequent bo...

Kamo·5mo ago
FeatureSecurityService

Enforce LOS rights + /commerce/engagements endpoint

- MortgageAppController: every endpoint now gates on RoleRightType. Reads require LOS_VIEW_PIPELINE; creating a new application requires LOS_TAKE_APPLICATIO...

Kamo·5mo ago
May 18, 2026
FeatureSecurityService

Emit lender brand + disclosure fields into per-org config.json

Two changes that finish the kamo-los borrower-facing branding pipeline: 1. OrganizationController gains a public GET /api/security/org/domain/{host} endpoin...

Kamo·6mo ago
May 16, 2026
FeatureSecurityService

MortgageConnectController — connections + verified-facts + reconcile endpoints

Exposes the connect-first capture surface at **************** - GET/POST /connections + POST /connections/{id}/complete - GET/POST /verified-facts + POST /verif...

Kamo·6mo ago
May 15, 2026
FeatureSecurityService

Expose Prometheus metrics endpoint

Adds micrometer-registry-prometheus and configures management.endpoints to expose /actuator/prometheus alongside health/info. Required so the counters/timer add...

Kamo·6mo ago
FeatureSecurityService

GET /mortgage-apps/hmda/lar/issues count summary

Aggregates validation issues across the LAR for the given year and returns {errors, warns, rowsWithIssues} so the UI can render a one-line banner before the ope...

Kamo·6mo ago
FeatureSecurityService

Expose GET ****************

Surfaces **************** as an advisory pre-flight check the TransitionDialog fires when the user picks a target status.

Kamo·6mo ago
RefactorSecurityService

Consolidate controller session/rights/response helpers in BaseLosController

Six LOS-area controllers (MortgageApp, MortgagePipeline, MortgagePricing, MortgageDisclosure, MortgageHmda, WebhookSubscription) each copied the same ~80 lines ...

Kamo·6mo ago
ChoreSecurityService

Webhook consumer + worker config in configmap

Backs the JetStream durable consumer in WebhookDeliveryWorker. Env-var overrides for the durable name, deliver-policy (set to All to replay backlog one-time), m...

Kamo·6mo ago
FeatureSecurityService

Translate concurrent-modification IllegalStateException to 409 with code

Pairs with the shared-lib optimistic-lock change: when LoanPipelineService throws "Concurrent modification: refresh and retry", surface a structured {error, cod...

Kamo·6mo ago
FeatureSecurityService

REO lien endpoints + webhook subscription controller

- MortgageAppController: POST /{uid}/reos/{reoId}/liens, PATCH /{uid}/reo-liens/{id}, DELETE /{uid}/reo-liens/{id} — delegating to the new BorrowerSectionSe...

Kamo·6mo ago
FeatureSecurityService

Controllers for pricing, disclosures, HMDA LAR

Three new REST controllers under /api/security/mortgage-apps: - MortgagePricingController: pricing snapshots, rate locks, AUS findings CRUD ({uid}/pricing, {...

Kamo·6mo ago
FeatureSecurityService

MortgagePipelineController + LOS_PIPELINE configmap entry

Exposes the LOS pipeline backend under /api/security/mortgage-apps: - GET /pipeline — kanban summary - GET /{uid}/pipe...

Kamo·6mo ago
FeatureSecurityService

MortgageAppController for URLA 2021 REST surface

New REST controller exposing the full URLA application lifecycle: GET /api/security/mortgage-apps list (summary) GET ***************...

Kamo·6mo ago
May 12, 2026
FixSecurityService

Add /me/language endpoint that bypasses SystemUserGuard

The NavTop language picker did nothing for the System User signed into a sub-org: PUT **************** runs SystemUserGuard first, which 403s every System-User ...

Kamo·6mo ago
FixSecurityService

Never gate Kamo-owned subdomains on TXT ownership

Child orgs that picked a Kamo web alias (e.g. gnosia.demo.kamocrm.com) were getting "TXT record found but verification code doesn't match" in the DNS setup UI. ...

Kamo·6mo 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