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 6, 2026
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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo 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·2mo ago
Featurekamo-shared-library

Canonical scenario-fact spine — genesis deriver + factsJson populate + write-back + overlay matcher (D45)

D1/D45 broadens BorrowerScenarioProfile consumption. Populates the dormant factsJson and makes it the shared source of truth for borrower/loan facts: - Scenari...

Kamo·2mo ago
Featurekamo-shared-library

VersionedProfilePolicy interface for effective-dated policies

Pricing/Capital/ServicingPolicy implement it so one publish routine drives the single-active demote-then-insert versioning.

Kamo·2mo ago
Featurekamo-shared-library

LOAN doc-type guard (D2), sign-convention adapter (D3), per-org governor config (D4)

- ImageService: require a docType for ImageAssocType.LOAN uploads (LOAN-scoped; ACCOUNT/SERVICE_* unchanged). - SignedAdjustmentAdapter: the rule-7 adapter/co...

Kamo·2mo ago
Refactorkamo-shared-library

Generic MortgageProviderConfig replaces AUS-only config (D40)

One integration-credential store keyed by VendorCategory+vendorKey (credit, AUS, eSign, closing-docs, title, flood, …) behind a single Integrations tab — the Mo...

Kamo·2mo ago
Featurekamo-shared-library

Per-program investor delegation (D39) — new InvestorDelegation child

Delegation is granular per (investor, program), not a coarse InvestorConfig boolean. Adds DelegationAuthority {DELEGATED, NON_DELEGATED}, the InvestorDelegation...

Kamo·2mo ago
Featurekamo-shared-library

[AUS] AusConnectionConfig entity — per-org per-market DU/LP/GUS connections

Owner directive #6: each org configures its own AUS vendor APIs (Fannie DU / Freddie LP / USDA GUS) per mortgage market, in settings→commerce. Foundational data...

Kamo·2mo ago
Featurekamo-shared-library

[ImageAssocType] append LOAN — images attach to a loan, doc type required

Owner directive: images can be attached directly to a mortgage loan, always with a relevant doc type. Append LOAN to ImageAssocType (id 11, bucket imaging-loans...

Kamo·2mo ago
Featurekamo-shared-library

[sign-convention] money sign-convention validators + Adjustment model

Per the owner's canonical rules. Core domain money never encodes meaning in a sign: - **************** / requirePositive — assets, receivables, liabilities, p...

Kamo·2mo ago
Featurekamo-shared-library

[§5.A] canonical BorrowerScenarioProfile + ProductDiscoveryGate

Per the owner's §5.A directive: ScenarioSupportPolicy must consume a canonical Borrower Scenario Profile generated from normalized URLA data, never raw forms/UI...

Kamo·2mo ago
Featurekamo-shared-library

[12] §5.A ScenarioSupportPolicy deferral-interlock resolver (D36)

doc 12 line 235 P0 — 'the cheapest highest-leverage lifecycle addition'. A legal-wall at product-discovery that keeps **************** from silently running as ...

Kamo·2mo ago
Testkamo-shared-library

[11] doc 11 §6.2 single-active enum↔DDL drift guard

**************** is derived from enum metadata, but the DB backstop is four partial-unique indexes in KamoInitializer whose type IN(...) lists HARD-CODE the sin...

Kamo·2mo ago
Refactorkamo-shared-library

Use the simple entity name in the calibration-count JPQL (D32)

countCalibrationSamples referenced AiDecision by fully-qualified class name in the FROM clause; Hibernate resolves that, but every other @Query in the shared-li...

Kamo·2mo ago
Testkamo-shared-library

Update CanonicalTemplateLoaderTest for the change-password template set

Commit 7c6b20f (change-password support) added the canonical PASSWORD_CHANGED template and reworded EMAIL_VERIFICATION's expiry variable ({{expiryMinutes}} → {{...

Kamo·2mo ago
Featurekamo-shared-library

[12] §5.C AutonomyGovernor — kill-switch + force-steward-until-calibrated (D32)

The DecisionGate already carries a GLOBAL static force-steward @Value, but §5.C needs two things it cannot give: a kill switch flippable WITHOUT redeploy (so DB...

Kamo·2mo ago
Featurekamo-shared-library

Unified timeline SPI + entities on the media schema

Reuse MediaSession/MediaObj to hold social posts & replies (post=MediaObj, comment=child MediaObj via MediaObjMsg.parent, provider linkage on MediaObjSocialRef)...

Kamo·2mo ago
Featurekamo-shared-library

IDENTIFIER_REGISTERED event type (mlos.identifier.registered)

The initial-registration counterpart to IDENTIFIER_SUPERSEDED — the durable signal downstream mirrors / global-resolution caches consume when a native identifie...

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

Marketing rights group — ServiceType.MARKETING + 6 rights (ids 150-155)

VIEW_MARKETING, VIEW_SOCIAL_MEDIA, MANAGE_SOCIAL_MEDIA, VIEW_MATERIALS, VIEW_REFERRAL_CODES, MANAGE_REFERRAL_CODES. MARKETING is a rights-grouping module (enabl...

Kamo·2mo ago
Featurekamo-shared-library

AUS compliance event types - downgrade.forced, waiver.recorded, validation.recorded

The [10] compliance-validator unit's durable signals (D22/D24): the FHA TOTAL forced-downgrade decision-of-record, and the append-only waiver/data-validation li...

Kamo·2mo ago
Featurekamo-shared-library

Lock-lifecycle outbox event type + BusinessDayCalendar promoted to mlos.compliance

- **************** (mlos.pricing.lock.lifecycle): one event type for the whole post-lock lifecycle; the specific MlosLockEventType rides in the payload. The...

Kamo·2mo ago
Fixkamo-shared-library

MlosConfigChangeLog date_created — drop @ColumnDefault (duplicate default)

Both @ColumnDefault("now()") and columnDefinition="TIMESTAMP DEFAULT now()" made Hibernate emit 'TIMESTAMP DEFAULT now() default now()', which CockroachDB rejec...

Kamo·2mo ago
Featurekamo-shared-library

Config/activation layer + decision-gate hardening + DecisionSpine provenance + SMS template entities

- [04] mlos.config: **************** enums + BusinessModelConfig/ **************** entities+repos + ScreenState/ModuleState/ ModuleKey/StewardQueueKey + Act...

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