KamoCRM

Live Change Log

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

15,120
Total Changes
5,169
Features
4,935
Fixes
30
Projects
Filter by project
All Projects15,120AIService197APIService161BillingService143ConversionService107DaemonService129DocsService215ESigService88EmailService518InitializerService318KBService105KlusterServices697MCPGatewayService85MediaService546RAGService71SecurityService1,658TranslateService55VOIPService205VectorService11kamo-apps25kamo-asterisk-support24kamo-capcha17kamo-capcha-widget4kamo-internal6,937kamo-login330kamo-marketing625kamo-nowww20kamo-register213kamo-shared-library1,455kamo-signer-monorepo53kamolos108
Filter by type
All TypesBuild11CI523Chore738Docs2,167Feature5,169Fix4,935Other986Performance157Refactor274Revert23Style42Test94Upgrade1
July 9, 2026
Featurekamo-shared-library

MarketLosConnection entity + repository

Per-market credential/config connection to an external LOS (MeridianLink / KamoMLS / Encompass), one row per (market, provider). Secret lives only as an AES-256...

Kamo·2mo ago
Featurekamo-shared-library

LeadMarket.mlosIntegration column + DTO round-trip

Adds the MLOS_INTEGRATION column (STRING-stored, defaults NO_MLOS, null-guarded getter) plus DTO/create/update-request plumbing. LeadMarketService collapses the...

Kamo·2mo ago
Fixkamo-shared-library

Promote base mortgage-market leads to LeadClaimMortgage on save so mortgage fields persist

A lead whose market sub-type is (residential/commercial) mortgage was stored as a base Lead unless the backend salesType itself equaled the mortgage type, so up...

Kamo·2mo ago
Featurekamo-shared-library

Add bgWatermark branding field to Organization

Nullable String column (NONE|FULL|SIMPLE) driving the per-org background logo watermark preference; null resolves to FULL on the client. Merged in patchOrganiza...

Kamo·2mo ago
Featurekamo-shared-library

**************** (P(fund) sweep set)

Kamo·2mo ago
Featurekamo-shared-library

**************** (active-pipeline query for P(fund))

Kamo·2mo ago
Featurekamo-shared-library

MlosAiClient — the sanctioned tiered AI entrypoint for MLOS

Best-effort text()/vision() at a cost tier through the org's configured provider (AIService internal endpoints). Returns Optional.empty on no-provider/error so ...

Kamo·2mo ago
Featurekamo-shared-library

Mortgage lead carries borrower-stated financials (income, credit, purchase price, down payment, refi balance/cash-out)

Surfaces the existing **************** and adds four stated columns to LeadClaimMortgage; wires DTOs (read/update/create), the history field registry, and LeadS...

Kamo·2mo ago
Featurekamo-shared-library

Add Manage Own / Others Background Images rights (General group)

