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

Remember Quick Tips open/closed per USER across all pages

The help column's visibility was stored in a single global localStorage key, so it wasn't scoped to the user. Introduce useQuickTipsVisible, keyed by user id (n...

kamo·2mo ago
FeatureSecurityService

Proactive checklist generation + pipeline doc summary

- Generate the scenario document checklist at APPLICATION_TAKEN (MortgagePipelineController transition hook) so it exists the moment a loan enters the pipelin...

Kamo·2mo ago
Featurekamo-internal

Standardize Quick Tips help column + de-slop reference page

- Rename the help side-column title to "Quick Tips" everywhere (SettingsView reads **************** whose value is now "Quick Tips"). - Add a shared HelpConte...

kamo·2mo ago
Fixkamo-internal

Settings topics are expand-only, not links

Settings topics (Essential Setup, CRM, Security, …) are group headers with no page of their own — only their sub-topics are real destinations. Drop the topics' ...

kamo·2mo ago
Featurekamo-internal

Nested sub-options so deeper items (e.g. Settings sub-topics) are reachable

The sub-option menu only rendered one level, so a sub-option that itself has sub-options (Settings topics → sub-topics) was inaccessible. - NavToolButton now r...

kamo·2mo ago
FixSecurityService

Member-vault upload was broken (access_level NOT-NULL)

The account-level imaging path had never actually run (0 vault Imgs in prod): uploadDocument was passed accessLevel=null. Pass CONFIDENTIAL for borrower PII (ID...

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

Clean rail alignment, uniform top-bar tiles, and replace Settings slide-out with a sub-option menu

- NavPri logo: the 56px tile made the top of the rail wider than the 44/48px options below it, and collapsed options rendered left-aligned. The logo now sha...

kamo·2mo ago
FixInitializerService

Mlos requirement single-live index keyed per-human (borrower_uid)

Drop the party-only **************** (it would reject a legitimate 2nd co-borrower requirement); create **************** on **************** Already applied to ...

Kamo·2mo ago
FixSecurityService

Satisfy-across confused-deputy IDOR + account party self-heal

- HIGH: satisfy-across gated on the path partyId but fanned out over the DOCUMENT's own party downstream; verify the document belongs to the authorized party ...

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

Member-configurable navigation — drag options between rail & top bar, expandable rail, per-member layout

Turn the two hardcoded navs (NavPri/NavTop) into a data-driven, per-member system. - Single nav registry (navRegistry) + pure resolver (resolveNavLayout) enfor...

kamo·2mo ago
FixSecurityService

Self-heal party links before enriched requirement read

listDocumentRequirements calls ensurePartyLinks so requirement rows always carry an accountBorrowerPartyId (the borrower upload/satisfy target).

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

Document vault tab — parties, requirements, satisfy/accept/reject

- AccountDocumentsTab: per-borrower-party view of the account's document vault and per-loan requirements. Upload once, satisfy every loan (satisfy-across); st...

kamo·2mo ago
FeatureSecurityService

Proxy the vault-backed requirement surface

- MlosDocClient: POST verbs (generate, satisfy, accept, reject, satisfy-across) + enriched loan/party reads over X-Internal-Auth. - MortgageAppController /{ui...

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

Convert account-merge + default-product inline strings to next-intl keys

White-label multitenant strings must be translatable. Moves the account-merge dialog/button and the Borrower Origination Web Portal default-product tooltips/sna...

kamo·2mo ago
Featurekamo-internal

Transaction drill-in drawer in the pipeline

Clicking a multi-loan deal opens a right drawer showing the group status + each member loan (borrower, property, loan status), each clickable through to the loa...

kamo·2mo ago
FeatureSecurityService

Transaction detail endpoint GET ****************

Returns one deal group's rolled-up summary + each member loan's AppMortgageSummaryDTO (drill-in for the per-transaction pipeline). Operator view or a party to t...

Kamo·2mo ago
Fixkamo-internal

Vendors-products — white-label default-product terminology, dialog option, FFA header

- Rename 'KamoMLOS' → 'Borrower Origination Web Portal' everywhere in the vendors-products UI (star tooltip, snackbars) — this is a white-label multitenant pr...

kamo·2mo ago
FixSecurityService

Default-product set failed — HQL bulk UPDATE disallows the vendor→org join

setDefault used a bulk 'update LeadVendorProduct ... where p.vendor.id in (subquery)' — Hibernate bulk updates reject the implicit association join, so the call...

Kamo·2mo ago
FeatureSecurityService

P4 member document vault backend (reusable docs across loans)

- MemberDocumentService: upload a doc ONCE at AccountBorrowerParty scope → ImageService creates an Img in the auto-created imaging-member-vault bucket *******...

Kamo·2mo ago
Featurekamo-internal

Per-transaction pipeline — list per deal, not per loan (owner req)

ApplicationsPipelineConsole now lists ONE row per LoanTransaction (its representative loan + any not-yet-grouped legacy loans), with a pinned 'Deal / Status' co...

kamo·2mo ago
Featurekamo-internal

KamoMLOS portal default-product designation in vendors-products (#11)

A star toggle on each product designates the org's single KamoMLOS portal auto-assign product (single-active). Gated via GET /lead-vendors/mlos-readiness: shown...

kamo·2mo ago
FeatureSecurityService

P3 default-product designation backend (single-active) + operator readiness

- **************** designates ONE LeadVendorProduct as the org's KamoMLOS portal auto-assign product; single-active (demotes any other, org-scoped, fail-close...

Kamo·2mo ago
FeatureSecurityService

P2c leads-first portal backend

- MortgageVerticalResolver: resolves an org's RESIDENTIAL_MORTGAGE LeadMarket, MORTGAGE CommerceMarket, designated default LeadVendorProduct, and EFFECTIVE PO...

Kamo·2mo ago
Featurekamo-internal

Account-merge admin UI (MERGE_ACCOUNTS)

AccountManager gains a Merge Accounts action (gated by **************** select exactly two customer accounts, pick the survivor, optionally keep the duplicate's...

kamo·2mo ago
FeatureSecurityService

P2a account-merge tool + P2b transaction backend

P2a — admin account merge (owner requirement A), gated by MERGE_ACCOUNTS: - AccountMergeService: reparents EVERY account_uid child via native UPDATE (bypasses J...

Kamo·2mo ago
ChoreInitializerService

Scan **************** repos (P1 transaction entities)

Kamo·2mo ago
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
FixSecurityService

Borrower self-create = createBlank then stampOwnershipAndGet (two txs)

Sequence the borrower ownership stamp as a separate service call after createBlank commits, so the new borrower/declarations graph is flushed before the account...

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
FeatureSecurityService

Borrower self-service authorization (loan-party IDOR guard)

A borrower is a plain org Member with no operator LOS rights; they may act on the ONE application they are a party to — and only that one. Layered guard: operat...

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

Borrower-journey column + intake filter in the loan pipeline

The sub=pipeline datagrid (ApplicationsPipelineConsole) now shows pre-app-taken borrower-journey progress so org employees can review an application's status as...

kamo·2mo ago
FeatureSecurityService

Pre-app-taken borrower-journey endpoint for the operator pipeline

New GET **************** (LOS_VIEW_PIPELINE) returns per-DRAFT borrower-intake progress so pipeline stewards can watch a loan take shape while the borrower is s...

Kamo·2mo ago
FeatureSecurityService

LOS controllers accept per-borrower *** sessions (doc03 §0.1)

BaseLosController now resolves the caller's session via CallerSessionResolver (X-OTK-validated attribute FIRST — operators/BFF unchanged — then a first-party **...

Kamo·2mo ago
FeatureSecurityService

LOE-Core server-authoritative program scorer + /programs/scores (doc03 §9 Phase 2)

Ports the KamoMLOS client scorer (lib/los/scoring.ts) into SecurityService LOE-Core: LoeCoreScorer scores the org's effective program catalog (baseline deep-mer...

Kamo·2mo ago
FeatureInitializerService

Seed the 17 real program rulesets (doc03 §9 Phase 1)

Migrates the authoritative ProgramRuleset data from the KamoMLOS client ruleset files into **************** (17 codes, extracted faithfully) and replaces Progra...

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

State Based Licensing section on member my-profile

New SectionCard (NMLS ID + per-state licensed table with actively- providing checkbox and renewal/expiry dates, renewal<=expiry validated). Gated by ***********...

kamo·2mo ago
FeatureSecurityService

Member state-licensing API + license-aware lead availability

Add MemberStateLicensingController (GET/PUT /api/security/members/{id}/ state-licensing) gated by STATE_LICENSING_* rights with server-side renewal<=expiry vali...

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

Remove Vendor Product ID from mappable fields

The vendor product is selected once at the run/template level (Configure step) and applied to every row; the backend importer already ignores a mapped vendorPro...

kamo·2mo ago
Featurekamo-internal

Add Source to the mappable lead fields

Lead 'source' is shown on the lead detail page but was missing from the import field list; add it (path 'source') now that the backend importer + CreateLeadRequ...

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