Jurnal de schimbări
Ce e nou.
Fiecare îmbunătățire a platformei, pe măsură ce se livrează.
· kamo-shared-library
§6.1 RON grâne de perete legal (VORM CONGELAT) + Eveniment închis STEP BLOCAT
Statul de proprietate este inghetat identitatea pe pachetul de inchidere (proprietatea de închidere nu nu se mișcă) și este grânele §6.1 RON pereții legali de responsabilitate de stat. ÎNCHID STEP BLOCAT este semnalul durabil la care se reacţionează coada de aşteptare cu excepţie, atunci când RON este zidit.
· kamo-shared-library
Cheia de închidere MERS SUBLED (doc 05 §6.3)
Semnalul MERS: un MersRegistration *************** a fost anexat pentru împrumut (doar pentru completare, MIN nu a fost niciodată suprascrisă). Tasta de coardă deschisă a aditivului (fără DDL).
· SecurityService
Adăugați camp-apps, VectorService, kamolos, kamo-signer-monorepo la changelog public
· kamo-shared-library
Cheia de închidere STEP RETRIED (doc 05 §6.4)
Semnalul de recuperare: un pachet BLOCKED STEWARD a fost deblocat și un nou nod de închidere materializat pentru subsistemul rejudecat. Tasta de coardă deschisă a aditivului (fără DDL).
· kamo-shared-library
Cheia de închidere STEP FAILED (doc 05 §6.4)
Semnalul de defectare pe drive-loop: un pas de închidere eșuat/BLOCAT, pachetul este ținut BLOCKED STEWARD; Coada cu excepţia celor care se apropie reacţionează. Tasta de coardă deschisă a aditivului (fără DDL).
· kamo-shared-library
ÎNCHIDEREA STEP COMPLETE + ÎNCHIDEREA PACKAGE DESTINATĂ (doc 05 §6.4)
Semnalele drive-loop: un articol de închidere a ajuns completD (următorul adaptor) și toate etapele necesare efectuate (livrare de investitori/rezervare la bord). Taste cu coardă deschisă pentru aditivi (fără DDL).
· InitializerService
Index unic de siguranţă NULLs pentru versiunile de closingWorkflowTemplate (doc 05 §6.3)
O versiune per (organization id, lowe level, lowe ref id) grâne. CRDB este NULLs-distinct, deci împărțit pentru luminează ref id (mirrors mlos aiptp *): mlos closing wft version uniq (scop ref id NULL) + ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* ă Description publică pierde la un 409 (în afară de 409s asamblor rezolvator pe dup, asamblare cărămidă).
· kamo-shared-library
***************** cheie eveniment (doc 05 §6.3)
Semnalul durabil pe care editorul şablon de doc-orchestrare îl emite într-o nouă versiune de closingWorkflowTemplate. Tasta de coardă deschisă a aditivului (fără DDL).
· kamo-shared-library
Cheia de închidere PACKAGE ASSEMBLED (doc 05 eÎnchidere)
Semnalul durabil asamblorul de doc-orchestrare emite atunci când un pachet de închidere este creat dintr-o soluție ÎnchidereWork flowTemplate + primul său nod artefact. Tasta de coardă deschisă a aditivului (fără DDL).
· kamo-internal
Elimină etapa "Publică în lume"; repară Run All
Generatoare scrie acum gresie direct la unitatea de servire, astfel încât lumegen conducta nu mai are o etapa de publicare/push. - worldgenNats.ts + univers/types.ts: drop 'push' from WorldgenStageId, Worldgen stages and Stage ORDER (pipeline = *************** - componente.tsx: eliminați intrarea STAGE META + cloudUploadIcon neutilizate. - services/[stage]/start: acceptați "toate" ca țintă de comandă astfel "Run All" works (se extinde la prep>hidro->flora->transport pe agent) în loc de 400.
· kamo-shared-library
PULL THROUGH POLICY REVIZUIT cheie eveniment + nul-safe AiPTP backstop doc (doc 09 §8)
Adaugă tasta canonică *********** tip de eveniment (semnalul durabil Pull-Through motorul reîncarcă politica sa activă pe) pentru platforma de guvernare AiPullThroughPolicy editor. Actualizează AiPullThroughPolicy WORM javadoc pentru a documenta separat-activ backstop (per-market + NULLs-distinct-seif-org-la nivel de cereale) și scriitorului a cerut demote-then-inserte ordine.
· kamo-shared-library
Identificatorul de crediteEvent entity de audit exclusiv pentru apendice (doc 11 §5.3/§10)
LoanIdentifierEveniment jumătate din Doc 11 §5.3 pas-4 / §10 "completitate audit" (fiecare mentă/supersede emite a Rândul evenimentului WORM). Noul ***************** LoanIdentifierEventType; Identificator de crediteEvent Repository}: o entitate WORM unică pe bază de bloc total (Decizia/Decizie Ai Idiom de intrare toate câmpurile se updatable=fals, @PreUpdate aruncări, a apărutAt = DB dateCreated) recording org/loanFileUid/ IdentificatorId (noul rând activ, soft UUID ref)/supersedesIdentificatorId (cel înlocuit anterior, nul pentru o ment)/evenimentType A fost o decizie nulă. Jumatate de decizie WORM (apărată Soft refs by id only (no @ManyToOne), Id-uri lungi serializate ca String. Tabelul se creează automat pe rulonul kamoInitializator (Indicii declarați de entitate pe împrumut file uid + identificator id; nicio modificare SchemaCleanupRunner). Aditiv .
· InitializerService
(împrumut file uid,type) index unic-unic nativ (doc 11 §5.3/§6.2)
Închide o gaură dublă existentă în registrul de identificare a împrumuturilor MLOS: index (a) **************** doar constrângeri (org, tip, valoare) pentru cei 10 REGISTRY-NATIVE tip unic activ, astfel încât două rânduri native active ale AME (împrumut file uid, tip) dar diferite valori ar putea ambele comite (de exemplu, o renumeră curse un registruNative cu o valoare diferită conflict). Noul index parţial unic ******************* (împrumut file uid, type) ="ACTIVE" ȘI EXTERN system reference IS NULL ȘI TIP IN (cele 10 tipuri native) aplică cel mult unul Id nativ activ per (împrumut, tip) ă tipul IN (...) lista oglinzilor index (a); țineți sincronizarea cu *************** (derivarea §6.2. gardian). În cazul în care nu există, prod nu încalcă rândurile native duplicat-active (verificate).
· kamo-shared-library
Adaugă tasta IDENTIFIER SUPERSED tip eveniment
Tastă de eveniment cu coarde deschise aditive (doc 11 §5.3/§7.3) pentru numărul de înregistrare/semnalul de supersesiune CONFORMITATE TIMER BREACHED precedent (fără enum/schema/KI). Consumat de MLOSIdentifierService.renumăr.
· kamo-shared-library
*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
Adaugă automatomie eficientă (orgId, etapa, etaj) → Autonomie eficientă{treshold, AutoExcuteEnabled}: un singur chain-walk (profil → config → stage-override) returnează AMBELE §6.2 pragul de încredere-perete etajat ȘI auto execute enabled comutatorul principal (conștient de suprascriere). autonomie eficace Prag acum delegaţi la ea (Singura sursă a adevărului). Să rCE blocare poarta onoare un chiriaș care se transformă Autoexecutarea OFF ca CEILING Auto-act Indiferent de autonomia cererii nivel. Gol atunci când nici un chiriaș de configurare (apelantul folosește platforma implicit; cererea guvernează). Aditiv; doar fasolea MlosActivationservice poartă este afectată. 4 teste.
· InitializerService
Indice de blocare parțială dublă pentru înregistrările de blocare RCE (doc 08 §7.3)
SchemaCleanupRunner adaugă A fost un accident. Index UNIQUE pe mlos lock record (organization id, loan scenario id) Starea IN *************** Cel mult o blocare rata live pe împrumut scenariu: Deterministic DB backstop to MLOSCapitalMarketsService's app-level anti-dubla-blocare, închiderea rasei TOCTOU concomitent-commit (un duplicat Live lock is silențios conformation coruption Ipotent (IF NU EXISTĂ); deja aplicat la prod CRDB.
· KlusterServices
Secretul universului-minio pentru bootstrap + nota găleată urâtă (§14)
Adaugă pasul 6 la boottrap-universul.sh: creează secretul univers-minio (ACCESS KEY/SECRET KEY from universe-backup-s3 root credes) și observă că găleata MinIO trebuie să existe. Idempotent deja prezent.
· DaemonService
Consumatorul MLOS pentru creșterea timpului de conformare (BLOCKED→STALE)
Jumătatea de consumator a buclei de încălcare a timpului de conformare (doc 03 §2.8; emite deja jumătate nave). ConformitateTimerBreachConsumer subscrie (durabil JetStream) la ************* și, per împrumut încălcat, răstoarnă programatorii de orchestrare BLOCKED la STALE prin OrchestrationEscalation Serviciu (mutabil, idepotent Adds ***************** la @EnableJpaRepositoares; permite mlos.outbox (astfel încât emisiile matura este grav scris + releed) și 5 teste.
· InitializerService
§2.4 Anti-AUS-shopping index parțial-unic pe mlos aus run
O substanţă activă (nesupravegheată, necongelată) AusRun per (loan file uid, source etichet) cum ar fi AUS-shopping" (doc 10 §2.4/§2.5). În condiții de siguranță pentru a ateriza acum că MLOSUnderwritingService scriitor gestionează flip-ul fals înlocuit→true înainte de introducerea noii alergări active. Aplicat la prod CRDB.
· kamo-shared-library
Persisted par flag on MlosPricedProductResult + OrchestrationStepStatus.STALE
- MlosPricedProductResult câștiguri par flag (Boolean, implicit fals): §8.1-step-5 parcelă a scara de blocare a perioadei rândului, congelată la inserție (persistența de înregistrare a răspunsului numai par pavilion). - OrchestrationStepStatus câștigă STALE: un pas BLOCKED a cărui conformitate SLA timer încălcat + escaladat (stabilită de către consumatorul de sisteme de măsurare a conformității; doc 03 §2.8). Ambele aditivi; ddl-auto:actualizarea adaugă coloana, iar matura generică enum-CHECK admite STALE pe următorul kamoInitializer run.
· kamo-shared-library
RateSheetSanityGate
@Component (modelul PriceAssemblyEngine) care validează o rată/preț candidat Scară ÎNAINTE de publicarea unei versiuni a foii de calcul (doc 02 §6.6): bandă de prețuri conștientă de convenție [par±20] (par=100 POW TO 100 / 0 PUNCTS FROM PAR Lada montonică (preț care nu se micșorează pe măsură ce rata notelor crește, per scară (lockPeriodDays,ioFlag) și buna formatiune structurala (rata non-goala/pozitiva/blocare pozitiva/fara rata duplicat). Rapoarte Toate încălcările; nu reușesc închise. Reutilizabil prin etapa viitoare de ingestie (se decuplează RateSheetLadderCell record, nu entitatea JPA). 2 agent de evaluare contradictorială → FIX THEN Ship (1 must-fix aplicat): eliminat par-sanitar aproape-par-PRICE verificați etichetarea, amânarea; banda limitează deja prețurile la ±20 din par). De asemenea: înmuiat semn-convenție javadoc (verificare explicită a inventarului semnelor DEFERRED, capturi în bandă numai erori de magnitudine brută), exclus celule cu rată nulă de la scanarea duplicat/monitonică și săriți peste compararea monotonică la rate egale. 18 teste fără DB (TDD). Nici o entitate nouă → nici un kamoInitializer run.
· kamo-shared-library
LockPolicyVersionPublisher
Fratele de lacăt al lui *************** Keyed per INVESTOR (ux lock policy version active = (organization id, investitor id) Where status="Activant' And Efficient till IS NULL). Același atomic înainte de fereastră aproape + salvaAndFlush Înainte ca candidatul INSERT să fie închis (ordinul de spălare a apei de la Hibernat Capcană). Deltas vs rata-folie: domeniul de aplicare cheie investitorId; nici o revizuireLabel/emisedAt; intraday Cheile de secvenţă în ziua lui EfficientFrom. Shared-lib @Component gated mlos.catalog.enabled + repo Finder ***************** 11 no-DB Mockito teste (TDD). Cu aceasta, §6.5 supersesiune de dating eficient este complet peste toate cele trei WORM versiunea spinilor (fișă de calcul + orientare + politică de blocare). Oglindă fidelă → CRDB e2e este poarta. Nicio entitate nouă/taxă → nu rulează kamoInitializer.
· kamo-shared-library
OrientareaVersionPublisher
Fratele de orientare-versiune a RateSheetVersionPublisher, tasted per PRODUSUL (ux guideline version active = (organization id, product id) Where status="ACTIVE" Şi eficace până la NUL). Aceeaşi fereastră anterioară atomică închisă: SUBSTANŢĂ→ SUPERSED + eficient till = succesor.efficient from, înlocuiește id link, și salveazăAndFlush the Inainte ca candidatul INSERT sa se inchida (comanda de inchidere a hibernatului inainte de actualizare Capcană). Deltas vs rate-sheet: rocket key productId; valid reviewLabel + sourceDocumentId (nu este emisAt); chei de secvență intraday pe ziua efectivăDe la ziua lui. Partajat-lib @Component gated Mlos.catalog.enabled + repo finder ************* 12 teste fără DB Mockito (TDD, inclusiv comanda de spălare InOrder + WORM-guard re-run). Oglindă fidelă al editurii de foi de calcul → → poartate de e2e comportamental (ghideline supersesiune flips eligibilitatea prețurilor). Nicio entitate nouă/taxă → nu rulează kamoInitializer.
· kamo-shared-library
RateSheetVersionPublisher
Fereastra anterioară atomică închide MLOSCatalogService bootstrap scriitor Amânaţi. Publicarea unei noi versiuni a foii de calcul pentru un investitor existent (org) Domeniul de aplicare închide acum predecesorul (ACTIVE→SUPERSED + efectiv până la = succesor.efficient from), leagă succesorul (supersedes id, următorul intraday secvence no) and roshes the prior's closefore the candidate INSERT comenzi INSERTs înainte de UPDATEs într-o culoare, astfel încât salvațiAndFlush (prior) este necesar să evita o încălcare parţială-unică auto-provocată ux rate sheet versiune activă. Shared-lib @Component gated mlos.catalog.enabled (rezolvatorul EfficientVersionRezolvator) modelul fratelo); apropiat este WORM-legale prin construcție împotriva entității @Preactualized guard. 15 no-DB tests (Mockito) inclusiv. chosh-order InOrder + WORM-guard re-run. 2 agent de revizuire adversarială → FIX THEN Ship (1 must-fix aplicat: SourceDocumentId validat → curat 400, nu un efect post-side 500). Nicio entitate nouă/table/repo-interface → niciun kamoInitializer run.
· kamo-shared-library
Adaugă *************** pentru evenimentul PPE Run
· kamo-shared-library
EligibilitateCellMatcher one-dimension motiv-cod de atribuire (specificitatea ECOA)
Închide decalajul de accesibilitate motiv-code revizuirea PriceAssemblyEngine marcat: a Celula dor de pe exact o dimensiune de izolare devine acum Inneligibil cu sale motiv principal specific ECOA (FICO BELOW MIN / STAT NOT ELIGIBILE / Proprietatea TYPE NOT ELIGIBILE / UNITĂȚI NOT ELIGIBILE / *********** în loc să se prăbuşească la codul generic NO CO E accesibil. Lipsuri multidimensionale/ambigue și de catalog numeric (FICO) peste un plafon sau între benzi; o sumă a împrumutului între benzile separate), corect sejur NO COVERSMENT (un defect de acoperire §6.6, niciodată un refuz al debitorului). Substrat pur nici un serviciu live nu consumă încă chibritul; nici o schimbare schema, nici kamoInitializer run. - EligibilitateResult: poartă codul principal Mlos AdversactionReasonCode (cel care se potriveşte) deţine doar are contextul dimensional). Neeligibilul fără motiv Fabrica este REMOVED astfel motivCode este nul if ELIGIBILE @PrePersist invariant deține prin construcție pentru orice rezultat construit de fabrică. - EligibilitateCellMatcher: a eșuat Dims + relax-one-dimensiuni atributNoCoverage; direcția (BELOW/ABOVE/GAP) calculată numai pe baza esecurilor de la sol-la-care-dimensiune (nu toată matricea) astfel încât un împrumut prea mare pe benzi disjoint nu este niciodată etichetat greșit BELOW MIN, și un FICO deasupra tavanului / gap este un decalaj de acoperire, nu un fals "scor prea Jos." A se vedea nota de subsol 1. Reatribuie motivele de până la 4 NOAA. - PriceAssembleEngine: motiv aditiv Sau [cell, backback] codul propriu; cellReasonCode (matrixType) păstrat ca rezervă defensivă a rezultatului brut. 2 agent de revizuire contradictorială → FIX THEN Ship; aplicat ambele must-fixe (suma de împrumut & Indicatoare de direcție FICO greșite, fiecare dovedit cu un exemplu lucrat) + ar trebui-fixe (totalizare înregistrarea invariantă; substrat-contract + documente de direcție). 19 meciuri + 33 motoare teste verzi (89 teste de catalog verde).
· kamo-shared-library
ComplianceTimerService emite mlos.respectation.timer.breased on SLA breasurse (doc 03 §2.8)
Javadoc-numit follow-up pentru cronometrele Slice-2c expediate: "emisie de eveniment la o Coada de conformitate este un follow-up." expiratBreached() emite acum o FORMANCE TIMER BREACHED event per ARMED→EXPIRED timer, writed to the outbox IN Aceeaşi transacţie ca şi flip (garanţia tranzacţională-outbox: o încălcare este escaladarea dacă este înregistrată durabil). Consumatorul din aval îi conduce pe cei înalţi escaladarea steward + starea Orchestration BLOCKED→STALE abandon (o felie ulterioară). - OutboxWriter injectat ca o dependenţă opţională *************** nul dezactivează emisiile astfel încât serviciul să expire încă cronometrele atunci când outbox substrat nu este cu fir în serviciul de rulare Cusătura curentă a serviciului Daemon (se păstrează cusătura cu 3 argi). - Plic: domeniu=respectare, agregatId=creditFileId, sarcină utilă transporta Nu-ţi face griji. - O nouă constantă a evenimentului String - Nu. (nici o schimbare schema → nici un kamoInitializer run). - 14 Teste de conformareTimerService verzi (12 teste de emisii existente neschimbate + 2). Oglindă credincioasă a producătorului din afara cutiei de cutii de gunoi expediat model (exceptat de la examinare).
· kamo-shared-library
StareTemplateExtension
Noua dependenţă de date de care are nevoie portalul împrumutat "Ce-a mai rămas": Lock LoanCondition poartă numai ID-uri de personal/membruorg, astfel încât portalul nu poate spune care sunt condițiile deschise la care poate acționa un PRIETEN. doc 09 §6.4 prescrie a cu împrumutStegul actionable on the LoanConditionTemplate as a SIBLING entity coloana privind miezul blocat (doc 01 §1.1). Steagul pe condiţie este afişat serviciu-side din acest pavilion șablon + categoria de stare. - StareTemplateExtensie (com.kamo.z.shared.mlos.docs, configurație/referință mutabilă): împrumut moale FKConditionTemplateld → blocat LoanConditionTemplate.id (UID), DB-UNIQUE 1:1; organizație denormalizatăId (Long, String-serialized); împrumutatAcțiune boolean @CulumnDefault fals (reușit-siguranță: interior-numai dacă nu curatate actionable). - *************** (findByLoanConditionTemplateId + Nu-ţi face griji. mlos.docs deja în @EnableJpaRepositorii; indexul UNIQUE este declarat de entitate (fără SchemaCleanupRunner). - 3 teste non-DB verzi. Oglinda credincioasa a documentuluiCeriment soft-FK-to-locked model (exceptat de la examinare).
· kamo-shared-library
PriceAssemblyEngine
Prima felie de Mlos pur-logic: piatra care compune catalogul expediat rezolvatoare în matematica de stabilire a prețurilor pentru servere autorizate (doc 02 §8.1 pași 2-4). Apatrid negat @Component (legătură cu AdjustingConditionEvaluator/ ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* Nici o schimbare schema. Viitoarele fire MLOSPrecingService repos + persistență + evenimente. - fuzionareEligibilitate(): filtrul de trei conjuncturi §8.1 pas-2/3 (celulă ȘI orientare ȘI Poarta AUS) → Eligibilitate Verdict, prioritate de blocare cea mai severă cu un singur Mlos AdversactionReasonCode (celulă *************** Ghid → AUS-when-when-necesar → ELIGABIL). - asamblarePreţ (): final preţ = bază + Σ ADITIV + Π Multiplicative (stack order) + marjă, cu respectarea valorii capacului. Aditiv rezumat (→ total ajustări 9,6), apoi Factori multiplicativi scara de funcționare subtotal în stiva ascendentă ordine (uid quie-break), apoi marja adăugată ultima/în afara Π; unică finală HALF UP la (9,4). - pret (): orchestreaza ambele; iesirea satisface MlosPricedProductResult @PrePersist oferable-consistence invariant prin constructie. - cap valoare = clemă de magnitudine a magnitudinii de conservare a semnelor aditive (capitol = 0, destinate); o valoare a capacului multiplicativ este un defect de configurare tare (închisă fără succes, niciodată un preţ greşit). AUS PASS/NOT APLICABIL non-blocare (preț înainte-AUS; §8.2 blocare-stație greu de oprire este de serviciu). - Nou: AusGateOutcome enum + - Nu. Înregistrări despre produse PricedComput. 33 teste nr.DB JUnit5 verzi. Cercetare Fluxul de lucru (3-reader + sinteză) + 2 agenţi de evaluare contradictorială (verdict FIX THEN Ship, zero must-fix; aplicat 5 ar trebui-fixarea elementelor de întărire: tare Aparat de protecție cu capac multiplu, doc de acoperire cu cod raţional, capac = 0 + cel mai mic cod documente și 6 teste de acoperire).
· InitializerService
Register pkg + RCE/pusl-through DDL (docs 08/09)
@EnableJpaRepositorii += Nu-ţi face griji. SchemaCleanupRunner: Nu-ţi face griji. (partial-unique) + rce commit ai decision fk + rce commit lock record fk + rce commit pricing snapshot fk (orta de ștergere a capturii §7,4) + mlos aiptp one active uniq (o politică activă de tragere-through per creditor profil+market). RCE Tabelul + constrângerile aplicate + verificate.

Universul tău te așteaptă.
Începeți gratuit în câteva minute.Adăugați produse oricând sunteți pregătit — fără migrare, fără autentificări noi.
Gratuit pentru totdeauna — nu este necesar un card de credit