KamoCRM

Live Change Log

See what we're building, in real-time. Every feature, fix, and improvement shipped across the platform.

May 29, 2026
Fixkamo-shared-library

Rename LoanRepository → PersonalLoanRepository

Spring Data JPA derives the repository bean name from the interface's simple class name, not from the @Repository("...") qualifier value, so the prior workaroun...

Kamo·34m ago
Fixkamo-internal

Add /commerce/personal-loans/new entry + polish market-scoped offer page

The QuickActionsBar "New Loan Offer" action pointed at /commerce/personal-loans/new but no such page existed, so Next.js routed to the dynamic [loanId] page wit...

kamo·1h ago
Refactorkamo-internal

Full-width enterprise polish across 10 pages

Adopts the modern enterprise pattern (gradient header + breadcrumbs + back arrow + full-height flex shell + card-grouped content on light gray canvas) used else...

kamo·2h ago
ChoreSecurityService

Trigger rebuild to pick up renamed PersonalLoan entity

The SecurityService image at 761019b was built before shared-lib d14dc54 (which renamed the personal-loans Loan entity to JPA name "PersonalLoan" to resolve the...

Kamo·17h ago
Featurekamo-internal

Expose PERSONAL_LOANS in commerce-type & engagement pickers

Adds PERSONAL_LOANS to the COMMERCE_TYPES and EngagementType lists so the new KamoLOS personal-loans market can be created from the markets/new and markets/edit...

kamo·17h ago
Fixkamo-shared-library

Avoid Loan / LoanRepository collision with mortgage app

KamoInitializerService failed to boot because two @Entity classes named 'Loan' and two repository classes named 'LoanRepository' both wanted to register the sam...

Kamo·17h ago
Featurekamo-internal

T6+T7 frontend polish + org reports + auto-pay UI

Frontend polish (T6): - New lib/format.ts: locale-aware Intl helpers — formatCurrency / formatDate / formatDateTime / formatPercentBps. Replaces hardcoded t...

kamo·18h ago
Featurekamo-shared-library

LoanChargeOffReasonCode (IRS 1099-C box 6) + audit search

- New LoanChargeOffReasonCode enum (A_BANKRUPTCY..H_OTHER) per IRC §6050P - Loan.chargeOffReasonCode column - **************** multi-filter @Query for regulator...

Kamo·18h ago
Featurekamo-shared-library

****************

Used by **************** to reactivate an existing PAUSED plan instead of creating a duplicate row that orphans the paused one.

Kamo·18h ago
May 28, 2026
Featurekamo-internal

/api/los proxy HMAC-signs identity headers

When LOS_PROXY_HMAC_SECRET env var is set, the proxy now computes **************** secret) and sends X-Proxy-Signature + X-Proxy-Timestamp alongside the X-Org-I...

kamo·19h ago
Performancekamo-shared-library

Paged repo queries + countByStatus for hot paths

- LoanRepository: countByStatus / countByOrganizationAndStatus + Page<Loan> findByStatus(...) / **************** / **************** + **************** for...

Kamo·19h ago
Fixkamo-internal

Force email link clicks via capture-phase navigation

Reports show clicks on email-preview links silently doing nothing — hover shows the URL, no console errors, but the navigation never fires. That fingerprint poi...

kamo·19h ago
Featurekamo-internal

Org-side loan detail page + adjustments/promise API

- losApi: manualAdjust, waiveFee, promiseToPay - **************** full org-operations page * 4-up balance cards (current, principal, interest, next due) * M...

kamo·20h ago
Featurekamo-shared-library

LoanOrgStripeConnect + Loan tax/accrual fields + hot indexes