Adds MANAGE_OWN_BACKGROUND_IMAGES (165) and **************** (166) to RoleRightType, serviceType null so they land in the General settings group (mirrors the ST...

Kamo·2mo ago
Featurekamo-shared-library

LoanFileDTO.loanTransactionId (app view knows its deal)

Surfaces the loan's transaction so the /applications view can show/switch sibling loans. Verified: mvn install clean.

Kamo·2mo ago
Featurekamo-shared-library

Originator/transaction-first schema — LO assignment, WORM freeze, deal-scoped docs

Backbone for the system-managed-originator + transaction-first refactor (spec 2026-07-08): - LoanTransaction: transactionNumber (org-unique) + assignedLoanOffic...

Kamo·2mo ago
Featurekamo-shared-library

Shared AusEngineClassifier — one source of truth for the §8.2 agency mapping

The program→engine, run→engine, and decision→gate mappings were local to **************** The capital-markets lock-stage AUS hard-stop needs the identical class...

Kamo·2mo ago
July 8, 2026
Featurekamo-shared-library

AiProvider cost tier + vision flag (two orthogonal capability axes)

Adds costTier (LIGHT/MEDIUM/HEAVY via new AiProviderTier enum) and supportsVision boolean to AiProvider, so integrations can pick how expensive a provider to us...

Kamo·2mo ago
Featurekamo-shared-library

EmailRemoteImageConsent entity + repository

Member-scoped record that a member has chosen to display external (remote) images for a specific message, keyed by member_id + normalized RFC Message-ID (unique...

Kamo·2mo ago
Featurekamo-shared-library

Record the true non-par investor price on RateLock + LoanPricingSnapshot

The binding rate-lock-of-record and its bound quote carried only rate + lockDays; discount/origination points were left null, so the core entities read PAR whil...

Kamo·2mo ago
Featurekamo-shared-library

MaterialEvent entity+repo (usage analytics)

Append-only usage events **************** with a per-(imgId,type) aggregate query. Table MATERIAL_EVENTS (targeted CRDB DDL; KI auto-scans).

Kamo·2mo ago
Featurekamo-shared-library

MaterialReview entity+repo (approval status side-table)

DRAFT/PENDING/APPROVED/ARCHIVED per material, keyed by imgId (imaging schema untouched). Table MATERIAL_REVIEWS (targeted CRDB DDL; KI auto-scans).

Kamo·2mo ago
Featurekamo-shared-library

Add MemberVoipOAuthToken for per-member RingCentral connections

Per-member OAuth token keyed (memberId, provider, instanceId) backing extension-scoped RingCentral operations — softphone sip-provision plus the member's person...

Kamo·2mo ago
Featurekamo-shared-library

MaterialCampaign + item entities/repos (collections)

First-class named collections grouping materials across folders. Tables MATERIAL_CAMPAIGNS + MATERIAL_CAMPAIGN_ITEMS (targeted CRDB DDL; KI auto-scans on next r...

Kamo·2mo ago
Featurekamo-shared-library

MaterialTag + assignment entities/repos (org-scoped tags)

Flat, cross-cutting tag axis over folders for marketing materials. Tables MATERIAL_TAGS and MATERIAL_TAG_ASSIGNMENTS (created via targeted CRDB DDL; KI auto-sca...

Kamo·2mo ago
Featurekamo-shared-library

MaterialShareLink registry entity + repo (managed/tracked public links)

Backs revocable, expiring, view-counted public links for marketing materials — persisted so links can be listed, revoked, and counted (vs. the stateless HMAC on...

Kamo·2mo ago
Featurekamo-shared-library

DecisionGate.appliedThreshold exposes the actual confidence bar

The gate internally applies max(tenant override, safetyFloor, stage floor) but callers only had the pre-gate tenant wall. appliedThreshold returns the true bar ...

Kamo·2mo ago
Fixkamo-shared-library

Point-in-time resolvers include SUPERSEDED windows (historical effective-resolution)

All three effective-version resolvers (rate-sheet, guideline, lock-policy) queried only status=ACTIVE, then window-filtered. But supersession flips the prior ve...

Kamo·2mo ago
Featurekamo-shared-library

**************** targeted update

Async conversion (virtual threads) and scheduled sweeps hold a detached ImgDat; save()/merge() cascades into the orphanRemoval=true images collection and throws...

Kamo·2mo ago
Fixkamo-shared-library

Reject negative income / asset / liability amounts on section saves

Extends the requireNonNegative guard (already on loan amount + property values) to the core DTI/asset inputs in BorrowerSectionService: employment income ******...

Kamo·2mo ago
Featurekamo-shared-library

CanvaSchedule entity + repo (recurring generation)

Org-scoped recurring schedule (recipe + cadence + optional social targets) with an atomic-claim query so a MediaService sweep runs each due schedule once.

Kamo·2mo ago
Featurekamo-shared-library

CanvaAutofillRecipe entity + repo (saved autofill recipes)

Org-shared named binding of a Canva brand template to field values (literal text or a Materials image), so stewards can re-run a standard data-merge.

Kamo·2mo ago
Featurekamo-shared-library

Add Material ID field end-to-end in shared-lib

Adds a nullable, max-40-char materialId to the Lead entity (MATERIAL_ID VARCHAR(40)), registers it in LeadHistoryFieldRegistry (Profile category) so edits are a...

Kamo·2mo ago
Featurekamo-shared-library

First-class borrower self-submit transition ****************

DRAFT→APPLICATION_TAKEN for a borrower (a loan party, not an operator, so no LOS_TAKE_APPLICATION). Routes through transition() with a scoped predicate that gra...

Kamo·2mo ago
Featurekamo-shared-library

Transcript column on Recording + RecordingMetadata

Adds a TRANSCRIPT TEXT column to the Recording entity and threads a transcript through **************** (with backwards-compat constructors so existing 5- and 9...

Kamo·2mo ago
Featurekamo-shared-library

Meeting-summary canonical template

Adds the "meeting-summary" transactional template (subject + branded HTML with {{roomName}} and raw {{summaryHtml}}) and registers it in CANONICAL_KEYS so it se...

Kamo·2mo ago
July 7, 2026
Featurekamo-shared-library

MeetingRecording entity + repository for captured recordings

New MEETING_RECORDINGS table (org, meeting ref, room, MinIO bucket/object key, size, duration, captured/expiry timestamps, summary status) — the parent record f...

Kamo·2mo ago
Fixkamo-shared-library

Partial condition PATCH can't silently clear the blocking flag; template blocking default honored; publish after commit

**************** boolean -> Boolean so a PATCH that OMITS the field is distinguishable from an explicit false. LoanConditionService.update now null-guards *****...

Kamo·2mo ago
Featurekamo-shared-library

Canva integration + Marketing as an org-enableable app

- **************** — platform Canva Connect client registration - ImageAssocType.MATERIALS(13, imaging-materials) — org marketing assets bucket - **************...

Kamo·2mo ago
Fixkamo-shared-library

Reject negative loan amount / property values on section saves

updateLoan and updateProperty now reject a negative monetary amount on the LTV inputs (loan amount, estimated/purchase/appraised value) via requireNonNegative —...

Kamo·2mo ago
Fixkamo-shared-library

Loan-file status accessor for borrower edit-lock, borrower-delete cascade, gift-recipient app scoping

**************** orgId): read helper backing the borrower post-submission edit lock (a borrower may only edit the URLA while the file is DRAFT). **************...

Kamo·2mo ago
Fixkamo-shared-library

Idempotent borrower self-create draft + deterministic active lead-market resolution

**************** memberId): resolves the member's existing in-progress DRAFT application so a repeated borrower self-create (double-click / reload / second tab ...

Kamo·2mo ago
Featurekamo-shared-library

Paged queries for support + social chat sessions

feed so the unified Interaction Center Chats list can include all kinds: - SUPPORT (TYPE_ID=2): sessions where the member is the assigned agent OR the request...

Kamo·2mo ago
Featurekamo-shared-library

Add LeadCallback entity, status enum, and repository

Backs the lead-view callback feature: a lead-owned callback record (PENDING/CONTACTED/CANCELED) keyed off leadUid, with a soft reference to the mirrored EmailSe...

Kamo·2mo ago
Fixkamo-shared-library

DbNow() use CAST(now() AS timestamp), not now()::timestamp

The ::timestamp shorthand is mangled by Hibernate's native-query parser (it reads ':' as a named-parameter prefix, turning ::timestamp into :timestamp) -> CRDB ...

Kamo·2mo ago
Fixkamo-shared-library

Resolve member rights as a true waterfall instead of NUKE-always-wins

Effective rights were computed by folding every source (roles, department, job title, member) into one map where NUKE always won. That meant a member holding bo...

Kamo·2mo ago
Featurekamo-shared-library

Lead contact-info privacy rights + lean list DTO

Add three CRM rights (161-163): "Assigned To Others: View/Edit Lead Contact Info" and "View Unassigned Leads". Add LeadListDTO — a lean projection for the /lead...

Kamo·2mo ago
Fixkamo-shared-library

DbNow() cast now()->::timestamp (TIMESTAMPTZ->Instant broke LocalDateTime)

SELECT now() returns TIMESTAMPTZ, which Hibernate materializes as java.time.Instant and cannot cast to the declared LocalDateTime return type — throwing ClassCa...

Kamo·2mo ago
July 6, 2026
Fixkamo-shared-library

Correct inverted parent-shared topic query

The child-org topic query filtered on assignToOwnOrg=TRUE (own-org-only) when it should return topics SHARED with child orgs (assignToOwnOrg=FALSE). Rename the ...

Kamo·2mo ago
Featurekamo-shared-library

SecurityProvider membership mirror + reuse/patch groundwork

- **************** userId): mirror a user into the org's securityProvider org as a base Member (deduped; no-op when the org secures itself or the user is al...

Kamo·2mo ago
Fixkamo-shared-library

Resolve org-by-domain with a deepest-label alias fallback

Add **************** exact domain match, then drop the deepest label once (register.optionone.com -> optionone.com) so a per-org register/branding subdomain res...

Kamo·2mo ago
Featurekamo-shared-library

LeadTask entity for lead follow-up tasks

Backs the /leads/view Tasks tab (previously a frontend-only stub with no persistence). LeadTask (table LEAD_TASK) mirrors the frontend TaskItem shape **********...

Kamo·2mo ago
Featurekamo-shared-library

Real-time NATS publishing + per-pane edit-lock entity

Publish org-scoped lead events on security.leads.rt.{orgId} (created/updated/ deleted with changed-field keys, history-appended) so the /leads grid and /leads/v...

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