KamoCRM

Live Change Log

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

18,447
Total Changes
6,575
Features
5,540
Fixes
30
Projects
Filter by project
All Projects18,447AIService276APIService179BillingService162ConversionService117DaemonService146DocsService240ESigService93EmailService625InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService621RAGService79SecurityService2,005TranslateService62VOIPService265VectorService11kamo-apps28kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,711kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,836kamo-signer-monorepo58kamolos115
Filter by type
All TypesBuild23CI525Chore794Docs3,287Feature6,575Fix5,540Other1,001Performance174Refactor284Revert23Style45Test175Upgrade1
May 15, 2026
Featurekamo-shared-library

Pricing snapshots, rate locks, AUS findings, disclosures, TRID timers, HMDA LAR

Sub-projects 5, 6, and 7 backend shipped together: Sub-project 5 (pricing & locks): - LoanPricingSnapshot — append-only quotes (program, investor, rate, APR,...

Kamo·6mo ago
Featurekamo-internal

LOS pipeline UI — kanban, detail section, template admin

Sub-project 4 frontend, end-to-end: - /applications/pipeline (PipelineBoardClient): kanban grouped by LoanFileStatus with off-ramp lanes below the happy-path...

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
Featurekamo-shared-library

Pipeline state machine, conditions, templates, NATS events

Sub-project 4 (LOS pipeline & workflow) backend: - New enum LoanConditionStatus (OPEN/CLEARED/WAIVED) - New entities: LoanPipelineMilestone (append-only transi...

Kamo·6mo ago
Featurekamo-internal

Originator & Submissions sections UI

Closes out Sub-project 3: the originator route gets a two-block editor (individual NMLS + organization NMLS + org address) wired to patchOriginator with the sta...

kamo·6mo ago
Featurekamo-internal

HMDA Demographics section UI

Replaces the Coming-Soon placeholder for the hmda route. Ethnicity uses the tri-state lookup with an inline sub-checkbox block when Hispanic is selected (Mexica...

kamo·6mo ago
Featurekamo-internal

Military Service section UI

Replaces the Coming-Soon placeholder for the military route. The everServed switch upserts via mortgageAppsApi.putMilitary; toggling it off also clears the serv...

kamo·6mo ago
Featurekamo-internal

Real Estate Owned section UI

Replaces the Coming-Soon placeholder for the REO route. Each property card edits the address, occupancy/status/intended-use, market value, monthly insurance+tax...

kamo·6mo ago
Featurekamo-internal

Liabilities & Expenses section UI

Replaces the Coming-Soon placeholder for the liabilities route. Section 2c liabilities track unpaid balance, monthly payment, months remaining, and the three UR...

kamo·6mo ago
Featurekamo-internal

Assets & Credits section UI

Replaces the Coming-Soon placeholder for the assets route. Splits the borrower's asset list into Section 2a (bank/retirement/other accounts, type id < 50) and S...

kamo·6mo ago
Featurekamo-internal

Employment & Income section UI

Replaces the Coming-Soon placeholder for the employment route with a full URLA Section 1d-1g editor. Per-borrower chip selector mirrors the declarations pattern...

kamo·6mo ago
Featurekamo-internal

URLA 2021 mortgage application UI

Adds the new /applications route group, the typed mortgageAppsApi client that talks to SecurityService /api/security/mortgage-apps, full TS types mirroring the ...

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
Featurekamo-shared-library

URLA service layer (repos, DTOs, services, lookups)

Adds the full backend service layer for the URLA package introduced in the previous commit: repos/applications/ 20 JpaRepositories scoped per entity ...

Kamo·6mo ago
Featurekamo-shared-library

URLA 2021 schema foundation for residential mortgage

Refactor AppMortgage into a full URLA package root supporting multiple 1003s per loan with up to two borrowers per pair (married/joint or unmarried). Replaces t...

Kamo·6mo ago
May 12, 2026
Fixkamo-register

Resolve subdomain-tenant org bucket to its own MinIO folder

getThemePath() was reducing the hostname to apex+tld for both the themed host and the bucket folder, so subdomain tenants like gnosia.demo.kamocrm.com loaded th...

Kamo·6mo ago
Fixkamo-login

Resolve subdomain-tenant org bucket to its own MinIO folder

getThemePath() was reducing the hostname to apex+tld for both the themed host and the bucket folder, so subdomain tenants like gnosia.demo.kamocrm.com loaded th...

Kamo·6mo ago
Fixkamo-internal

Route NavTop picker through /me/language

The picker called the generic member PUT, which SystemUserGuard 403s for the System User signed into a sub-org. The catch logged silently, so the kamo-locale co...

kamo·6mo ago
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
Fixkamo-internal

Resolve subdomain-tenant org bucket to its own MinIO folder

getThemePath() was reducing the hostname to apex+tld (mainDomain.tld) for both the themed host AND the bucket folder. For subdomain tenants like gnosia.demo.kam...

kamo·6mo ago
Fixkamo-internal

Stop clipping dark-variant color inputs in ModernColorGroup

Color picker rows had a hardcoded 280px wrapper inside a 1fr 1fr grid with overflow:hidden, so the input was chopped on narrow columns. Use flex:1 + minWidth:0 ...

kamo·6mo ago
Fixkamo-internal

Treat thrown subscription stub as no-subscription, not error

The legacy getCurrentSubscription stub throws by design so callers fall back to the ungated path. StatsManager was surfacing the throw as "Could not load subscr...

kamo·6mo ago
Fixkamo-internal

Return empty meters instead of null from getCurrentUsage

StatsManager rendered <UsageMeters usage={null}> when the legacy stub resolved to null, crashing on usage.meters. Return { meters: [] } so the component takes t...

kamo·6mo ago
Fixkamo-internal

Gate My Account slide-out section on CONFIGURE_SYSTEM

Hide the "My Account" menu from members who lack CONFIGURE_SYSTEM so they don't see links (Stats & Costs, Apps & Features, Branch Types, Automation Streams) tha...

kamo·6mo ago
Otherkamo-internal

Revert "fix(account-settings): auto-route child-org owners to their permitted org"

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

kamo·6mo ago
Fixkamo-internal

Auto-route child-org owners to their permitted org

When /settings/account loads for a user who lacks CONFIGURE_SYSTEM on the current org, the previous behavior was a silent redirect to /settings — a dead-end for...

kamo·6mo ago
Fixkamo-internal

Use full FQDN, not eTLD+1, when fetching org by domain

registrableDomainFromAlias strips any multi-label subdomain (e.g. "gnosia.demo.kamocrm.com") down to its eTLD+1 ("kamocrm.com"). That was fine for the API base ...

kamo·6mo ago
FixKlusterServices

Preserve full FQDN for subdomains deeper than two labels

organize_by_root() was extracting only the first label and the last two labels from each Traefik-logged hostname. For the common two-level case (login.b11capita...

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

Don't show global loading overlay for client-handled forms

NavigationInterceptor's submit listener treated any form whose form.action was truthy and method=get as a navigation, and called setLoading(true) on the global ...

kamo·6mo ago
FixSecurityService

Grant top-level org owners cross-org delete/update access

deleteDomain and updateDomain previously rejected platform admins operating on child-org domains because they checked isUserOwnerOfOrg against the target org di...

Kamo·6mo ago
May 11, 2026
FixSecurityService

Allow deleting per-org *.kamocrm.com subdomains

The endsWith(".kamocrm.com") guard blocked every demo org from swapping its platform subdomain (e.g. gmosia.demo.kamocrm.com) for a custom domain. The platform ...

Kamo·6mo ago
FeatureKlusterServices

Manage mail.kamocrm.com TLS end-to-end

Auto-cert now provisions and maintains the Let's Encrypt cert for mail.kamocrm.com (HTTP-01 via Traefik on port 80) and keeps the postfix consumer in sync acros...

Kamo·6mo ago
ChoreKlusterServices

Remove decommissioned Janus WebRTC gateway

Janus is no longer in use. Removes the orphaned KlusterServices/janus/ manifests (Janus was host-installed, not cluster-deployed, and is not running on k1m1). ...

Kamo·6mo ago
FixKlusterServices

Advertise new public IP 47.181.8.83 for external media

JVB-k1m1 was advertising 75.83.113.11 and coturn was advertising the node's LAN IP via status.hostIP — both broke external WebRTC media now that the public WAN ...

Kamo·6mo ago
CISecurityService

Rebuild against kamo-shared-library 88a8d63

Picks up: - HIGH: **************** refuses NUKE/FORCE_NUKE on admin-essential rights for the ADMINISTRATOR template. - MEDIUM: **************** now re-runs ...

Kamo·6mo ago
Fixkamo-shared-library

Guard admin-essential rights + re-seed roles on template edit

HIGH: **************** now refuses to persist a NUKE or FORCE_NUKE setting on any of the ADMINISTRATOR template's admin-essential rights (CONFIGURE_SYSTEM, MANA...

Kamo·6mo ago
Otherkamo-shared-library

Revert "feat(member): **************** for idempotent role promotion"

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

Kamo·6mo ago
OtherSecurityService

Revert "fix(orgs): propagate child-org-creator admin status to parent-org membership"

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

Kamo·6mo ago
FixSecurityService

Propagate child-org-creator admin status to parent-org membership

When a user creates a child org they become its owner + admin (via **************** Their PARENT-org membership, however, is whatever it was before — typically ...

Kamo·6mo ago
Featurekamo-shared-library

**************** for idempotent role promotion

Adds a public, transactional ensureRoleAssigned(memberId, roleId) that: - No-ops if the role is already on the member. - Looks up the OrgRole and saves a ne...

Kamo·6mo ago
Fixkamo-internal

Wrap toolbar and shrink search/date so New Event stays on-page

Toolbar packed too much fixed-width content into a single non-wrapping flex row; with the parent main area set to overflow: hidden, the right section (New Event...

kamo·6mo ago
Fixkamo-internal

Read *** from master after session refresh to avoid replica lag

The previous fix had /api/user-info call /api/security/session/refresh before reading Redis, but the read went through readKsemJsonFromRedisWithRetry which uses...

kamo·6mo ago
Fixkamo-internal

Track tab by name + refresh session before reading user-info

Two related navigation bugs that both manifest as "the wrong tab opens": 1. SettingsView tracked the active tab by *index*. childrenArray can recompose ...

kamo·6mo ago
FixKlusterServices

Replace heredoc with grouped echos so YAML literal block parses

The /etc/odbc.ini heredoc body sat at column 1, which dedented out of the surrounding startup.sh: | literal-block scalar and broke `kubectl apply` of the Config...

Kamo·6mo ago
FixKlusterServices

Follow rclone remounts via HostToContainer mount propagation

Without slave propagation the pod captures the FUSE bind mount once at container start; if rclone-mount.service restarts on the host, the pod keeps pointing at ...

Kamo·6mo ago
FeatureKlusterServices

Reverse-proxy priceturbo.com apex + wildcard via k1m1 with TLS

k1m1 Traefik now terminates HTTPS for priceturbo.com and any *.priceturbo.com subdomain, forwarding plain HTTP to the upstream Traefik at 192.168.4.36:80 with t...

Kamo·6mo ago
Fixkamo-internal

Gate Docs tab on VIEW_DOCUMENTS / MANAGE_DOCS_SETTINGS

Mirrors the Email + Phone tab gates. A member without VIEW_DOCUMENTS (basic user-level access) and without MANAGE_DOCS_SETTINGS (admin) no longer sees the Docs ...

kamo·6mo ago
Fixkamo-internal

Gate Email + Phone tabs on rights, gate VOIP config edit, periodic session refresh

Adds the missing right-gating so a basic Member without ACCESS_MAIL / ACCESS_VOIP can no longer see the Email & Mailbox or Phone Settings tabs on their own acco...

kamo·6mo ago
FeatureSecurityService

Wire template-save recalc + session refresh + effective-rights diagnostic

**************** / updateModel / deleteModel and **************** now invoke recalcAllMembersUsingModel after persisting changes — every org pointed at the mode...

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