परिवर्तन लॉग
क्या नया है.
यह जहाज के रूप में, प्लेटफार्म के हर सुधार.
· kamo-shared-library
दिशानिर्देश नियम + शर्तों + मूल्यांकनकर्ता, एलएलपीए भविष्यवाणी इंजन (चरण-2 स्लाइस 8) को साझा करना
§8.1 चरण-2 की दिशानिर्देश-नियम भविष्यवाणी संयुग्म। गंभीर रूप से, REUSES समीक्षा की गई स्लाइस-4 शर्त सुरक्षा-महत्वपूर्ण भविष्यवाणी तर्क को दोहराने के बजाय मूल्यांकनकर्ता। DRY refactor (non-regressive — evaluator body byte-identical): - PredicateCondition interface ************* - MlosAdjustmentCondition + MlosGuidelineRuleCondition दोनों इसे लागू करते हैं। - समायोजनConditionEvaluator PredicateCondition के लिए सामान्यीकृत; समायोजनमैच -> सभी शर्तमैच (List<?) PredicateCondition का विस्तार करता है। स्लाइस-4 परीक्षण फिर से रन ग्रीन (9), दोनों पूर्व उच्च फिक्स बरकरार है। नया: - MlosGuidelineRule (mlos guideline rule): GuidelineVersionId FK, productId FK, RuleCode (unique per) संस्करण), फैसले (RuleVerdict ELIGIBLE/INELIGIBLE/STIPULated §10.3 vocab), आवश्यकताKind ************* आवश्यकता मूल्य, गंभीरता, sourceSectionRef, बिना शर्त ध्वज। + MlosGuidelineRuleCondition (imples PredicateCondition)। - GuidelineRuleEvaluator ( @Component) + GuidelineEvaluation + GuidelineOutcome: जब एक नियम आग लग जाती है इसकी सभी स्थितियां पकड़ती हैं ( साझा वाष्पीकरण के माध्यम से); INELIGIBLE किसी भी निकाले गए INELIGIBLE नियम को पूरा करता है; stipulations एकत्र 8 GuidelineRuleEvaluatorटेस्ट ग्रीन। Adversarially की समीक्षा की (2-एजेंट) : Refactor पुष्टि बाइट-identical/non-regressive; फिक्स्ड MEDIUM ओवर-ब्लॉक जोखिम - शून्य स्थितियों के साथ एक गैर-ब्लैंकेट नियम अब SAFE विफल रहता है (जो आग नहीं है) तो एक आधे अधिकृत/dangling-FK INELIGIBLE नियम चुपचाप हर उधारकर्ता को ब्लॉक नहीं कर सकता (यानी मूल्य सेट) असफल बंद हो गया; जानबूझकर कंबल नियमों के लिए `unconditioned` ध्वज। कोई KamoInitializer कोड परिवर्तन नहीं।.
· InitializerService
Guideline-version no-overlap आंशिक-अद्वितीय सूचकांक (चरण-2 स्लाइस 7)
SchemaCleanupRunner: ux guideline version active आंशिक-unique ON mlos guideline version (organization id, product id) WHERE स्थिति = 'सक्रिय' और प्रभावी until IS NULL — एक खुला / वर्तमान सक्रिय दिशानिर्देश संस्करण प्रति (org, product); दर्पण ux rate sheet version active (doc 02 §6.5). कैटलॉग पहले से ही पंजीकृत pkg (Slice 1) है।.
· kamo-shared-library
MlosGuidelineVersion (WORM) + GuidelineVersionResolver (Phase-2 Slice 7)
Immutable प्रभावी-dated दिशानिर्देश संस्करण - कंटेनर पात्रता मैटरिस ******************************************************************************************************************************************************************************************************************************************************************************************************************************************************* ******************************************** ***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** विश्वासघात समीक्षित स्लाइस-1 MlosRateSheetVersion रीढ़ की हड्डी, प्रति उत्पाद (Vs प्रति निवेशक) की कुंजी। - MlosGuidelineVersion (mlos guideline version): productId FK, revisionLabel, effect from/until, क्रम no, supersedes id self-FK, स्थिति, source document id FK, kb article guid + kb article version no (§6.4 KB-prose drift-pin, immutable)। अनुप्रयोग-परत आंशिक-mutability WORM (@PostLoad snapshot + @PreUpdate diff): पहचान/content को फ्रीज करता है, केवल DRAFT की अनुमति देता है) सक्रिय ACTIVE-> SUPERSEDED, ACTIVE-> RETIRED + लिखने वाले प्रभावी until बंद। - GuidelineVersionStatus **************** - GuidelineVersionResolver (gated mlos.catalog.enabled): प्वाइंट-इन-टाइम विंडो रिज़ॉल्यूशन, कभी नहीं नवीनतम पंक्ति, ओवरलैप पर फेंकता है। दर्पण प्रभावी संस्करण। 17 परीक्षण हरे (6 GuidelineVersionResolverTest + 11 ************* KamoInitializer ux guideline version active आंशिक-unique (one open ACTIVE per org+product).
· kamo-shared-library
पात्रता मैट्रिक्स + कोशिकाएं + सेल मैचर (चरण-2 स्लाइस 6)
§8.1 स्टेप-2 एलिजिबिलिटी-पहली फिल्टर सब्सट्रेट (सेल कंजेंट); गाइडलाइन rule + AUS गेट और बाद में). - MlosEligibilityMatrix (mlos eligibility matrix): प्रति ********************** प्रभावी-dated; REUSES बंद URLA ************* @Enumerated (STRING) के माध्यम से नए कॉलम (एफके-फ्री) पर, उन्हें कभी संपादित नहीं किया जाता); गाइडलाइनVersionId सॉफ्ट-एफके (निर्देशों तक शून्य)। - MlosEligibilityCell (mlos eligibility cell): टाइप्ड पात्रता विंडो - fico low/high, Property type (locked PropertyTypeUrla), इकाइयाँ कम/high, loan amount low/high, state set id (FK MlosValueset) सीमा मूल्य मूल्य निर्धारण / सीमा संख्या कच्चे BigDecimal (catalog सम्मेलन)। - MlosMatrixtype {MAX LTV,MAX CLTV,MAX DTI} - भेदभाव करने वाला जिसके लिए अनुपात सीमा मूल्य कैप्स है। - पात्रताCellMatcher ( @Component) + ScenarioFacts reuse + पात्रता आउटकम ************* पात्रता परिणाम: भर में युक्त सेल का पता लगाएं ************* RATIO-DISPATCH by matrix type (ltv/cltv/dti) test बनाम सीमा; लापता आवश्यक attr → CANNOT PRICE (जो कवरेज से पहले हो गया); राज्य असफल हो गया; ओवरलैप → more-restrictive (Restrictive). 12 पात्रताCellMatcherटेस्ट ग्रीन। Enum-reuse + कल्पना अनुसंधान कार्यप्रवाह से; adversarially समीक्षा (2-agent): निश्चित matrix type अनुपात प्रेषण + hoisted-ratio CANNOT PRICE + overlap observability + unhonored अन्य गिरा दिया। नहीं KamoInitializer कोड परिवर्तन (catalog repo pkg पंजीकृत स्लाइस 1) - केवल फिर से रन।.
· kamo-shared-library
MlosMarginSchedule + MarginScheduleResolver (Phase-2 स्लाइस 5)
निवेशक मार्जिन परत - §8.1 चरण-4 मूल्य विधानसभा की "+ मार्जिन अनुसूची" अवधि। - MlosMarginSchedule (mlos margin schedule): rateSheetVersionId FK, productId (null=all), मार्जिन टाइप, ऋण राशि कम / उच्च बैंड, मूल्य (कच्चे BigDecimal), compBasis (BORROWER PAID) - CompBasis enum - Comp BASIS कन्वेंशन (कैसे मार्जिन भुगतान किया जाता है), एक LO comp-योजना राशि नहीं; LO comp कभी एक स्कोरिंग इनपुट (doc 13 §8.5) नहीं है। - MarginScheduleResolver ( @Component) इसमें राशि (तीव्र, शून्य = खुली) और comp मैच शामिल हैं; कुल मार्जिन = δ मान ( शून्य यदि कोई नहीं)। 5 MarginScheduleResolverटेस्ट ग्रीन। मूल्य निर्धारण संख्या कच्चे BigDecimal (Slice-3 सुधार)। कोई KamoInitializer कोड परिवर्तन (catalog repo) pkg पंजीकृत स्लाइस 1; अनुक्रमणिका इकाई घोषित) - केवल फिर से रन करें।.
· InitializerService
वैल्यू-सेट प्लेटफॉर्म स्वामित्व वाली स्वामित्व CHECK (चरण-2 स्लाइस 4)
SchemaCleanupRunner: ADD CONSTRAINT Mlos value set ownership chk CHECK (platform owned = (organization id IS NULL)) - doc 02 §6.2: एक मंच वर्गीकरण है एक null org के साथ स्वामित्व वाली प्लेटफॉर्म; एक org-विशिष्ट सेट org-scoped है। द्वि शर्त `= ... IS NULL` आकार enum-whitelist स्वीप रहता है। कैटलॉग पहले से ही पंजीकृत pkg (Slice 1) है।.
· kamo-shared-library
एलएलपीए समायोजन + मान सेट + शर्त मूल्यांकनकर्ता (चरण-2 स्लाइस 4)
एलएलपीए / समायोजन परत + §8.1 चरण-4 मिलान के लिए नियतात्मक भविष्यवाणी इंजन ("an समायोजन मैचों में सभी की स्थिति संतुष्ट हैं). - MlosPriceAdjustment (mlos price adjustment): rateSheetVersionId FK, productId (null=all) समायोजन समूह, संचालन (additive) MuLTIPLICATIVE), मूल्य, स्टैकऑर्डर, capValue, लेबल। - MlosAdjustmentCondition (mlos adjustment condition) ************* numLow/numhigh, valuesetid FK. MlosValueSet (mlos value set) + MlosValueSetMember (mlos value set member): नामित वर्गीकरण सेट; doc 02 §6.2 मंच के स्वामित्व वाली अपवाद (संगठनId nullable + मंचOwned flag on केवल SET; सदस्य सेट के माध्यम से कोई ऑर्जीआईडी दर्पण - स्वामित्व नहीं रखता है, कोई बहाव सतह नहीं है। - समायोजनConditionEvaluator ( @Component) + ScenarioFacts: संख्यात्मक ops बनाम num low/high, ओप्स बनाम हल सदस्यों को सेट करें; लापता तथ्य → कोई मैच नहीं; SET OPS FAIL खाली / शून्य सदस्य पर बंद सेट (एक dangling नरम FK मान सेट कभी चुपचाप सभी से मेल खाता है) और null-resolver-safe (कोई NPE)। 9 ************* हरी। Adversarially की समीक्षा की (2-एजेंट वर्कफ़्लो): तय 2 उच्च मूल्यांकनकर्ता बग (NOT IN) खाली पर विफल खुला सेट; NPE on null solutionr) + ने प्रति समीक्षा के लिए अनावश्यक सदस्य ऑर्जीड दर्पण को छोड़ दिया। मूल्य निर्धारण संख्या कच्चे BigDecimal (Slice-3 सुधार)। KamoInitializer मूल्य सेट स्वामित्व CHECK कहते हैं।.
· kamo-shared-library
MlosBasePriceGrid + NoteRateLadder priceable cells (Phase-2 Slice 3)
Priceable rate/price cells — प्रथम सूची इकाई to FK BOTH a rate-sheet version (Slice 1) और एक उत्पाद (Slice 2); §8.1 मूल्य विधानसभा का आधार। - MlosBasePriceGrid (mlos base price grid): rateSheetVersionId FK, productId FK, NoteRate, lockPeriodDays, basePrice (price-to-100), basePoints, min/maxLoanAmount, ioFlag. समग्र UNIQUE (version, product, Note rate, lock period day, io flag) इकाई घोषित (io flag not NULL → full) अद्वितीय, कोई कच्चा डीडीएल नहीं। - NoteRateLadder ( @Component) : par = cell निकटतम price-to-100; निकटतम ToPrice(target); ties -> कम नोट रेट (doc 02 §8.1 step 5)। 5 NoteRateLadderTest Green. CODE-VERIFIED CORRECTION: doc 02 §6 EmbMoney/EmbPercent कहते हैं, लेकिन बंद ऋणPricingSnapshot (Reproducibility Anchor) RAW BigDecimal — interestRate DECIMAL(9,6), अंक DECIMAL(9,4), कोई embeddables; EmbPercent(9,4) एक 6-decimal दर से मेल नहीं खा सकता है। तो स्नैपशॉट-mirrored ग्रिड मूल्य निर्धारण संख्या कच्चे का उपयोग करते हैं BigDecimal मिलान ऋणPricingSnapshot (note rate 9,6 / base price+points 9,4 /) ऋण राशि 18,2)। कोई KamoInitializer कोड परिवर्तन (catalog repo pkg पंजीकृत स्लाइस 1); अद्वितीय अनुक्रमणिका इकाई घोषित - केवल फिर से रन।.
· InitializerService
Mlos product ARM-consistency CHECK (चरण-2 स्लाइस 2)
SchemaCleanupRunner: ADD CONSTRAINT ********** CHECK ((amortization type = 'ARM') = (arm fixed period months IS not NULL)) - एक निश्चित अवधि है IFF को घोषित किया गया उत्पाद ARM (doc 02 §6.6) है। `= ... नहीं है NULL` आकार (कोई नहीं नंगे enum IN-list) जेनेरिक एनम-व्हाइटलिस्ट CHECK स्वीप से बच जाता है। कैटलॉग पहले से ही स्लाइस 1 में पंजीकृत है।.
· kamo-shared-library
MlosProduct + MlosArmIndex उत्पाद वर्गीकरण परत (Phase-2 स्लाइस 2)
सूची का उत्पाद रीढ़ (doc 02 §6.3): सब कुछ मूल्यवान डाउनस्ट्रीम (बेस प्राइस) ग्रिड, पात्रता matrices, दिशानिर्देश नियम) FKs to MlosProduct.uid. - MlosProduct (mlos product): प्रति-निवेशक उत्पाद - निवेशक आईडी एफके, उत्पाद कोड, amortization प्रकार (REUSES locked URLA Amortizationtype), टर्ममास्टर्स, armFixedPeriodmonths, armIndexId FK, लोनक्लास, दस्तावेज़ीकरण, अनुरूप, losProgramCode (REUSES lock 17-value LoanProgramCode, §6.4) GuidelineVersionPointer (real FK-by-id to future MlosGuidelineVersion.uid, nullable), सक्रिय. StructurallyValid(): arm fixed period months set IFF amortization type=ARM. MlosArmIndex (mlos arm index) EmbPercent (doc 02 §6 rate-via-EmbPercent), समायोजन महीने। - 2 नए enums LoanClass / Documentation प्रकार (catalog-विशिष्ट; प्रलेखन प्रकार §3.5 गैर-QM है डॉक-प्रोग्राम क्लास, स्लाइस-1 MlosDoctype से अलग है। बेस = BaseUuidEntity; orgId = Long @ JsonSerialize (ToString)। 5 MlosProductInvariantTest green. KamoInitializer mlos product ARM-consistency DB CHECK (catalog repo pkg पहले से ही पंजीकृत जोड़ता है 1)। Deferred: मूल्य **************** + लेखक।.
· InitializerService
रजिस्टर कैटलॉग रिपोज + रेट-शीट-वर्जन नो ओवरलैप इंडेक्स (चरण-2 स्लाइस 1)
@AnableJpaRepositories += com.kamo.z.shared.mlos.catalog (New MlosInvestor/) ************* repos; पहले से ही @EntityScan द्वारा कवर किया गया था। - SchemaCleanupRunner: ux rate sheet version active आंशिक-unique सूचकांक ON mlos rate sheet version (organization id, निवेशक id) WHERE स्थिति = 'सक्रिय' और प्रभावी until IS NULL - बैकस्टॉप "एक खुला सक्रिय संस्करण प्रति (ऑर्ग, निवेशक)" No-overlap invariant (doc 02 §6.5); CRDB के पास कोई सीमा-निष्कासन बाधा नहीं है।.
· kamo-shared-library
कैटलॉग सिद्धता + प्रभावी तिथि संस्करण रीढ़ (चरण-2 स्लाइस 1)
फेज-2 कैटलॉग (doc 02 §6) का सबसे छोटा शिपेबल स्लाइस: सिद्धि श्रृंखला ImgDat -> MlosSourceDocument -> MlosRateSheetVersion और immutable प्रभावी-dated पॉइंट-इन-टाइम रिज़ॉल्यूशन के साथ रीढ़ की हड्डी का संस्करण। Substrate-first लेखक अभी तक; यह immutable-catalog-PK नींव निर्णयइनपुट FK से होगा। नया pkg com.kamo.z.shared.mlos.catalog: MlosInvestor (per-org registry; short code अद्वितीय प्रति org), MlosSourceDocument (thin) locked ImgDat पर एनोटेशन; सॉफ्ट-FK img dat id, कभी-कभी बाइट्स, doc 02 §6.4 को पुनर्स्थापित नहीं करता है। - MlosRateSheetVersion: immutable प्रभावी-dated संस्करण (प्रभावी से/until विंडो,) supersedes आत्म-FK, scene no, स्थिति lifecycle, source document FK, cutoff time) साथ एक app-layer आंशिक-mutability WORM गार्ड (@PostLoad snapshot + @PreUpdate diff) : फ्रीज priceable/identity cols, परमिट केवल DRAFT-> सक्रिय, सक्रिय-> SUPERSEDED, सक्रिय-> RETIRED और प्रभावी until के लेखन बंद। कोई डीबी ट्रिगर (CRDB 24.3) को अंतिम रूप नहीं दे सकता है। - प्रभावीVersionResolver (gated mlos.catalog.enabled): प्वाइंट-इन-टाइम रिज़ॉल्यूशन - संस्करण जिसका [प्रभावी से, प्रभावी until] विंडो CONTAINS की कीमत as of, कभी नहीं "सबसे बड़ी पंक्ति" में शामिल हो गए; प्रभावी-विंडो ओवरलैप (डिफ़ेंस-इन-डेप्थ, डॉक 02 §6.5 / §8.1) पर फेंक दिया। - 6 enums ************* PriceSheetVersionStatus) + 3 repos. बेस = BaseUuidEntity (doc 02 §6.1); orgId=long @JsonSerialize(toString) (code-verified): Organization.id is unique rowid, not doc 02's "UUID". 17 टेस्ट ग्रीन (6 हल्लक प्वाइंट-इन-टाइम) 11 वर्म गार्ड KamoInitializer सूची repo pkg + ux rate sheet version active जोड़ता है आंशिक-अद्वितीय नो-ओवरलैप इंडेक्स।.
· kamo-shared-library
Per-tenant trust-threshold गेट अधिभार (configggate तारों)
योजक निर्णयGate.evaluate (चरण, विश्वास, कानूनी रूप सेRequiresHuman), BigDecimal tenantThresholdOverride द्वारा ************* चरण, मंजिल. The कानूनी दीवार निरपेक्ष रहती है और ओवरराइड को गैर-ट्यूनेबल द्वारा फर्श किया जाता है सुरक्षा मंजिल (ऑटोनॉमी कभी भी इसके नीचे ऑटो-एक्ट नहीं कर सकती)। शून्य ओवरराइड वापस गिर जाता है मंच डिफ़ॉल्ट; मौजूदा 3-arg मूल्यांकन () नल के साथ प्रतिनिधि करता है, इसलिए गेट / डिस्पेन व्यवहार भेज दिया + उनके परीक्षण अपरिवर्तित हैं। जोड़ा गया safetyFloor() इसलिए एक कॉलर उसी मंजिल के खिलाफ किरायेदार सीमा को हल करता है। यह चरण-1 विन्यास नींव को निर्णय गेट से जोड़ता है: एक इंजन अब कर सकता है do Gate.evaluate (stage, conf, legal, **************** चरण ************* 9 फैसलेGateTest (4 नया) + 5 निर्णय 6 MlosActivationserviceTest green.
· InitializerService
आंशिक अद्वितीय इंडेक्स + सर्विसिंग इनवरिएंट (चरण-1 विन्यास पूरा)
SchemaCleanupRunner DDL नए mlos.config डोमेन (mlos.config पहले से ही in @EnableJpaRepositories; हाइबरनेट डीडीएल-ऑटो: अद्यतन तालिका बनाता है): - एक सक्रिय आंशिक अद्वितीय अनुक्रमणिका (WHERE is active=true and effect to IS NULL) mlos pricing policy / mlos capital policy / mlos servicing policy (lender profile id) + mlos product enablement (lender profile id, program id) - हाइबरनेट WHERE इंडेक्स का उत्सर्जन नहीं कर सकता। - ServicingPolicy immutable invariants: CHECK scra enforced=true + fdcpa enforced=true (=-CHECK, enum-whitelist स्वीप).
· kamo-shared-library
पूरा चरण-1 विन्यास डोमेन + MlosActivationService (Slice 5)
डोक 04 की विन्यास इकाई सूची को पूरा करता है ************* - पॉलिसी सिंगलटन (एक-सक्रिय-प्रति-प्रोफाइल, प्रभावी-dated/append-केवल): मूल्य निर्धारणनीति (ppeSourcePriority List<String> — typed MortgageVendorType §5 विक्रेता डोमेन को स्थगित; नहीं LO-Comp), कैपिटलनीति (NO pullThroughPct) + कैपिटल कॉन्सेंट्रेशन सीमित बच्चे, सर्विसिंगनीति (scra/fdcpa immutable) आविष्कारक). आंशिक अद्वितीय सूचकांक + scra/fdcpa CHECK KamoInitializer में जाते हैं। - ProductEnablement (single-active per program); channelRestriction @ElementCollection; programId UUID — Program.id UUID है, डॉक की 'लांग' एक कोड-सत्यापित त्रुटि है। निवेशक परिवार: निवेशक सम्मेलन + निवेशक ओवरले + डिलिवरीरुले (Reuses) ************* - कोई dup नहीं) + CommitmentRule (CommitmentType का उपयोग करता है)। जोखिम ओवरले (ruleExpression JSONB स्ट्रिंग)। 11 नए enums। MlosActivationservice @Component (gated mlos.config.enabled) Id) ************* चरण, मंजिल - संबंध LenderProfile + स्वायत्तता विन्यास + AutonomyResolver (गेट की आत्मविश्वास की दीवार के लिए प्रति किरायेदार स्रोत)। 23 mlos.config परीक्षण ग्रीन (MlosActivationService 6 new). गोपनीयता आधार पैटर्न पूरे (आधुनिक @Id UUID + @Embedded EmbRecordState; बच्चे कोई EmbRecordState नहीं)। योजना: ************* (exended). Deferred: पूर्ण स्क्रीन / मॉड्यूल /vendor सक्रियण मैट्रिक्स + मान्यप्रोफाइल + सुरक्षा सेवा स्वयं हील; *.config.history append-only table; predicate evaluators.
· kamo-shared-library
चैनल प्रयोज्यता इंजन (चरण-1 स्लाइस 4)
Deterministic (doc 04 §8) - उत्पाद x चैनल x निवेशक -> {ALLOWED, DISALLOWED, निष्पादनPath, अधिकार मॉडल, वित्त पोषणBehavior}। - ChannelApplicabilityRule इकाई: **************** शर्त एक्सप्रेशन (JSONB स्ट्रिंग, प्रोग्राम.rulesetJson precedent)/outcome/ ************* तारीख + EmbRecordState. प्राथमिकता DERIVED दायरे से ( संग्रहीत नहीं)। समान विन्यास आधार पैटर्न। 5 enums: RuleScope (+priority) निवेशक = 0.Tenant=3), चैनल, प्रयोज्यता, ************* (HYBRID) ने प्रति-लान को इनको हल कर दिया) FundingBehavior(5, incl PORTFOLIO HOLD — DeliveryRule's 4-value unify deferred). - ChannelApplicabilityResolver @Component (ungated, stateless): खाली / कोई-DISALLOWED ================================================================================================================================================================================================================================================================ सबसे मजबूत क्षेत्र से attrs के साथ। चैनल संकल्प रिकॉर्ड। 5 ************* हरी (17 mlos.config परीक्षण) हालत एक्सप्रेशन predicate evaluator + प्रभावी-डेट फिल्टर + AiDecision pinning + MlosActivation Service स्थगित पहले से ही KamoInitializer स्कैन में Mlos.config - केवल फिर से रन। योजना: *************
· kamo-shared-library
प्राधिकरणConfig (underwriting Authority + सरकारी प्रतिनिधिमंडल) - चरण-1 स्लाइस 3
- प्राधिकरणConfig (Singleton per LenderProfile): underwritingAuthority DELEGated/NON DELEGated/HYBRID + ManualUwAllowed + govtDelegation Set {FHA DE,VA SAR LAPP,USDA,NONE} @ElementCollection (सामूहिक तालिका) के माध्यम से Mlos authority govt delegation) — गेट्स आंतरिक govt UW बनाम एजेंसी रेफरल। हैGovtDelegation() सहायक (HYBRID / चैनल रिज़ॉल्यूशन deferred)। - UnderwritingAuthority + GovernmentDelegation enums + AuthorityConfigRepository. - समान विन्यास आधार पैटर्न (मैनुअल @Id UUID + @Embedded EmbRecordState); UNIQUE(lender profile id) Singleton. पहले @ElementCollection in mlos.*. 3 प्राधिकरणConfigTest ग्रीन (12 mlos.config परीक्षण)। Mlos.config पहले से ही KamoInitializer स्कैन - फिर से रन mlos authority config + संग्रह तालिका बनाता है।.
· kamo-shared-library
एआई स्वायत्तता विन्यास + सुरक्षा-तल संकल्पक (चरण-1 स्लाइस 2)
AiAutonomyConfig (Singleton per LenderProfile); autonomyLevel ************* वैश्विकडिफ़ॉल्टथ्रेशोल्ड DECIMAL(4,3), AutoExecuteEnabled) + AutonomyStageOverride (per (प्रोफाइल, स्टेज); स्टेज कुंजी reuses LifecycleStage — कोई अलग पाइपलाइनStage enum मौजूद नहीं है; आत्मविश्वासThreshold + AutoExecuteEnabled). समान विन्यास-entity आधार पैटर्न (manual @Id UUID + @Embedded) EmbRecordState; UNIQUE(lender profile id) Singleton + UNIQUE(profile,stage key). - स्वायत्तताResolver @Component (ungated, stateless लाइक फैसलेGate): प्रभावी थ्रेसहोल्ड = Max(stageOverride?:global, safetyFloor) - स्वायत्तता केवल विश्वास की दीवार को समझती है और NEVER गैर-ट्यूनेबल प्लेटफॉर्म फ्लोर (doc 13 §8.7); autoExecuteEnabled ओवरराइड-एंड-ग्लोबल। गेट की आत्मविश्वास की दीवार (वायरिंग डिफेंडर) के लिए प्रति किरायेदार स्रोत। 5 स्वायत्तताResolverTest + 4 LicensingResolverTest ग्रीन (TDD)। इंडेक्स इकाई घोषित। Mlos.config पहले से ही KamoInitializer स्कैन में - फिर से रन 2 नई टेबल बनाता है।.
· InitializerService
रजिस्टर mlos.config repo pkg (चरण-1 स्लाइस 1)
जोड़ें com.kamo.z.shared.mlos.config to @EnableJpaRepositories so KamoInitializer Mlos lender profile + mlos licensing entry. इंडेक्स (incl.) यूनिक्वायर Market id) @Table — कोई SchemaCleanupRunner DDL की जरूरत के माध्यम से इकाई घोषित कर रहे हैं।.
· kamo-shared-library
LenderProfile + LicensingEntry विन्यास नींव (चरण-1 स्लाइस 1)
न्यू com.kamo.z.shared.mlos.config tenant-config नींव (doc 04 §3): - LenderProfile (root, UNIQUE per MORTGAGE marketId) - सॉफ्ट FKs बंद संगठन (लंबी) + वाणिज्यMarket (UUID) by id. नोट मार्केट आईडी UUID है (commerceMarket.id) gen random uid है; doc 04's 'long FK' एक कोड-verified है त्रुटि, AiDecision.loanFileId के समान मामला। फिर से खेलना के लिए प्रोफ़ाइल संस्करण। - LicensingEntry (प्रति-राज्य कंपनी लाइसेंसिंग, सदस्य StewardLicense से अलग) - लाइसेंस प्रकार 8-मूल्य enum; स्टेटकोड ISO-3166-2; कोई संग्रहीत स्थिति, गणना नहीं (doc 04 §7.3) LicensingResolver @Component (gated mlos.config.enabled) प्रोफ़ाइल, राज्य, प्रकार) तारीख आधारित; खुला क्षेत्राधिकार => झूठी (act blocked). - Config-entity आधार पैटर्न: मैनुअल @Id UUID + @Embedded EmbRecordState (NOT) BaseUuidEntity - इसके टाइमटैम्प्स को collide करेंगे; doc 04 §3)। 4 लाइसेंसिंगResolverटेस्ट ग्रीन (TDD)। सूचकांक इकाई घोषित (UNIQUE market id). Deferred: **************** सिंगलटन; MlosActivation सेवा + सुरक्षा सेवा बूट स्वयं हील।.
· DaemonService
डेमन सर्विस अनुपालन टाइमर SLA स्वीप (टाइमर अपनाने वाला)
MLOS अनुपालन टाइमर के पहले गोद लेने वाले: एक क्वार्ट्ज नौकरी (every 5 min) कॉल ************* ARMED-but-past-deadline ECOA फ्लिप करने के लिए (AdverseActionTimer) + Reg X (RegXTimer) घड़ियों के लिए EXPIRED तो एक BLOCKED उधारकर्ता चुपचाप विनियामक समय सीमा को उड़ा नहीं सकता है। अनुपालनकर्तास्वीपजोब (क्वार्ट्ज जॉब) + क्वार्टज कॉन्फिग जॉब डिटेल/ट्रिगर; टाइमर सेवा @Autowired (required=false) + एक डिफ़ॉल्ट बंद सक्षम ध्वज है, इसलिए नौकरी विन्यास की परवाह किए बिना दुर्घटना से सुरक्षित है। @JpaRepositories += ************* - विन्यास: mlos.compliance.enabled=true ( साझा-lib सेवा को सक्रिय करता है) + ************* {enabled:true, cron:'0 */5 * * *?'}। सुरक्षित नो-ऑप जबकि टाइमर टेबल खाली हैं (अब तक कोई इंजन हथियार टाइमर नहीं)।.
· kamo-shared-library
************* DaemonService SLA स्वीप के लिए
प्रत्येक ARMED-but-past-deadline AdverseActionTimer + RegXTimer को EXPIRED में फ्लिप करता है ( टिकाऊ वृद्धि संकेत अनुपालन steward स्क्रीन सतहों; घटना एक अनुपालन कतार के लिए उत्सर्जन एक अनुवर्ती है। गिनती वापस आती है; खाली टाइमर टेबल सुरक्षित नहीं हैं। 2 नए परीक्षण (12 अनुपालनकर्ता सेवा) टेस्ट ग्रीन).
· kamo-shared-library
निर्णय में वायर लाइसेंस-एवेयर असाइनमेंट
फैसलेSpine.record () अब स्टैम्प्स StewardTask.assignedMemberId से जब एक रूट निर्णय ऋण के अधिकार क्षेत्र को वहन करता है तो स्टेवर्डएसाइनर: - फैसलेRequest gains वैकल्पिक विषयStateCode (ISO-3166-2) + acttype (LicensedActtype) जब दोनों मौजूद हैं और एक स्टीवर्ड एसाइनर बीन मौजूद है (mlos.legal.enabled), रूट किए गए कार्य को एक स्टेवर्ड को लाइसेंस दिया गया है। उस स्थिति के लिए कि अधिनियम; अन्यथा यह unassigned (एक steward यह दावा). - स्टीवर्डसाइनर ने ऑब्जेक्टप्रोवाइडर के माध्यम से एक OPTIONAL Docstor के रूप में इंजेक्ट किया, इसलिए एक बिना mlos.legal.enabled रीढ़ की हड्डी अप्रभावित है। बैक-कम्पैट 6-आर्ग निर्माता बनाए रखा - 4 मौजूदा निर्णयस्पिनटेस्ट पास अपरिवर्तित। 29 एमएलओ परीक्षण ग्रीन (DecisionSpine 5, StewardAssigner 5, LegalRegistry 9, StewardAssigner 5, LegalRegistry 9, StewardAssigner 5, LegalRegistry 9, and अनुपालनकर्ता 10). कोड केवल - कोई स्कीमा परिवर्तन नहीं, कोई KamoInitializer रन नहीं।.
· kamo-shared-library
लाइसेंस-aware StewardAssigner (decision-spine Slice 2b-ii)
लाइसेंस-एवेयर स्टेवर्ड चयनकर्ता (doc 03 §3.2; doc 01 §6 #9) - एक चुनें स्टीवर्ड जिसका MLOS StewardLicense अधिनियम की आवश्यक लाइसेंस के लिए TODAY के लिए मान्य है उधारकर्ता के राज्य में टाइप करें, लोड-संतुलित करने के लिए कम से कम खुला StewardTasks (tie ->) सबसे कम सदस्यआईडी; खाली जब कोई अधिकार क्षेत्र (कैलर एस्केलेटर) को कवर नहीं करता है। StewardLicense पर @Component (gated mlos.legal.enabled) + StewardTask repos — MLOS गेट रजिस्ट्री पढ़ा जाता है, बंद कोर orgs नहीं। लाइसेंस (no donotmodify deps; सदस्य-> (orgId, userId)-> लाइसेंस जुड़ना) से बचाता है। - StewardLicense.isValidOn(date) - तारीख आधारित लाइसेंस के लिए सत्य का एकल स्रोत (status computed, कभी संग्रहीत नहीं); ************* इसे फिर से तैयार किया गया। ********** (कैंडीडेट पूल) 5 स्टीवर्डसाइनरटेस्ट ग्रीन; 9 लीगल रेजिस्ट्री टेस्ट अभी भी ग्रीन (14 कुल)। कोई स्कीमा परिवर्तन (कोई KamoInitializer रन)। Substrate-first — wire in the फैसलेSpine.record() ROUTE TO HUMAN को सौंपे गए टिकटों के लिए सदस्य एक अनुवर्ती है।.
· InitializerService
Mlos.compliance repo pkg (Slice 2c-i)
जोड़ें ********** @ सक्षम JpaRepositories तो KamoInitializer Mlos adverse action timer + mlos regx timer बनाता है। इंडेक्स इकाई द्वारा घोषित @Table — कोई SchemaCleanupRunner DDL की जरूरत है।.
· kamo-shared-library
ECOA + Reg X टाइमर सब्सट्रेट (decision-spine Slice 2c-i)
नया ************* पैकेज (doc 03 §2.8) - कामो स्वामित्व locked donotmodify के अनुपालन टाइमर अनुरूपता। TridTimer. सब्सट्रेट प्रथम: - AdverseActionTimer (ECOA/Reg B 30-day घड़ी); NoticeKind ECOA AA/COUNTEROFFER/ INCOMPLETE NOA) + RegXTimer (ffirmative servicing कर्तव्यों); कर्तव्य किंड ************* मगरमच्छ **************** सॉफ्ट लोनफ़ाइलआईडी रेफरी, +ऑर्गिड के लिए किरायेदार अलगाव। Breach-sweep index (status, deadline at). - अनुपालन टाइमरस्टैटस enum + 2 repos के साथ ********** - अनुपालनकर्तासेवा @Component (gated mlos.compliance.enabled): हथियार टाइमर, नियामक दिवस-काउंट (30/36/120/5, परीक्षण द्वारा बंद) को एन्कोड करता है, कनेक्टिविटी एक स्पष्ट समय सीमा की जरूरत है, इंजेक्शन घड़ी, स्वीप खोजकर्ता के माध्यम से उल्लंघन का पता लगाना। 10 अनुपालन टाइमरसेवाटेस्ट ग्रीन (TDD)। इंडेक्स इकाई @Table के माध्यम से घोषित। DaemonService SLA-escalation + BLOCKED-> STALE deferred (स्वच्छ खोजकर्ता को बुलाता है)। इस स्लाइस को छोड़कर: अनुपालन करना (FK donotmodify) TridTimer, RBPN/FCRA नोटिस, ChangedCircumstance.
· InitializerService
रजिस्टर mlos.legal repo pkg (Slice 2b)
Add com.kamo.z.shared.mlos.legal to @EnableJpaRepositories so KamoInitializer Mlos licensed act registry/mlos ron eligibility/mlos steward license. सभी अनुक्रमणिकाओं को @Table — कोई SchemaCleanupRunner DDL के माध्यम से घोषित किया जाता है।.
· kamo-shared-library
स्टेट-एवेयर कानूनी रजिस्ट्री सब्सट्रेट (decision-spine Slice 2b)
नया com.kamo.z.shared.mlos.legal पैकेज — ग्रीनफील्ड निर्माता का फैसलेगेट के पूर्ण कानूनी दीवार इनपुट (doc 03 §3.2)। Substrate-first, no अभी तक गोद लेने वाला: - लाइसेंस प्राप्त ActRegistry (platform ref, per act+state) - क्या यह विनियमित अधिनियम है कानूनी रूप से लाइसेंस प्राप्त मानव की आवश्यकता होती है? अद्वितीय (act type, state code)। - RonEligibility (प्लेटफॉर्म रेफरी, प्रति राज्य) - ronAllowed/ipenRequired + कमीशन/signer/property संरेखण नियम टोकन. - StewardLicense (tenant-scoped, MemberId की कुंजी) - NMLS-by-state लाइसेंस। कोई संग्रहीत स्थिति स्तंभ: प्रभावी से computed (doc 13 §4.3 सुधार लेजर overrides doc 03 के इनलाइन स्टेटस फील्ड)। - LegalRegistry @Component (gated mlos.legal.enabled, डिफ़ॉल्ट बंद): विफल बंद LegallyRequiresHuman / stewardLicensedFor (date-based) / ronAllowedIn. स्टेटकोड ISO-3166-2 स्ट्रिंग (अंतरराष्ट्रीय रेडी) है; USStateType मृत कोड है। इंडेक्स इकाई @Table के माध्यम से घोषित। 9 LegalRegistry टेस्ट पास (TDD)। अनुबंध द्वारा भेजे गए निर्णय को पूरा करता है - कोई निर्णय / steward संपादन नहीं। लाइसेंस-एवेयर StewardTask असाइनमेंट अगले स्लाइस को स्थगित कर दिया गया।.
· InitializerService
रजिस्टर mlos.steward + mlos.orchestration repos; स्लाइस-2a स्कीमा
- KamoInitializerApp @EnableJpaRepositories: संचित एमएलओएस रेपो जोड़ें पैकेज ************* प्लस Esign/personal loans इसलिए KamoInitializer अपनी स्कीमा का मालिक है। - SchemaCleanupRunner: जेनेरिक @Enumerated whitelist-CHECK स्वीप; आंशिक / अद्वितीय सूचकांक + FKs के लिए **************** ************* निर्णय-spine Slice-2a सूचकांक अब हैं इकाई घोषित (@Table) इसलिए स्लाइस-2a ब्लॉक एक नो-ऑप टिप्पणी है।.
· kamo-shared-library
डिसिजन-स्पिन स्लाइस 2a - ऑर्केस्ट्रेशनस्टेट + स्टीवर्डटास्क + डिसिजनस्पिन ब्लोकेड-स्टेट मशीन
OrchestrationState (per-loan-stage GREEN/BLOCKED/COMPLETE) + StewardTask (exception record) + enums + निर्णयस्पिन (@ConditionalOnProperty mlos.spine.enabled): भेजी गई निर्णय को रचना + AiDecision WORM लेजर + एक tx में लेन-देन आउटबॉक्स - ROUTE TO HUMAN एक टास्क + BLOCKs खोलता है मंच; संकल्प () एक HUMAN OVERRODE निर्णय + unblocks लिखते हैं। मुस्तबली राज्य संस्थाओं (no @PreUpdate). 4/4 Mockito परीक्षण हरे रंग।.

तुम्हारा ब्रह्मांड इंतजार कर रहा है.
मिनटों में मुफ्त शुरू करें. जब भी आप तैयार हों तो उत्पाद जोड़ें - कोई माइग्रेशन नहीं, कोई नया लॉगइन नहीं.
हमेशा के लिए मुफ्त - कोई क्रेडिट कार्ड की आवश्यकता नहीं