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...
Emit lender brand + disclosure fields into per-org config.json
Two changes that finish the kamo-los borrower-facing branding pipeline: 1. OrganizationController gains a public GET /api/security/org/domain/{host} endpoin...
Add borrower-facing brand + disclosure fields to Organization
Seven new nullable columns powering the lender-branded surfaces in kamo-los's borrower app: - TAGLINE — marketing line shown on the brand-intro spl...
node-config: raise k1m1 kubelet max-pods 110 -> 200
Default RKE2 max-pods=110 was being hit, blocking kamolos rolling-update deploys (maxSurge:1,maxUnavailable:0 needs slot to create new pod before killing old; d...
MortgageConnectController — connections + verified-facts + reconcile endpoints
Exposes the connect-first capture surface at **************** - GET/POST /connections + POST /connections/{id}/complete - GET/POST /verified-facts + POST /verif...
Connection + VerifiedFact foundation for connect-first capture
Adds the M3a backend foundation for vendor connections and provenance-tracked verified facts. Stub-only end-to-end — real vendor SDK wiring (Plaid, Persona, ATT...
Add MortgageProgramController — list programs, set persona, set selected program
Add setPersona + setSelectedProgramCode methods
Bump for kamo-shared-library 1.5.0 snapshot refresh (M2 programs catalog)
Bump for kamo-shared-library 1.5.0 snapshot refresh (M2 programs catalog)
Bump for kamo-shared-library 1.5.0 snapshot refresh (M2 programs catalog)
Bump for kamo-shared-library 1.5.0 snapshot refresh (M2 programs catalog)
Bump for kamo-shared-library 1.5.0 snapshot refresh (M2 programs catalog)
Bump for kamo-shared-library 1.5.0 snapshot refresh (M2 programs catalog)
Bump for kamo-shared-library 1.5.0 snapshot refresh (M2 programs catalog)
Bump for kamo-shared-library 1.5.0 snapshot refresh (M2 programs catalog)
Bump for kamo-shared-library 1.5.0 snapshot refresh (M2 programs catalog)
Bump for kamo-shared-library 1.5.0 snapshot refresh (M2 programs catalog)
ProgramSeederRunner - seed 17 baseline LoanProgramCode programs (idempotent)
Repositories, DTOs, ProgramService (read-only catalog with naive overlay merge)
Drop duplicate IS_ACTIVE column; rely on EmbRecordState.isActive
Add lenderModel column (additive; null = BROKER default at app layer)
Add persona + selectedProgramCode columns (additive)
Add Program + OrgProgramOverride entities (catalog + per-org overlay)
Зворотній зв'язок (Голоси): вводити маркер LOS
Цей ревертори комітують ****************************************************************************************************************************************...
Додати кредитну особу
Add Property entity
Add Borrower entity
Add LoanApplication aggregate root entity
Add LOS enum types (status, role, persona, program, lender model)
Document myloan alias for KamoLOS
Adds `myloan` to the SUBDOMAINS recognition list and rewrites the comment to make the list's purpose explicit (it's documentary; the dynamic Traefik log scan is...
Сервісний працівник обходу для вкладення + вхідні зображення
Натискання кнопки <a завантажити> рядок навігації на файл замість завантажити його. Кожен працівник служби електронної пошти переймався /api/email/* GET, включа...
Resolve cid: inline images at sanitize time to stop signature flicker
Cid: rewriting was happening in a post-commit useEffect, so the sanitized HTML hit the DOM with literal src="cid:..." and the effect mutated each img on the nex...
Expose Prometheus metrics endpoint
Adds micrometer-registry-prometheus and configures management.endpoints to expose /actuator/prometheus alongside health/info. Required so the counters/timer add...
Micrometer counters/timer for transitions, conditions, webhooks
LoanPipelineService increments los_transitions_total{from,to} per successful transition. LoanConditionService increments **************** for cleared/waived. We...
Surface previousMilestoneSha256 in pipeline timeline
The hash-chain link is rendered as a small monospaced 'prev <hash>' chip next to the existing snapshot hash, with the full value in the title tooltip. No new tr...
Hash-chain LoanPipelineMilestone rows for tamper detection
LoanPipelineMilestone gains PREVIOUS_MILESTONE_SHA256. On every transition, LoanPipelineService computes the SHA-256 of the previous milestone's canonical form ...
Surface HMDA LAR validation issues in the UI
HmdaLarRecordDTO now carries an issues array; HmdaLarClient renders: - an amber banner above the table summarising rows-with-issues (Σ errors / Σ warnings) ...
GET /mortgage-apps/hmda/lar/issues count summary
Aggregates validation issues across the LAR for the given year and returns {errors, warns, rowsWithIssues} so the UI can render a one-line banner before the ope...
HMDA LAR pre-export validation
New HmdaLarValidationIssue DTO (ERROR/WARN severity, field name, message). HmdaLarService now annotates each row in buildLar() with a list of issues covering th...
Unify all dashed empty-state boxes into <EmptyState />
A dozen inline copies of "rounded-xl border-dashed border-white/10 bg-white/[0.015] …" across the section files, the kanban column, the HMDA LAR list, and the a...
Surface preTransitionLint warnings in TransitionDialog
Both TransitionDialog implementations (detail Pipeline section + kanban board) now fire the lint endpoint when the user picks a target status and render an ambe...
Expose GET ****************
Surfaces **************** as an advisory pre-flight check the TransitionDialog fires when the user picks a target status.
PreTransitionLint advisory for APPLICATION_TAKEN
New @Transactional(readOnly) method on LoanPipelineService returning a list of human-readable warnings for the APPLICATION_TAKEN target: missing SSN (last 4), D...
Global toast queue with provider + useToast hook
New ToastProvider at the layout level renders a Framer Motion stack of context-managed toasts and exposes a typed useToast() API (success/error/info/warn). Pipe...
Promote ModalShell/ModalActions and SaveSpot to shared modules
Eight section files plus the webhooks admin page each defined their own copy of ModalShell + ModalActions and/or a SaveSpot save-state chip. All now live in [ui...
Consolidate controller session/rights/response helpers in BaseLosController
Six LOS-area controllers (MortgageApp, MortgagePipeline, MortgagePricing, MortgageDisclosure, MortgageHmda, WebhookSubscription) each copied the same ~80 lines ...
Merge partial DTOs into local state, drop refetch-after-patch
Every edit-style autosave (name fields, employment, assets, liabilities, REO, declarations, military, HMDA demographics, originator) used to issue a full mortga...
Collapse pipeline kanban N+1 to a single grouped count query
listForOrganization() used to issue one condition-fetch per loan (201 queries at 200 loans). Now a single grouped JPQL aggregate keyed by loanFile.uid projects ...
Webhook consumer + worker config in configmap
Backs the JetStream durable consumer in WebhookDeliveryWorker. Env-var overrides for the durable name, deliver-policy (set to All to replay backlog one-time), m...