- New LoanOrgStripeConnect entity (one-per-org, holds stripeConnectedAccountId + Connect onboarding capabilities) + repository - Loan: stripeCustomerId (lazy-...

Kamo·21h ago
Fixkamo-internal

Let native target=_blank open the new tab, drop window.open

The previous fix intercepted the click and called window.open() — but popup blockers and extensions can block window.open even from a direct click handler, so t...

kamo·21h ago
Featurekamo-internal

P1 frontend — charge-off queue + audit timeline

- losApi: chargeOffQueue / confirmChargeOff / auditByLoan - **************** D120 review queue page; org user reviews each loan, adds a reason, clicks Confirm...

kamo·22h ago
Refactorkamo-shared-library

Loan.engagementUid → Long + originatingOrderUid

Engagement extends BaseEntity (Long PK) so engagementUid must be Long, not UUID — this is consistent with the existing AgreementDTO / WorkOrderDTO pattern of "L...

Kamo·22h ago
Featurekamo-internal

P0 hardening — forms, session resolve, payment methods

Forms (org-side): - **************** and /{productUid} edit pages - New LoanProductForm: basics / pricing / limits / terms / compliance sections, kind-aware...

kamo·22h ago
ChoreSecurityService

KamoLOS → KamoMLOS in comment references

The /Next.js/KamoLOS project (mortgage applicant flow) was renamed to KamoMLOS so the KamoLOS name could be reused for the new personal-loan service. These are ...

Kamo·22h ago
ChoreKlusterServices

Update subdomain map comment KamoLOS → KamoMLOS

The /Next.js/KamoLOS project was renamed to KamoMLOS (Kamo Mortgage Loan Origination System). The KamoLOS name is now used for the new personal-loan service. Th...

Kamo·22h ago
Featurekamo-internal

/api/los/* proxy route → KamoLOS via k8s DNS

Mirrors the /api/billing/[[...path]] BillingService proxy: - *** session resolved via Redis; X-Org-Id + X-Member-Id forwarded - /api/los/webhooks/* skip session...

kamo·22h ago
Featurekamo-internal

Add PERSONAL_LOANS commerce type front-end

- engagementTypeLabels: extend EngagementType union + vocabulary - MarketCardGrid: PERSONAL_LOANS color (#14b8a6) + Landmark icon + counter - Market detail page...

kamo·22h ago
Fixkamo-internal

Email-preview links open in a new tab again

The sanitizer already sets target="_blank" on every link, but the document-level click handler in NavigationInterceptor was firing for every link click — includ...

kamo·22h ago
Featurekamo-shared-library

Add PERSONAL_LOANS commerce type + entity package

- CommerceType.PERSONAL_LOANS + parallel EngagementType + vocabulary - BuiltinVendorCategories entries for personal-loan vendors - 15 personal_loans JPA entitie...

Kamo·23h ago
May 21, 2026
Featurekamo-internal

Photo-album uploads use the same WS pipeline as the Uploads tab

Extracts the doc-manager upload pipeline (hashing → dedup check → register-or-upload → WebSocket-driven conversion) into a reusable useImagingUploads hook. The ...

kamo·1w ago
Fixkamo-internal

Add /api/security/mortgage-apps catch-all proxy — 404 root cause

The kamo-internal app proxies every Java backend path through an explicit Next.js route handler (one per top-level segment: /commerce-markets, /pos, /leads, …)....

kamo·1w ago
Fixkamo-internal

/pipeline/{vertical}/{x} 404s — namespace was renamed to /commerce/

The /pipeline namespace has no routes in this app — every link going to /pipeline/applications/{x}, /pipeline/orders/{x}, /pipeline/engagements/{x}, /pipeline/s...

kamo·1w ago
FeatureSecurityService

Backfill program offerings for existing mortgage markets on boot

DataLoader now calls **************** after the AppMortgage-engagement backfill. Sweeps every existing MORTGAGE CommerceMarket and ensures its program Offerings...

Kamo·1w ago
Featurekamo-shared-library

Bootstrap mortgage program offerings on market create + boot backfill

When the user creates a CommerceMarket with commerceType=MORTGAGE — via the Markets & Fields settings tab — the market needs program Offerings under it for down...

Kamo·1w ago
FixSecurityService

Detach before replacing features collection in /org/domain

The previous fix wired the applied-model projection into **************** but called org.setFeatures(projected) on the still-managed entity. The Organization.fe...

Kamo·1w ago
Fixkamo-internal

Remove standalone Applications icon — LOS lives under Commerce

The mortgage application pipeline is one vertical of the commerce system, not a top-level nav. Loan officers, processors, and underwriters reach it via Commerce...

kamo·1w ago
FixSecurityService

Resolve ambiguous /org/domain handler — Commerce nav was disappearing

SecurityController had a second **************** that collided with **************** Spring rejected the request with "Ambiguous handler methods mapped" → 500 →...

Kamo·1w ago
Featurekamo-internal

Duplicate binders so users can fork without affecting the original

Adds a "Duplicate" action accessible from the binder list's context menu and from a new button in the editor header. The duplicate starts from the source binder...

kamo·1w ago
FeatureDocsService

Add POST ****************

Deep-copies a binder the requester can see (owned, shared, or template) into a fresh binder owned by the requester. Copies every item (DOC, SEPARATOR, GENERATED...

Kamo·1w ago
Featurekamo-internal

Mortgage Programs toggle + MORTGAGE engagement deep-link

- MortgageProgramsPanel now ships a real Switch on each program card with optimistic update + rollback on failure. Toggling a program calls PUT ************...

kamo·1w ago
FeatureSecurityService

PUT /programs/{code}/active + deprecate legacy mortgage POS endpoints

- MortgageProgramController gains PUT **************** with body {"isActive": bool}, gated on LOS_TAKE_APPLICATION. Delegates to **************** which upse...

Kamo·1w ago
Featurekamo-shared-library

Per-org enable/disable + deprecate legacy commerce-only mortgage path

- **************** upserts an OrgProgramOverride row with recordState.isActive=desired; listForOrg now AND's the base program's active flag with the overrid...

Kamo·1w ago
Chorekamo-internal

Show Engaged / Committed badge on application cards

Each mortgage card in /applications now renders a tiny chip next to the pair count: green "Committed" when the loan has a Commitment (funded), indigo "Engaged" ...

kamo·1w ago
ChoreSecurityService

Backfill mortgage engagements on boot

DataLoader now invokes **************** after rights sync and System User backfill. Idempotent — once an app is attached to its engagement+intent, subsequent bo...

Kamo·1w ago
Chorekamo-shared-library

Polish — backfill, delete cleanup, amount sync, appUid links

- **************** heals AppMortgages predating the wiring; called from SecurityService DataLoader. - AppMortgageService.delete cancels the engagement+intent ...

Kamo·1w ago
Fixkamo-internal

Flatten add-item menu so Generated Docs are reachable

The "Add Generated Doc" submenu approach didn't work: clicking the menu item closed the parent menu, which unmounted the MenuItem before the nested Menu could a...

kamo·1w ago
Featurekamo-internal

Show Commerce context + Programs settings tab

- /applications hero now reads "Commerce > Residential Mortgages · URLA 2021" so staff see mortgage as one vertical of the commerce module, not a standalone...

kamo·1w ago
FeatureSecurityService

Enforce LOS rights + /commerce/engagements endpoint

- MortgageAppController: every endpoint now gates on RoleRightType. Reads require LOS_VIEW_PIPELINE; creating a new application requires LOS_TAKE_APPLICATIO...

Kamo·1w ago
Featurekamo-shared-library

Wire URLA mortgage into Engagement/Intent/Commitment

Mortgage is one vertical of the commerce system — alongside retail, rental, service, subscription, and procurement. This wires the URLA-fidelity mortgage stack ...

Kamo·1w ago
Fixkamo-internal

Stop double-appending render query string; add share + meta dialogs

Render fix: - **************** was manually appending ?inline=true to apiPath, but forwardToApi already preserves the incoming query string. The duplicated quer...

kamo·1w ago
FixDocsService

Include com.kamo.z.shared.binder in @EnableJpaRepositories

DocsService boots with an explicit basePackages list, not classpath scanning, so BinderRepository wasn't being discovered — startup failed with "No qualifying b...

Kamo·1w ago
Featurekamo-internal

Add Organizer tab with binders, separators, generated docs

Adds the Organizer to the doc manager: - New "Organizer" tab (position 4) with a binder list + editor split view; existing tabs shift right - "Add to Organizer"...

kamo·1w ago
FeatureDocsService

Add Organizer backend — CRUD, render, generated docs

New REST surface under /api/docs/binders for the Organizer feature: - BinderController: CRUD, item add/update/remove/reorder, share, render - BinderService: org...

Kamo·1w ago
Featurekamo-shared-library

Add Binder/BinderItem/BinderShare entities and repositories

Adds the persistence layer for the new doc-manager Organizer feature: - Binder (Long id, owner member, org-scoped, isTemplate, binder-wide modifierJson) - Binde...

Kamo·1w ago
May 18, 2026
FeatureInitializerService

Migration for borrower-facing brand + disclosure columns

Adds the seven nullable columns the kamo-shared-library Organization entity now declares (TAGLINE / NMLS_ID / PHONE_SUPPORT / EMAIL_SUPPORT / EQUAL_HOUSING_DISC...

Kamo·1w ago
Live Change Log | KamoCRM | KamoCRM