Mabadiliko
Nini kipya.
Kila kuboresha jukwaa, kama ni meli.
· kamo-shared-library
Lock lookup by loan file (join through scenario)
**************** — locks key on scenario, so resolve a loan's locks via MlosLoanScenario.loanFileUid. Backs the borrower/steward 'is this loan rate-locked?' read.
· SecurityService
Steward rate-lock proxy — lock-decision + commit an eligible result
MlosCapitalMarketsController faida POST /lock-decision (preview) na POST /locks [TD="width: 456"] [FONT=&](2)[/FONT][FONT=&]Bila kuathiri masharti ya kifungu kidogo (1) cha kifungu hiki, Tume itakuwa na mamlaka ya kuajiri mtaalamu yeyote kwa ajili ya shughuli maalumu au kwa muda mfupi.[/FONT] Imerekodiwa kama ******** na msimamizi wa kaimu kama imefungwa kwaMemberId - Haijawahi kujengwa kwa auto-lock. Injini ya mteja / AUS kuta relay kama waaminifu 4xx.
· SecurityService
Borrower e-signature surface — real native sign links, no stub
GET **************** (party-gated) lists the loan's real KAMO_NATIVE disclosure/closing envelopes + recipient status via ESigService; POST **************** mints a fresh reachable signing deep-link (fail-closed: envelope must belong to the caller's loan). Backs the rebuilt closing-desk that deep-links to the native signing experience (doc 05 §5).
· ESigService
Internal mint-sign-link primitive for first-party signing surfaces
POST **************** re-mints a recipient's access token and RETURNS the signing deep-link (no invite-email round-trip), so the MLOS borrower portal can hand an authenticated signer a live link. Refactors resend() to share the mint path; completed/decoderd recipients 409.
· SecurityService
WS3 vendor-order proxy — steward places/reads third-party orders
Add MlosVendorClient (X-Internal-Auth → MLOSVendorService /api/vendor) + mlos.vendor.url config, and app-scoped endpoints: GET /{uid}/vendor-orders (operator view) and POST /{uid}/vendor-orders (staff — place an appraisal/title/HOI/VOE order, optionally bound to a THIRD_PARTY requirement so its callback satisfies it). orgId + loanFileUid resolved server-side; the vendor rail's honest status is relayed, never fabricated.
· SecurityService
Mkopeshaji-Salama Mipango yangu kwa mtazamo wa hali ya portal
[TD="width: 456"] [FONT=&](2)[/FONT][FONT=&]Bila kuathiri masharti ya kifungu kidogo (1) cha kifungu hiki, Tume itakuwa na mamlaka ya kuajiri mtaalamu yeyote kwa ajili ya shughuli maalumu au kwa muda mfupi.[/FONT] Picha zote na Wizara ya Mambo ya Ndani ya Nchi. .................................................................... Mwigizaji wa ndani / maelezo ya shamba la wakili LoanConditionDTO inaonyesha. Mtandao wa portal pamoja na mapendekezo hayo ambayo tayari yamewasilishwa (kwa (i) Kuwasilisha nyaraka za malipo ya uzeeni kwa mujibu wa.
· SecurityService
Per-borrower section GET endpoints to hydrate the capture UIs
Add listPerBorrower (requireView, party-gated) + GET list endpoints for **************** returning {rows:[...]}. These back the new URLA borrower capture sections in KamoMLOS.
· kamo-shared-library
Borrower section read methods for other-income/expense/REO/gift capture
The per-borrower repeating sections were write-only; add read projections **************** so the borrower capture UIs can hydrate existing rows via GET endpoints.
· SecurityService
Full credit-vendor abstraction + real reseller adapters
Mfumo wa Reli ya Reli ya Reli. ← Previous Story UCHAMBUZI WA KITABU CHA THE FULL 9-digit SSN (Imeamuliwa wakati wa utaratibu kutoka kwa rekodi ya mkopaji iliyofichwa) + Kuvuta JOINT - awali tu sn Last4 ilipitishwa, ambayo hakuna ofisi inakubali. Msingi mpya wa itifaki ya MISMO-2.4 (mismo /): CreditVendorProfile + CreditAuthScheme Kwa mfano, *** Mfumo wa Kujitegemea (Individual +) pamoja, kamili SSN, MeridianLink inline-login block, CreditResponseParser (kwa uvumilivu) alama parsing katika maagizo ya madai + ofisi normalization + muuzaji-error Utambuzi). AbstractMismoCreditAdapter ina mtiririko wa utaratibu wa pamoja (kuthibitisha) Juu ya [hariri | hariri chanzo] Majina ya adapta kwa wauzaji wa kawaida wa mikopo, kila mmoja akiunganisha umma wake Itifaki (auth mpango) na akaunti creds kamaconfig: MeridianLink (inline login), Xactus (bearer), data halisi / CBCInnovis / Credit Plus (basic) + generic Picha zote na Wizara ya Mambo ya Ndani. Huduma ya CreditOrder inachagua SSN kamili kupitia SecretCipher, Kuratibu shughuli za Halmashauri, na kutoa maelekezo kwa wakati. Makosa ya kweli tu, Kamwe usitoe ahadi za uongo. 12 ya vipimo vya kijani.
· SecurityService
Akaunti ya wazi
GET **************** — party-gated; resolves loanFileUid from the app and relays MLOSDocService's clear-to-close readiness.
· EmailService
Accept X-***-Token for mobile clients in OTKPreAuthFilter
per-tab session id as X-***-Token (matching **************** When present (and no X-OTK), resolve the session non-consumingly and set the same request attributes; an invalid token sets nothing, so controllers still reject with 401. Session-data protection unchanged.
· APIService
Route /api/email + /api/support through the api host
(EmailService) and Support (MediaService, same upstream as /api/media) were unrouted → 404. Add both forwards and fix email.service.url from a localhost default to the cluster service. forward() only passes the caller's session headers (X-***-Token) — no X-Internal-Auth injected — so internal endpoints stay protected and only session-gated functionality is exposed.
· SecurityService
Steward-triggered agency-AUS run proxy
Adds POST **************** — the steward "Run AUS" trigger the read-only underwriting console lacked. Gated on operator (GD); the organizationId and acting member are SERVER-STAMPED from the session (never trusted from the client), and MLOSUnderwritingService re-validates the loan belongs to that org (fail-closed cross-org). Facts are server-derived downstream (DTI via LoanQualifyingRatioService, structural via ScenarioFactDeriver); the caller may still pass a fico/fresh-credit attestation. Nothing triggered a live AUS run before this — the run endpoints had zero callers.
· KlusterServices
Self-hosted expo-updates headers for Mobile Copilot OTA
expo-protocol-version:1 + expo-sfv-version:0 response headers that the expo-updates client requires and static MinIO cannot emit. Longer path prefix wins over the general /public/ theme route.
· kamo-shared-library
VendorOrder + VendorOrderEvent vyombo kwa WS3 muuzaji ili uti wa mgongo
Picha zote na Wizara ya Mambo ya Ndani ya Nchi. .................................................................... kuwa). VendorOrder = utaratibu wa async (lugha ya kawaida: opaque muuzajiKey / externalRef, utambulisho wa waliohifadhiwa, tu hali / matokeo ya mapema; utaratibu wa upya Huu ni msimu mpya). [TD="width: 456"] [FONT=&](2)[/FONT][FONT=&]Bila kuathiri masharti ya kifungu kidogo (1) Mstari mmoja usiobadilika kwa mpito / simu, dedup ya nje yaEventId, payload kucheza). Picha += Kwa mfano, *** (Hapana ya kuwa) ConnectionVendor rika - kuthibitika maisha hapa, kamwe juu ya uhusiano imefungwa). Soft-FK-by-id, denormalized org/loanFileUid. KI @EntityScan (com.kamo) inajenga Picha zote na Wizara ya Mambo ya Ndani ya Nchi. ....................................................................
· SecurityService
Stamp hati mwenyewe tarehe kwa freshness saa (WS1 uanzishaji)
After vision extraction, propagate the document's own effective date (asset.statementPeriodEnd for bank/broker/retirement, employment.payPeriodEnd for paystubs) to MemberDocument.freshnessAsOf. This makes the MLOS requirement-satisfier age from the true statement/pay date instead of the upload time, so the period-coverage engine finally gets real period identity. Best-effort, idempotent, never breaks extraction; no schema change (the freshness_as_of column already exists).
· kamo-shared-library
MortgageAmortization - kila mwezi P & I kutoka kwa masharti ya mkopo (WS6 msaada)
Sehemu moja ya PITI haijahifadhiwa kwenye mkopo. Viwango vya jumla formula P·r· ^n/((1 +r) ^n-1); kiwango cha sifuri hupungua kwa mstari wa moja kwa moja; Msingi usio na chanya / wa kushindwa kwa 0.00 (usiwahi kutupa / talaka kwa sifuri). Picha zote na Wizara ya Mambo ya Ndani ya Nchi. ...................................................................
· kamo-shared-library
KufungaReadinessEvaluator - kiwango cha mkopo wazi kwa mlango wa karibu
Rolls a loan's obligations up to the funding question the end-to-end gap analysis raised ("service the loan all the way to funding"): clear-to-close iff zero advancement-blocking (prior-to-close/fund) conditions remain open; open non-blocking (prior-to-doc/post-close) conditions don't hold funding. Emits the deduped blockingCategories "what's left before you can close" list. Pure/stateless over caller-mapped ConditionState projections, mirroring ConditionClearabilityResolver — ships the rule, not the milestone wiring.
· kamo-shared-library
Ukadiriaji wa injini - keystone ya msingi ya dti (WS6)
Composes the four cores (income, liabilities, PITI/DTI, reserves) into ONE QualifyingSnapshot: qualifying income, reconciled monthly debt, assembled PITIA, front/back DTI, eligible reserves, reserve months. This is the single deterministic derivation that must become the AUS 'dti' fact's sole producer — today that fact arrives borrower-typed or blank and nobody derives it. Pure/stateless, no I/O, no schema; called by nothing yet (safe to wire into ScenarioFactDeriver next). Same evidence always reproduces the same snapshot.
· kamo-shared-library
ReservesCalculator - nywele zinazostahili-kamaset → miezi ya PITIA (WS6)
Derives reserve months from actual assets with standard agency haircuts — liquid deposits 100%, brokerage 70%, vested retirement 60%, gift/borrowed excluded — divided by monthly PITIA. Completes the pure qualification suite (income + liabilities + PITI/DTI + reserves) an overlay minimum can gate on a real figure instead of a borrower-typed one. Zero PITIA → undefined. No schema, no wiring.
· kamo-shared-library
PitiDtiCalculator — PITI assembly + front/back DTI (WS6)
Pure ratio core completing the DTI trio with LiabilityReconciler + the income core: PITIA = P&I + taxes + HOI + HOA + MI + flood; front = PITIA / income; back = (PITIA + debt) / income, as percentages. Zero income → undefined (not divide-by-zero). This is the deterministic derivation that must become the AUS 'dti' fact's sole producer. No schema, no wiring.
· kamo-shared-library
QualifyingIncomeCalculator — base + variable core (WS5)
Msingi wa mapato safi / ya kuamua: msingi wa salaried = kihafidhina chini ya Ushahidi unaopatikana (paystub / W-2 / VOE); kutofautiana = wastani wa 2yr na the the the the the the the the the the the the the the the the the the the the the the the( the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the the asilimia 75 ya mapato yote. Kila mstari unataja utawala wake; pembejeo sawa na jumla ya (Sauti ya Replay). Kuingia kwa ukaguzi kwa DTI halisi, kubadilisha dedupe-by-employer. Inafanya kazi kwenye makadirio ya simu-mapped - hakuna schema, hakuna wiring, hakuna tabia mabadiliko. Fedha ya juu / ardhi ya juu.
· kamo-shared-library
Wajibu wa Reconciler - sheria za kuingizwa kwa malipo ya shirika (WS6 msingi)
Pure/stateless computer turning each liability into the monthly payment that counts against DTI, with a cited rationale: omitted/paid-off excluded, leases always included, installments ≤10 months out, revolving-without- payment at 5% of balance, stated otherwise. The defensible foundation of a back-end DTI (replacing an injected 'dti'). Operates on a caller-mapped projection of the locked Liability — no schema, no wiring, no behavior change. Deferred-student-loan / contingent treatments land with the additive Liability flags.
· kamo-shared-library
Explicit-period quantity spec for delta successors
Mahitaji ya kupata orodha ya vipindi vya wazi (+ wajenzi wa deltaJson); Na kama ni lazima, basi ni lazima kuwa na uwezo wa kufanya hivyo. "Tarehe ya Agosti". Waziri wa Mambo ya Ndani akishuhudia na kutoa mahitaji ya lazima(). Kuwa safi / wa haraka.
· kamo-shared-library
**************** as the single period-key source
Kwa mfano, wakati wa kuandika na wakati wa kuandika. Ufikiaji wa vipindi muhimu vya uinjilishaji sawa; uinjilishaji sasa wajumbe wake. Kuwa safi / haraka, hakuna mabadiliko ya tabia.
· kamo-shared-library
Maandishi ya kumbukumbu ya muda kwa ajili ya ukusanyaji wa kumbukumbu ya muda
Msingi safi, wa kuongezea wa mkusanyiko wa ufahamu wa muda (doc 06 §4) - Akaunti ya kwanza ya benki “inakusanya miezi tu ambayo bado sijaipata” kurekebisha. Mabadiliko ya tabia ya sifuri, hakuna matumizi ya waya. Mahitaji: spec zisizobadilika {count, periodonths, cadence, Kwa upande mwingine, kwa upande mwingine, ni juu ya kiwango cha juu, na sio juu. Mahitaji yasiyojulikana yanaendelea tabia ya hati nzima ya leo. - PeriodCoverageEvaluator: safi @Component (mirrors conditionClearabilityResolver) kompyuta required / kufunikwa / uncovered vipindi + inayotokana hali kutoka spec, Satisfiers kukubalika, na tarehe ya nanga - "1 ya 2, missing 2026-06" mantiki, na stale nje ya-ya-window mwezi kupuuzwa (carried mbele, si tena aliuliza). -Satisfier: safu nne za nyongeza za NULLABLE (kipindi end, ufanisi date, period key, akaunti key) + index; WORM @PreUpdate kuhifadhiwa. Kwa kweli, ni rahisi sana, na ni rahisi sana kufanya hivyo. Nguzo zinatumika kwa kuongezea kupitia KamoInitializer (iliyoandaliwa na M1 kuandika-path kukimbia); huduma kukaa ddl-auto:none; hakuna pamoja-lib toleo bump.
· kamo-marketing
Replace forked chat na mwenyeji <kamo-chat> embed; kufuta urithi wakala widget
Inabadilisha mazungumzo ya AI / msaada wa kuishi (PublicChatWidget + AiChatPanel + LiveHelpPanel + /api /chat / ** njia za wakala wa seva) kwa mwenyeji, <kamo-chat> kipengele cha desturi kilichotumiwa kutoka Kwa mfano, *** Biashara ya org WebChatIntegration tovuti muhimu ni kusoma upande wa seva katika mpangilio wa ndani [TD="width: 456"] [FONT=&](2)[/FONT][FONT=&]Bila kuathiri masharti ya kifungu kidogo (1) kuomba wakati, si kuoka katika kujenga tuli) na kupita kwa mpya KamoChatEmbed mteja sehemu, ambayo sindano script widget na milima Picha zote na Wizara ya Mambo ya Ndani ya Nchi. .................................................................... Inaondoa @stomp/stompjs na sockjs-client, ambayo Ilitumiwa tu na LiveHelpPanel iliyofutwa.
· kamo-internal
Add install-QR (self-hosted APK) to Setup Mobile App tab
Install/Sign-in toggle: "Install" shows a QR to the signed release APK on the new phone can download+sideload it; "Sign in" keeps the password-gated OTK flow.
· kamo-internal
Web Chat Ushirikiano kubuni Customizer + kuishi preview
Adds a Customize dialog to the Web Chat Integration tab: an editor form (colors, copy, layout, behavior, AI prompt) on the left and an instant, non-interactive mock of the widget on the right, both driven off the same in-memory config so every edit reflects immediately. - **************** TS mirror of the widget's canonical DEFAULT_DESIGN_JSON (kamo-shared-library WebChatDefaultConfig.java) + deep-merge/parse helpers so a stored designConfig (null/partial/ malformed) always resolves to a fully-populated, editable config. - **************** self- contained styled mock (launcher + open panel), no remote widget bundle involved. - **************** SettingsTextField gains optional multiline/rows props (additive, backward compatible) for the welcome-message/system-prompt fields. Save PUTs the integration's designConfig + aiEnabled/humanEnabled/ aiSystemPrompt via webChatIntegrationsApi.update, with hex-color and positive-integer validation before the request.
· kamo-internal
Web Chat Integration tab — list, create, snippet (BFF + UI)
Phase 2 core of the Web Chat Integration settings tab: BFF routes proxying to the Phase-1a MediaService CRUD, a typed client, and the /settings/features/chat tab where an org lists integrations, creates one (name + required website origins + AI/Support modes), and gets the raw site key + embeddable snippet once. Design customizer and readiness checklist are later phases.

Ulimwengu wako unasubiri.
Kuanza bure katika dakika. Ongeza bidhaa wakati wowote wewe ni tayari - hakuna uhamiaji, hakuna logins mpya.
Bure milele - hakuna kadi ya mkopo inahitajika