KamoCRM

Live Change Log

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

17,374
Total Changes
5,891
Features
5,258
Fixes
30
Projects
Filter by project
All Projects17,374AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,822TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,321kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,631kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,891Fix5,258Other993Performance165Refactor278Revert23Style42Test159Upgrade1
July 8, 2026
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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo ago
Fixkamo-shared-library

CreatePair is idempotent for the primary pair (stops duplicate BorrowerPairs)

createPair's sole caller is the wizard's 'ensure primary borrower', but it unconditionally inserted a new pair every call, so a concurrent autosave + explicit S...

Kamo·3mo ago
Fixkamo-shared-library

PublishRouted so los.pipeline.* events land in LOS_PIPELINE, not rejected

NatsMessageService.publish() pins expectedStream=CHAT_MESSAGES; a los.pipeline.* subject is owned only by the LOS_PIPELINE stream, so the server rejected every ...

Kamo·3mo ago
Featurekamo-shared-library

Centralize §4.5 supersession-collapse (RequirementSupersession)

The freshness engine leaves a STALE_EXPIRED predecessor beside its fresh successor under one **************** Only the read path (ConditionClearabilityComputer)...

Kamo·3mo ago
Fixkamo-shared-library

Gate intake @Component beans behind mlos.intake.enabled (opt-in)

BorrowerScenarioProfileService and ProductDiscoveryGate are shared-lib @Component/@Service beans that inject **************** / mlos.config repos. With blanket ...

Kamo·3mo ago
Featurekamo-shared-library

DOC_REQUEST + DOC_REJECTED canonical templates

Borrower document-collection emails (transactional, CAN-SPAM-exempt): a request nudge when the checklist is minted, and a return-for-reupload notice. Added to C...

Kamo·3mo ago
Fixkamo-shared-library

**************** (the doc-requirement key)

Surfaces the backing LoanFile.uid so the pipeline can map an app row to its document requirements.

Kamo·3mo ago
Fixkamo-shared-library

Stop party fragmentation — enrich the stamped party in place

Live E2E showed a single loan producing 4 parties for 2 humans (an empty placeholder was created at borrower-create before identity, then a 2nd party at identit...

Kamo·3mo ago
Fixkamo-shared-library

Party-link cross-human leak + account-level backfill

Adversarial-review fixes: - HIGH: drop the memberId dedup that conflated the loan's isPrimary borrower with the account OWNER — a member self-creating a loan ...

Kamo·3mo ago
Featurekamo-shared-library

**************** self-heal

Idempotent re-link of every borrower on a loan to its account-party, callable from the document surfaces so an upload can always resolve the borrower's vault pa...

Kamo·3mo ago
Featurekamo-shared-library

Account-borrower-party link service + vault finders

- **************** find-or-create the reusable account-party (document-vault shared-human key) for each loan Borrower; dedup ssn4+dob, else primary→account....

Kamo·3mo ago
July 5, 2026
Featurekamo-shared-library

P1 entity foundation — lead-first / account-centric / transaction-grouped refactor

NEW entities (additive; KI runs DDL): - TransactionGroupStatus enum + LoanTransactionStatusDeriver: derived group lifecycle (Created→…→Completed) rolled up fr...

Kamo·3mo ago
Fixkamo-shared-library

CreateBlank must persist the app graph before bootstrapBorrower

bootstrapBorrower seeds a Declarations/HMDA shell whose NOT-NULL borrower FK requires the Borrower to be persistent; createBlank called it BEFORE the cascading ...

Kamo·3mo ago
Fixkamo-shared-library

Stamp borrower ownership in a separate tx (avoid transient-graph cascade)

createBlankOwnedByMember re-saved the app graph in the same tx as createBlank, before the borrower/declarations rows were flushed → TransientPropertyValueExcept...

Kamo·3mo ago
Featurekamo-shared-library

Borrower loan-party ownership on AppMortgageService

Adds the ownership primitives for borrower self-service (a borrower is a plain org Member with no operator LOS rights): - createBlankOwnedByMember(orgId, member...

Kamo·3mo ago
Featurekamo-shared-library

Real deep-merge for org program-ruleset overrides (doc03 §9 Phase 0)

Replaces the M2 last-write-wins mergeOverlay placeholder (which silently discarded the authoritative baseline on any org override) with a recursive JSON deep-me...

Kamo·3mo ago
July 4, 2026
Featurekamo-shared-library

MlosExtractedCandidate staging entity for the ingestion pipeline (D48)

The terminal per-field output of MLOSIngestionService's parser: a staged, reviewable extraction candidate (segment/source-doc FK, targetEntity, fieldPath, cellR...

Kamo·3mo ago
Featurekamo-shared-library

Isolated best-effort profile write-back for legal-wall paths (D47)

mergeFactsBestEffort runs the enrichment write-back in its OWN transaction (REQUIRES_NEW) so a failure can never roll back the caller's transaction — the safe w...

Kamo·3mo ago
Featurekamo-shared-library

State-based member licensing + lead-acceptance gate

Reuse mlos.legal StewardLicense as the single per-member/per-state NMLS registry (add activelyProvidingBusiness). Add member-level Member.nmlsId. Add General-Pe...

Kamo·3mo ago
Featurekamo-shared-library

Add importable `source` field to CreateLeadRequest + persist it in createLead

The Lead has a free-text `source` (shown/edited on the lead detail page) but it was not importable — CreateLeadRequest had no source field, so createLead never ...

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