KamoCRM

Live Change Log

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

17,425
Total Changes
5,931
Features
5,266
Fixes
30
Projects
Filter by project
All Projects17,425AIService242APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService593RAGService79SecurityService1,840TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,337kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,645kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,254Feature5,931Fix5,266Other994Performance165Refactor278Revert23Style42Test159Upgrade1
July 6, 2026
Fixkamo-internal

Use the lightning-bolt icon for Leads to match the /leads UI

The Leads option used AccountTreeIcon; the /leads "Leads Available" actions use BoltIcon (@mui/icons-material/Bolt). Switch the registry's Leads icon to Bolt so...

kamo·3mo ago
Featurekamo-internal

Document-collection progress column

Per-loan doc progress (accepted/total + a colored bar, 'N from borrower' / in-review / complete) in the applications pipeline, fetched in one batch by loanFileU...

kamo·3mo ago
Fixkamo-internal

De-slop remaining Quick Tips content + make leads tips collapsible

- security, operations, account, and CRM settings help columns: removed all emoji (💡 🚫 ⏳ ✅ 🌍) and rainbow-coloured bullets; every list marker is now one ...

kamo·3mo ago
FixSecurityService

Pipeline per-transaction grouping was broken

TransactionSummaryDTO.loanUids carried LOAN-FILE uids, but the pipeline console keys rows on the APPLICATION uid — so grouping silently fell back to one row per...

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
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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·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-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·3mo 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·3mo 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·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-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·3mo 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·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-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·3mo 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·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
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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo 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·3mo ago
FeatureSecurityService

P2c leads-first portal backend

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

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

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

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

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