Rebuild for shared-lib client-only spring-ws (55eae0a) — clears the multi-servlet crash-loop
Spring-ws CLIENT-ONLY — the server starter made every consuming service multi-servlet
**************** auto-registers a MessageDispatcherServlet in EVERY service that depends on shared-lib; with Spring Security 6 that breaks any string requestMat...
Closing eSign through the NATIVE engine — envelopes actually send now
Recording a disclosure e-sign envelope was v1 metadata-only. Now, when the tenant's ESIGN vendor rail resolves to KAMO_NATIVE (per-market integrations config — ...
Non-metered internal platform-envelopes endpoint — DISCLOSURE-context signing rail
Platform-internal envelopes (mortgage disclosure/closing signing) are product, not the tenant's programmatic API usage: tagged MANUAL so completed signatures ne...
LOAN STATUS UPDATE template ya canonical - mkopaji aliarifiwa katika kila hatua ya mkopo
UpdateLoanFile PATCH haipaswi kufuta maeneo yasiyokuwepo - kiraka cha hali tu kilichokatwa nambari ya mkopo / tarehe
Any partial loan-file patch (the portal's submit sends only {statusId:2}) unconditionally overwrote loanNumber, channelId, and every lifecycle date with null. G...
Never render literal "null" in lead view header name
The header and headerName memo built the contact name with template literals, so a NULL middle/last name stringified to the word "null" (e.g. "Sage null"). Buil...
Leads-first resume rail — signed magic links, contact recovery, lead snapshot
- PortalResumeService: 30-day HMAC token (PRESUME|guid|orgId|exp, keyed off the cluster internal.auth.secret — no new secret); mails RESUME_PORTAL_LINK. - POS...
RESUME PORTAL LINK template ya canonical - kiungo chako cha uchawi kuendelea kwenye kifaa chochote
Rebuild for shared-lib GeoLite bounded lookup (2-4ms hit+miss)
Picks up kamo-shared-library 011a73e — GeoLookupService's findByIpInRange now LIMIT-1-bounded instead of scanning to exhaustion on gap/high IPs (measured 5-13s ...
Guard /internal/voip with InternalAuthFilter as documented — it 401'd on session auth
VoipInternalSyncController always documented InternalAuthFilter as its guard, but /internal/voip was never in PROTECTED_PREFIXES nor excluded from the OTK sessi...
VoipGlobalSyncJob stamps the MLOS internal-auth secret VOIP actually validates
After the hostname fix the job 401'd: VOIP's InternalAuthFilter checks the mlos-internal-auth value, but the job read internal.auth.secret, which in DaemonServi...
VoipGlobalSyncJob targeted a nonexistent host — kamovoip-service, not voip-service
Every minute the job failed DNS on **************** the actual Service (and what StewardNotifier already uses) is kamovoip-service. Fixed the configmap default ...
Expose US state/region from GeoLite lookups
GeoLookupResult gains subdivisionCode/subdivisionName (GeoLite2 subdivision_1 = US state incl. DC; territories PR/GU/VI/AS/MP arrive as countryCode with no usab...
Bound IP block lookup kwa mstari mmoja indexed
findByIpInRange's two-sided range predicate forced CockroachDB to scan every block with networkStart <= ip whenever the IP fell in a gap (private/bogon/ spoofed...
Uzazi wa geolite config chini ya daemon: hivyo sync ya kila wiki anaendesha
Commit 53eed7b re-parented the geolite block under internal: while the code reads daemon.geolite.* — with SPRING_CONFIG_LOCATION replacing classpath defaults, G...
Anonymous GET /portal/assigned-lo - Kukubali utambulisho wa LO kwa uongozi wa guid
Inawezesha kadi ya juu ya kulia ya LO wakati LO inakubali Kiongozi (pre-login, kabla ya matumizi): guid header + org jeshi → kuongoza → Kwa mfano, Muhammad Bin ...
Boot crash — Ant matchers for the multi-servlet context (spring-ws /services/*)
MVC-implicit string maombiMatchers ni kukataliwa na Spring Usalama 6 mara moja MeridianLink ushirikiano MessageDispatcherServlet inajiunga na DispatcherServlet ...
Rebuild on shared-lib resolver hotfix (boot crash: LenderProfileRepository)
MortgageProviderResolver deps → ObjectProvider - ilikuwa ajali-looping Media Service
@Huduma ni sehemu ya huduma ya com.kamo, lakini mlos. wa wa wa wa wa wa wa wa wa wa @EnableJpaRepositories wanajiandikisha. Deps ngumu ya kujenga iliua Media Se...
'Meet your loan officer' — the borrower hears the moment their lead is accepted
Kwa kukubali (ASSIGNED), barua pepe bora ya MEET YOUR LO kwa mkopaji wa kuongoza wa mikopo: kukubali LO Jina halisi + NMLS + barua pepe + kiungo kinachoendelea....
MEET_YOUR_LO canonical template — borrower intro when an LO accepts their lead
Preferred name fills AKA+first; pool entry publishes the realtime lead event
(1) The funnel's preferred name now writes nameFirstAKA AND stands in for nameFirst until the legal name arrives (owner rule) — it was landing on first name onl...
CreateFromLead saved Declarations against a transient Borrower — save the app graph first
Same latent TransientPropertyValueException the blank create() fixed at its first caller; createFromLead's first real caller is the portal promote seam (caught ...
The lead→application conversion seam — POST /portal/promote
The funnel was a closed loop: nothing ever converted the portal lead into an application (blank mints only — no sourceLead, no seeded fields, no LO inheritance)...
AccountGuid insert always violated FIRST_SEEN_AT NOT NULL — ZERO portal leads ever created
Hibernate includes every mapped column in INSERT (no @DynamicInsert), so the unset timestamp went out as explicit NULL and the DB default never applied. Every v...
Member tooltip shows last active datetime + time ago
Interaction Center member rows now show a two-line tooltip: availability status plus when the member was last active — 'Active now' while online, otherwise 'Las...
Nyakati za mwisho za kuonekana + mwisho wa wingi
Picha zote na Wizara ya Mambo ya Ndani ya Nchi. .................................................................... Alikumbuka wakati wa uhai wake. Picha zote ...
Borrower pricing-quote endpoint — party-gated, integration-config-gated
POST **************** caller must be a loan party (or pipeline steward); resolves the tenant's PRICING_PPE integration — NOT_CONFIGURED / EXTERNAL_VENDOR_PENDIN...
Integrations-status endpoint — the portal's honest view of the org's vendor wiring
GET **************** per-category **************** runtimeVendor from the market integrations config via the runtime resolver. Session-gated; no secrets.
The doc-04 vendor RUNTIME — MortgageProviderResolver + VendorTypeBridge
The integrations tab wrote MortgageProviderConfig rows nothing consumed at runtime. Resolver: (org, VendorCategory) → activation-gated, profile-scoped, first-en...
Reply-all no longer CCs yourself; blank lines survive send
Reply All excluded only activeMailbox.emailAddress, which is unset on the default personal mailbox view — so your own address (from the original To:) landed in ...
AI vision document extraction — docs → org's vision provider → VerifiedFact(OCR)
The first producer of VerifiedFactSource.OCR: POST **************** reads a vault document (bank **************** ID) with the ORG'S OWN configured vision provi...
Real verified-fact reconciliation — evidence facts now populate the URLA
Replaces the M3a log-only stub: asset.* facts (grouped per source document) become Asset rows and employment.* facts become Employment rows via BorrowerSectionS...
ClaimedFactsDTO carries the FULL mortgage lead (35 fields)
Adds the 16 fields the portal structurally couldn't send (monthlyDebts, taxes, insurance, HOA, currentPayment, sellerCredits, renovationCost, borrowerAge, isVet...
Company NMLS ID field in org Company Info
Edit + read row + hydration + PUT (nmlsId). Feeds the borrower portal footer trust pill and the originator projection's company NMLS.
NmlsId is patchable — the company NMLS finally has a write path
Organization.nmlsId (SAFE Act identifier feeding the originator projection's originatorOrgNmlsId and the borrower portal's verified-license pill) was readable e...
Mortgage fields as 3 column panes on the Client Lead Data tab (reuse form via layout prop)
Add layout?: 'tabs' | 'panes' to MortgageFieldsComponent (default 'tabs', byte-identical to the existing Mortgage Workshop rendering). editControls, loanFields,...
Imefungwa mnyororo wa LO - portal inaongoza kuingia bwawa la kukubali-lead; kukubalika LO kuishi uongofu
(1) PortalLead Service ina njia ya bandari inayoongoza kwenye pool ya kazi ya msingi ya mikopo (kuhitajika Wakati una hatua ya kuwasiliana - mwongozo wa portal ...
KufungaHorizon - upeo wa monotonic + null kwa terminal / haijulikani
Live header KPIs from the draft; sellerCredits in cash-to-close; nav guard only when actually dirty
Endelea kuwa + Nini-kama seli moja gridi hivyo jopo matokeo anakaa katika safu ya kulia
Nini-kama hoja alifanya MortgageFieldsComponent kutoa Kadi + whatIfSlot kama sibling watoto; kwa kuwa MortgageDetailsTab huweka nje watoto wake katika gridi ya ...
Rebuild kuvuta " Warsha ya Mortgage" inaongoza tab kutoka kamusi ya tafsiri
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.