Nenda kwenye maudhui
KAMOUniverse

Mabadiliko

Nini kipya.

Kila kuboresha jukwaa, kama ni meli.

  1. · kamo-internal

    Remove Cash-to-Close card; move buyer's-agent fields to Subject Property tab

  2. · kamo-internal

    Kuruka juu ya kuruka mbali / kubadili tabs na hariri zisizohifadhiwa

  3. · kamo-internal

    Ondoa makadirio / maelezo ya nje kutoka kwa kadi za hali

    Drop the EstimatedNote component and its plumbing, and the AI-narrative verify-before-relying disclaimer, per owner request to stop showing estimate/disclaimer footnotes on the mortgage scenario cards.

  4. · kamo-internal

    Reorder outputs **************** + move save error toast to bottom

  5. · kamo-internal

    Kuweka alama za uwanja baada ya lebo, sio mbali kulia

  6. · kamo-shared-library

    ClosingHorizon — shared §5 close-date heuristic (stage → business days)

    One source for the closing horizon so the capital-markets forecast and the doc-freshness sweep project the SAME close date. A calibrated CDF replaces the table later.

  7. · kamo-internal

    Inline red/yellow field markers + tab rollups; drop Profile Completeness pane

  8. · kamo-internal

    Residential-Mortgage columns (Purpose/Loan Amount/LTV/DTI) + Purpose filter

    On /leads, when the selected market is a Residential Mortgage market, show four columns to the right of State: - Purpose — mortgageFields.loanPurpose, title-cased **************** - Loan Amount — compact "574k" via new fmtK() - LTV / DTI — computed by the mortgage engine (ltv()/dti().backEnd), one decimal All render an em-dash when their field/inputs are unset. Loan Purpose also gets a toolbar filter (mirrors the productFilterValue pattern: state + Select + filter in both filteredRowData branches + reset + browser-state persist), shown and applied only in the Residential-Mortgage view so it can't silently empty a non-mortgage grid. Gate: preserve market.salesSubType (already in the API, previously dropped) and derive isResidentialMortgageView = currentMarket.salesSubType === RESIDENTIAL_MORTGAGE. Data comes from the widened LeadListDTO; no leadsApi change (mapLeadResponse spreads). New pure helpers fmtK + loanPurposeLabel are unit-tested ****************

  9. · kamo-shared-library

    Carry mortgage figures in LeadListDTO for the /leads grid

    The /leads Residential-Mortgage columns (Loan Amount, Loan Purpose) and the client-side LTV/DTI need mortgage data the lean list projection didn't ship. Widen ListMortgageFields + fromLead with loanAmount, loanPurpose(+id), propertyValue, purchasePrice, downPayment, currentLoanBalance, cashOutAmount, estimatedIncome, monthlyDebts, annualPropertyTaxes, annualInsurance, monthlyHoa — mirroring LeadDTO.MortgageFieldsDTO and its loanPurpose.name() encoding. Still carries no contact PII (no street/city/zip, e-mail, or phone).

  10. · kamo-shared-library

    Sync renovationCost + currentLoanType through MeridianLink mapper (ids TODO-flagged)

    Extends the isVeteran LO-XML wiring (1f583db) to the two new renovation/ streamline-refi fields added in 4A (5132026). - LoXmlFieldMapper: FIELD_RENOVATION_COST (sRehabTotalCost) + FIELD_CURRENT_LOAN_TYPE (sProdCurrentLoanT) constants, both TODO-flagged as unconfirmed convention guesses, added to TRACKED_FIELD_IDS. leadToLoXml emits renovationCost via money() and currentLoanType via putIfPresent(); loXmlToLead parses them via parseMoney()/trimToNull() as the new trailing patch components. - LeadFieldPatch: canonical record grows to 9 components (…isVeteran, renovationCost, currentLoanType); the 6-arg backward-compat aux constructor now defaults all three trailing components to null so SecurityService's 6-arg LOS-apply test keeps compiling. - LeadService.applyLosPatch: two null-guarded write-backs recording mortgage.renovationCost / mortgage.currentLoanType history keys, mirroring isVeteran. - LoXmlFieldMapperTest: emit/parse/absent coverage for both fields + updated trackedFieldIdsAreTheSyncedSet assertion. - LeadServiceLosTest: updated 4 pre-existing 7-arg LeadFieldPatch(...) call sites to 9-arg (collateral compile fix, no behavior change).

  11. · kamo-internal

    Renovation family (203k/HomeStyle) + streamline refis (FHA Streamline/VA IRRRL)

    Adds two new stated-lead inputs (renovationCost, currentLoanType) and five eligibility rows gated on real borrower signal, matching the existing show-only-when-signaled discipline: - FHA_203K_LIMITED / FHA_203K_STANDARD: forward + primary-only, split on the $75k rehab-cost boundary - HOMESTYLE_CHOICE: conventional renovation analog, any occupancy (merges HomeStyle + CHOICERenovation into one row) - FHA_STREAMLINE / VA_IRRRL: refi-only, gated on the existing loan's type

  12. · kamo-internal

    Projected Close section — surfaces the §5 close-date forecast

    Capital & Risk console now fetches /closing-forecast and shows each active loan's projected close date (stage-based business-day horizon), soonest-first. Best-effort (never fails the console). Makes the close-date engine end-to-end usable.

  13. · kamo-shared-library

    Kuongeza ukarabatiCost + currentLoanType mikopo ya mikopo

    Mirrors uwanja wa isVeteran (3f0cea1): safu ya chombo, 3 DTOs Kwa mfano, *** Mikopo ya mikopo + Mjenzi wa LeadDTO, Huduma ya Kiongozi huunda / kuboresha kupita, na Waandishi wa habari (mortgage.renovationCost, Picha zote na Wizara ya Mambo ya Ndani ya Nchi. ... Yote mawili ni makosa, sio makosa. Kuondoa ya Kazi ya ustahiki wa programu ya ukarabati na streamline-refi (Jumla ya 24 Bidhaa kwa Vitunguu).

  14. · kamo-internal

    Put Loan Purpose first on the Loan tab (it drives field relevance)

  15. · kamo-shared-library

    Sync isVeteran through MeridianLink LoXmlFieldMapper (id TODO-flagged)

    Wires LeadClaimMortgage.isVeteran katika LO-XML safari ya pande zote kwa kutumia Kitambulisho cha uwanja wa mkutano aBIsVeteran (inalingana na aB ... mkopaji Kabla ya kiambishi cha aBFirstNm / aBLastNm) na TODO kuthibitisha kitambulisho na 1 / 0 Picha zote na Wizara ya Mambo ya Ndani ya Nchi.pdf Picha zote na Wizara ya Mambo ya Ndani ya Nchi. .................................................................... Kuingia, leadToLoXml hutoa "1" / "0", loXmlToLead parses kupitia parseBool mpya Picha zote na Wizara ya Mambo ya Ndani ya Nchi. .................................................................... LeadFieldPatch: sehemu mpya ya rekodi ya isVeteran. - Huduma ya Kiongozi.applyLosPatch: inatumika inbound isVeteran, rekodi mikopo.isVeteran muhimu historia (matukio LeadHistoryFieldRegistry kutoka Hatua ya 3A). - LeadServiceLosTest: updated 4 preexisting LeadFieldPatch (...) simu ya mkononi maeneo kwa ajili ya sehemu ya rekodi mpya (collateral kukusanya fix, hakuna mabadiliko ya tabia). - LoXmlFieldMapperTest: chanjo mpya kwa ajili ya kweli / uongo /null pande zote pande zote mbili.

  16. · kamo-internal

    Shamba la wazee + ramani chini ya hali / zip; kuwezesha kustahiki VA; ufahamu wa dedupe / ukamilifu

  17. · kamo-shared-library

    Kuongeza isVeteran mikopo shamba (tuzo, DTOs, huduma, historia)

  18. · kamo-internal

    Cross-field consistency checks (Data Checks card)

  19. · kamo-internal

    Purpose-aware profile completeness + weighted header meter

  20. · DaemonService

    Org-scoped inbound loan recognition in MeridianLink poller

  21. · kamo-shared-library

    Org-scope inbound LOS loan lookup + after-commit outbound push + inbound history audit

  22. · kamo-internal

    Honest DTI/payment labels for missing inputs (partial PITI, no-debts back-end, conventional-PMI MI)

  23. · kamo-internal

    Purpose-gate Eligibility Snapshot; hide unevaluable programs; merge HomeReady/Home Possible; sort UNKNOWN last

  24. · SecurityService

    Internal LOS apply endpoint for inbound sync

    POST **************** {leadUid, provider, loXmlFields} — server-to-server (no session/rights). Constant-time X-Internal-Auth check against the cluster internal-auth secret; missing/wrong header -> 403 before any lookup or mutation. Maps LO-XML via LoXmlFieldMapper.loXmlToLead and applies MeridianLink-wins via LeadService.applyLosPatch (which emits the realtime LEAD_UPDATED). Called by the DaemonService inbound poller.

  25. · DaemonService

    MeridianLink 60s inbound poll job

    Drain the per-appCode modified-loans queue (collapsed to distinct (instanceBaseUrl, appCode) poll-units) and forward recognized field changes to SecurityService's internal LOS apply endpoint via RestTemplate + X-Internal-Auth. Recognized loans (a LeadLosLink exists) are applied then cleared + lastPulledAt stamped (injected clock); unrecognized loans and failed applies are left in the queue. Failure-tolerant, null-guarded, Quartz 60s trigger; PLATFORM_ENC_KEY mounted for the creds resolver.

  26. · kamo-internal

    Lead Create/Open Application button + LOS proxy routes + leadsApi

    Phase 7 of the MeridianLink external-LOS integration: adds the header button that creates or opens a lead's linked MeridianLink loan file, the Next.js proxy routes it calls, and the leadsApi/type surface that carries losProvider/losLinkStatus from market-config.

  27. · SecurityService

    Lead create/open LOS application endpoints + market-config MLOS fields

  28. · kamo-shared-library

    Lead↔LOS push/patch + outbound sync hook

  29. · kamo-internal

    Ushirikiano wa MLOS kushuka kwa modal ya soko

    Add a MLOS Integration dropdown **************** to the market Add/Edit modal, shown only for Service > Residential Mortgage markets, plus a Configure button beside it. Configure is disabled until the market is saved; for MERIDIAN_LINK it opens the new per-market Configure dialog, for KAMO_MLS it deep-links to the existing internal MLOS console (the single POS commerceType:MORTGAGE market's Integrations tab), and ENCOMPASS_ICE stays disabled with a "coming soon" tooltip.

  30. · kamo-internal

    MeridianLink kwa Soko la Configure dialog

    New MeridianLinkConfigDialog, modeled on the platform OAuth EditDialog, scoped to a single LeadMarket's connection via losConnectionApi (Phase 3 backend). Edits **************** plus a write-only client secret (blank keeps the stored ciphertext), with a Test Connection action and load-on-open via losConnectionApi.get.

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