Changelog
Was ist neu?
Jede Verbesserung an der Plattform, wie sie geliefert wird.
· kamo-shared-library
.6.1 RON Rechtswand Korn . ************ (gefrorene WORM) + CLOSING_STEP_BLOCKED Veranstaltung
Der Immobilienstaat ist eingefroren Identität auf dem Schließungspaket (eine Schließung Eigentum tut nicht bewegen) und ist das Getreide die 6,1 RON staatliche Förderbarkeit rechts Wand liest. CLOSING_STEP_BLOCKED ist das dauerhafte Signal, auf das die abschließende-Steward-Ausnahme-Warteschlange reagiert, wenn RON ummauert ist.
· kamo-shared-library
CLOSING_MERS_SUBMITTED Veranstaltungstaste (doc 05 -6.3)
Das MERS-Signal: eine MersRegistration ************ wurde für den Kredit angefügt (Append-only, MIN nie überschrieben). Additive Open String-Taste (keine DDL).
· SecurityService
kamp-apps, VectorService, kamolos, kamo-signer-monorepo zu public changelog hinzufügen
· kamo-shared-library
CLOSING_STEP_RETRIED Event-Schlüssel (doc 05 -6.4)
Das Steward-Recovery-Signal: ein BLOCKED_STEWARD-Paket wurde freigegeben und ein frischer PENDING-Kennung materialisiert Wiederaufnahme des Subsystems. Additive Open String-Taste (keine DDL).
· kamo-shared-library
CLOSING_STEP_FAILED Ereignisschlüssel (doc 05 -6.4)
Das Drive-Loop-Ausfallsignal: ein Schlussschritt FAILED/BLOCKED, das Paket wird gehalten BLOCKED_STEWARD; die Schließung-Steward Ausnahme Warteschlange reagiert. Additive Open String-Taste (keine DDL).
· kamo-shared-library
CLOSING_STEP_COMPLETED + CLOSING_PACKAGE_COMPLETED Ereignistasten (doc 05 .6.4)
Die Drive-Loop-Signale: ein ClosingArtifact erreicht COMPLETED (nächster Adapter), und alle erforderlichen Schritte getan (investor-liefern / Service-Boarding). Additive öffnen String-Tasten (keine DDL).
· InitializerService
NULLs-sicherer Unikat-Index für ClosingWorkflowTemplate-Versionen (doc 05 -6.3)
Eine Version pro (organization_id, scope_level, scope_ref_id) Korn. CRDB ist NULLs-distinct, so split für die nullbarer Umfang_ref_id (Mirrors mlos_aiptp_*): mlos_closing_wft_version_uniq (scope_ref_id IS NOT NULL) + ************ auf (org, scope_level, version) (scope_ref_id IS NULL). Die MLOSDocOrchestration Publisher's read-then-write (versionNumber=max+1) Backstop: eine gleichzeitige Dup-Version veröffentlichen verliert zu einem 409 (se den Assembler Rechener 409s auf der Dup, Ziegelmontage).
· kamo-shared-library
**************** Veranstaltungsschlüssel (doc 05 -6.3)
Das langlebige Signal sendet der doc-orchestration Template Publisher auf einer neuen ClosingWorkflowTemplate Version aus. Additive Open String-Taste (keine DDL).
· kamo-shared-library
CLOSING_PACKAGE_ASSEMBLED Event-Taste (doc 05 eClose)
Das langlebige Signal, das der doc-orchestration Assembler aus sendet, wenn ein ClosingPackage aus einem aufgelöst wird ClosingWorkflowTemplate + sein erster Artefaktknoten. Additive Open String-Taste (keine DDL).
· kamo-internal
Entfernen Sie "Publish to World"-Stappe; fix Run All
Generatoren schreiben jetzt Fliesen direkt auf die Servierfahrt, so dass die worldgen Pipeline hat keine Veröffentlichung/Push-Phase mehr. - worldgenNats.ts + universe/types.ts: Drop 'Push' von WorldgenStageId, WORLDGEN_STAGES und STAGE_ORDER (Pipeline = **************** - components.tsx: Entfernen Sie den Push STAGE_META Eintrag + unbenutzte CloudUploadICon. - services/[stage]/start: 'alle' als Befehlsziel akzeptieren, damit "Run All" funktioniert (es dehnt sich auf die Vorbereitung-Hydro-"flora-""Transport auf dem Mittel) statt 400ing.
· kamo-shared-library
PULL_THROUGH_POLICY_PUBLISHED Event-Schlüssel + null-sicher AiPTP backstop doc (doc 09
Fügt den kanonischen ************ Ereignis-Typ Schlüssel hinzu (das langlebige Signal der Pull-Through Motor reloads seine aktive Politik auf) für die Governance-Plane AiPullThroughPolicy Verlag. Updates AiPullThroughPolicy WORM javadoc dokumentiert die gesplittene Single-Aktiv-Kaufsicherung (per-market + NULLs-deutance-safe org-wide grain) und der Schreiber erforderliche Degradation-then-Insert-Bestellung.
· kamo-shared-library
LoanIdentifierEvent Append-Only Audit-Einheit (doc 11 € 5,3 / €10)
Die LoanIdentifierEvent Hälfte der Doc 11 5,3 Schritt-4 / 10 "Audit Vollständigkeit" (jede Münzstätte/Superflede emittiert eine WORM Veranstaltungsreihe). Neu **************** LoanIdentifierEventType, LoanIdentifierEventRepository: eine Total-Block-nur WORM-Einheit (die AiDecision/DecisionInput idiom alle Felder updatable=false, @PreUpdate wirft, aufgetretenBei = DB dateCreated) Aufnahme org/loanFileUid/ identifierId (die neue ACTIVE-Reihe, weiche UUID ref)/supersedesIdentifierId (die ersetzte vorherige, Null für eine mint)/EventType ************ + eine anmulbare aiDecisionId für die Paarungen WORM-Entscheidung Hälfte (aufgeschoben - keine Registrierung AiFunction existiert noch). Soft refs nur durch ID (kein @ManyToOne), Lange IDs serialisiert als String. Tabelle auto-creates auf der KamoInitializer laufen (entity-declared Indizes auf lehen_file_uid + identifier_id; keine SchemaCleanupRunner Änderung). Additiv - freigegebene Version unverändert (1.5.0).
· InitializerService
(loan_file_uid,type) nativer einaktiver partieller-unique Index (doc 11 5,3/-6.2)
Schließt ein bereits bestehendes doppelt aktives Loch im MLOS-Kreditidentifikationsregister: Index (a) ************ nur Zwänge (org, Typ, WERT) für die 10 REGISTRY-NATIVE Single-Aktiv-Typen, so zwei ACTIVE native Zeilen der SAME (loan_file_uid, Typ), aber DIFFERENT Werte könnten beide Commit (z.B. eine Renummer Racing a registerNative mit einem anderen Wert - eindeutige Wertschlüssel, nein Konflikt). Neuer Teil-Einbild-Index ************ (loan_file_uid, Typ) WO status='ACTIVE' UND external_system_reference IS NULL UND typee IN (die 10 nativen Typen) erzwingt höchstens eins ACTIVE nativer id per (Darlehen, Typ) - dem (Darlehen, Typ) von Index (c) für OWNED_ELSEHERE Spiegel. Die Typ IN(...) Listenspiegelindex (a); synchron mit ************ bleiben (die 6,2 Drift Wache). Idempotent CREATE ... IF NOT EXISTS; prod hat keine Verletzung von Duplikat-aktiven nativen Reihen (verifiziert).
· kamo-shared-library
IDENTIFIER_SUPERSEDED Eventtyp-Taste hinzufügen
Additiver Open-String-Ereignis-Schlüssel (doc 11 -5.3/-7.3) für das Registry-Renumber/Supersession-Signal COMPLIANCE_TIMER_BREACHED Präzedenzfall (no enum/schema/KI). Verbraucht von MLOSIdentifierService.renumber.
· kamo-shared-library
************ - die auto_execute_de-Decken neben der Wandschwelle auflösen
Fügt effektive Autonomie(orgId, Bühne, Boden) - Effektive Autonomie{threshold, executeEnabled": ein Chain-Walk (Profil - Konfiguration - Stage-Override), das gibt BOTH die Schwelle von 6,2 floored Vertrauens-Wand-Höhen- UND die auto_execute_enabled Master Switch (stage-override-aware). effectiveAutonomyThreshold delegiert es jetzt (einzige Quelle der Wahrheit). Lasst das RCE Schleusentor einen Mieter ehren, der sich dreht auto-execution OFF als Auto-Akt CEILING unabhängig von der Autonomie des Antrags Ebene. Leer, wenn kein Mieter konfiguriert (Anrufer verwendet die Plattform-Standard; die Anfrage regiert). Additiv; nur die gated MlosActivationService Ban ist betroffen. 4 Tests.
· InitializerService
Anti-Doppel-Sperr-Teil-unique-Index für RCE-Sperrdaten (doc 08 7,3)
SchemaCleanupRunner fügt ************ hinzu UNIQUE Index auf mlos_lock_record (organization_id, loan_scenario_id) WHERE status IN ************ Bei höchstens eine Live-Rate-Sperre pro Leihgabe Szenario: die deterministische DB Backstop zu MLOSCapitalMarketsService Anti-Doppel-Schloss-Wächter, Schließung der gleichzeitigen TOCTOU-Rennen (ein Duplikat Live-Sperre ist still Compliance Korruption - die Schlossedger hat keine supersedes_id). Idempotent (IF NOT EXISTS); bereits bei Prod CRDB.
· KlusterServices
Bootstrap Universum-Minio-Geheim + ugc Eimer Note (-14)
Fügen Sie Schritt 6 zu bootstrap-universe.sh: schafft das Universum-Minio-Geheimnis (ACCESS_KEY/SECRET_KEY von universe-backup-s3 root creds) und stellt fest, dass der universe-ugc MinIO Eimer muss existieren. Idempotent überspringt, wenn Geheimnis bereits vorhanden.
· DaemonService
MLOS-Compliance-Timer-Ecalation Verbraucher (BLOCKED-STALE)
Die Verbraucher Hälfte der Compliance-Timer-Verletzung Schleife (doc 03 2,8; emitt die Hälfte bereits Schiffe). ComplianceTimerBreachConsumer abonniert (dauerhaft JetStream) ************ und, pro gebrochenem Darlehen, blättert seine BLOCKED Orchestrierung Programmierer zu STALE über OrchestrationEscalationService (veränderlich, idempotent - bereits-STALE/GREEN/COMPLETE unberührt). Fügt ************ hinzu @EnableJpaReplositories; ermöglicht mlos.outbox (so dass die Emission des Sweeps ordnungsgemäß geschrieben + übertragen wird) und die ************ Fahne. 5 Einheiten Tests.
· InitializerService
Anti-AUS-Shopping partieller-unique Index auf mlos_aus_run
Eine ACTIVE (nicht-supered, non-frozen) AusRun per (loan_file_uid, source_label) "duplizates look wie AUS-Shopping" (doc 10 €2.4/-2,5). Sicher zu landen, jetzt, dass die MLOSUnderwritingService Agentur Schriftsteller verwaltet den überholten Falstrue-Flip vor dem Einlegen des neuen aktiven Laufs. Übertragen auf CRDB.
· kamo-shared-library
Persisted par_flag auf MlosPricedProductResult + OrchestrationStepStatus.STALE
- MlosPricedProductResult gewinnt par_flag (Boolean, default false): die -8,1-Schritt-5-Parzelle der Reihe's Lock-Periode-Leiter, eingefroren bei der Einlage (Run-of-Record Persistenz der Antwort-nur Par-Flagge). - OrchestrationStepStatus gewinnt STALE: ein BLOCKED-Schritt, dessen Compliance-SLA-Timer + eskalierte (eingestellt durch den DaemonService Compliance-Timer-Eskalationsverbraucher; doc 03 -2.8). Beide Additiv; ddl-auto:update fügt die Spalte hinzu und das generische enum-CHECK Sweep lässt STALE auf nächste KamoInitializer laufen.
· kamo-shared-library
RateSheetSanityGate - 6,6 hart vorveröffentlichen Vernunfttor (Bereich + monoton)
Eine reinlogische ungated @Component (das PriceAssemblyEngine Muster) zur Validierung eines Kandidaten-Preises Leiter VOR einer Tarif-Bet-Version veröffentlicht wird (doc 02 .6.6): Convention-bewusste Preisklassenband [par-20] (par=100 PRICE_TO_100 / 0 POINTS_FROM_PAR - fängt Brutto-Zeichen/Konventionsfehler), monoton-Leiter (Preis nicht sinkend, da die Zinsen steigen, pro (lockPeriodDays,ioFlag) Leiter) und Struktur-Formalität (nicht-leer / positive Rate / positive Lock / keine Duplikatrate). Berichte ALLE Verstöße; scheitert geschlossen. Wiederverwendbar durch die zukünftige Aufnahme Kandidaten-Stadium-Stadium (nimmt eine entkoppelte RateSheetLadrCell Rekord, nicht die JPA Entität). 2-Agent-feindliche Überprüfung - FIX_THEN_SHIP (1 Must-fix): entfernt die Par-Wahnsinns-nah-par-PRICE überprüfen - es falsch-abgelehnt legale All-Premium / All-Discount-Coupon-Fenster (par-RATE sanity needs rate Etikettierung, aufgeschoben; die Bande begrenzt bereits Preise auf 20 Pfund Par). Außerdem: die Schilder-Konvention aufgeweicht javadoc (expliziter Sign-Convention-Check DEFERRED, Band fängt nur grobe Größenfehler), ausgeschlossen null-rate-Zellen aus dem doppelten/monotischen Scan und überspringen Sie den monotonen Vergleich mit gleichen Raten. 18 No-DB-Tests (TDD). Keine neue Einheit - kein KamoInitializer-Lauf.
· kamo-shared-library
LockPolicyVersionPublisher - 6,5 Supersession rundet das Stachel-Dreiklang ab
Das Lock-Politik-Versions-Geschwister von **************** keyed per INVESTOR (ux_lock_policy_version_active = (organization_id, investor_id) WHERE status='ACTIVE' UND effective_until IS NULL). Gleiches atomares Vor-Fenster-Schleier + speichernAndFlush der vorherigen schließen VOR dem Kandidaten INSERT (die Hibernate Insert-before-update flush-order Falle). Deltas vs. Zinsblatt: Umfangs-SchlüsselinvestorId; keine RevisionLabel/aufstellung; Intraday Sequenzschlüssel am Tag der effektiven Auszeit. Shared-lib @Component gated mlos.catalog.enabled + repo Auftraggeber ************ 11 No-DB Mockito Tests (TDD). Damit ist die Besessenheit von 6,5 € effektiven Dating-Supersession COMPLETE über alle drei WORM Versionsen-Speisene (Rate-sheet + guideline + Lock-Policy). Der treue Spiegel CRDB e2e ist das Tor. Kein neues Unternehmen/Tabelle - kein KamoInitializer-Lauf.
· kamo-shared-library
GuidelineVersionVersionPublisher - 6,5 Supersession für die Leitlinie Wirbelsäule
Die Richtlinie-Version Geschwister von RateSheetVersionPublisher, keyed per PRODUKT (ux_guideline_version_active = (organization_id, product_id) WHERE status='ACTIVE' UND effektiv_until IS NULL). Gleiche atomare Vor-Fenster-Schluss-Schluss: ACTIVE-SUPERSEDED + effective_until = Nachfolger.effective_from, supersedes_id link, und saveAndFlush the vorheriges Schließen VOR dem Kandidaten INSERT (die Hibernate Insert-before-update flush-order Falle). Deltas vs. Rate-sheet: Umfangsschlüssel productId; RevisionLabel validieren + sourceDocumentId (no emitedAt); intraday Sequenz-Tasten am effektiven From's Day. Shared-lib @Component gated mlos.catalog.enabled + Repo-Funder **************** 12 No-DB Mockito Tests (TDD, inkl. Flush-Order InOrder + WORM-guard re-run). Treuer Spiegel des kontradiktorisch überprüften Rate-Blatt-Publishers - gated by the behavioral e2e (Leitline Supersession Flips Preisberechtigung). Kein neues Unternehmen/Tabelle - kein KamoInitializer-Lauf.
· kamo-shared-library
RateSheetVersionPublisher - doc 02 -6.5 Effektiv-dating Supersession
Das atomare Vor-Fenster schließen den MLOSCatalogService Bootstrap Bundle-Breitling aufgeschoben. Veröffentlichung einer neuen Tarif-Blatt-Version für einen bestehenden (org, Investor) Umfang schließt jetzt den Vorgänger (ACTIVE-SUPERSEDED + effective_until = Nachfolger.effective_from), Links der Nachfolger (supersedes_id, next intraday sequence_no) und spült die vorherigen schließen VOR dem Kandidaten INSERT . Hibernate bestellt INSERTs vor UPDATEs in einem Flush, so saveAndFlush(prior) erforderlich ist, vermeiden Sie eine selbstverschuldete ux_rate_sheet_version_aktive partielle-unique Verletzung. Shared-lib @Component gated mlos.catalog.enabled (der Effektive VersionResolver Geschwistermuster); der Schluss ist WORM-legal durch Konstruktion gegen das Unternehmen @PreUpdate Wache. 15 No-DB Tests (Mockito) inkl. Flush-order InOrder + WORM-Guard Neu-Run. 2-Agent adversarial Review - FIX_THEN_SHIP (1 must-fix on: sourceDocumentId validiert vorne - sauber 400, nicht ein Post-Side-Effekt 500). Keine neue Entität/Table/Repo-Schnittstelle - kein KamoInitializer-Lauf.
· kamo-shared-library
************ für die PPE-Run-Veranstaltung hinzufügen
· kamo-shared-library
EligibilityCellMatcher Eindimensionen-Gadner-Umschrift-Azustribution (ECOA-Funsbetonalität)
Schließt die Grundcode-Erreichbarkeitslücke, die der PriceAssemblyEngine Review markiert hat: a Zelle vermissen auf EXACTLY eine Containment-Dimension wird jetzt INELIGIBLE mit seiner spezifische ECOA Hauptgrund (FICO_BELOW_MIN / STATE_NOT_ELIGIBLE / PROPERTY_TYAT_NOT_ELIGIBLE / UNITS_NOT_ELIGIBLE / **************** anstatt zu generischem NO_COVERAGE zusammenzubrechen - die 9 unerreichbaren CELL-Codes zu machen erreichbar. Multidimensionale / mehrdeutige Fehlschläge und numerische Kataloglücken (FICO über einer Obergrenze oder zwischen Bändern; ein Darlehensbetrag zwischen Disjoint Bändern), richtig bleiben NO_COVERAGE (ein -6 Deckungsfehler, nie eine Kreditnehmerverweigerung). Reines Substrat noch kein Live-Service verbraucht den Matcher; kein Schemawechsel, kein KamoInitializer-Lauf. - EligibilityResult: trägt den Hauptauftrag MlosAdverseActionReasonCode (der Verpasser besitzt es - nur hält es den Dimensionskontext). Die Gründe für die Unzuhemmung der 2-Arg Fabrik ist REMOVED so reasonCode ist null iff ELIGIBLE - die MlosPricedProductResult @PrePersist invariant hält durch Bau für jede Fabrik gebaute Ergebnis. - FörderfähigkeitCellMatcher: failedDims + relax-one-dimension AttributNoCoverage; Richtung (BELOW/ABOVE/GAP) NUR über die Sohlen-auf-das-Dimension-Falzener berechnet (nicht die ganze Matrix) so ein zu großes Darlehen auf Disjoint-Bands ist nie falsch gekennzeichnet BELOW_MIN, und ein FICO über der Decke/Lücke ist eine Deckungslücke, nicht eine falsche "Score zu low". Substratvertrag dokumentiert: ein echter Disqualifikator; der LOE-Core-Konsum re-Attribute die up-to-4 NOAA Gründe. - PriceAssemblyEngine: additiver Grund (cell, Fallback) - bevorzugt die Verpasser im Code; cellReasonCode(matrixType) als defensiver Rohergebnis-Fallback gehalten. 2-Agent adversarial Review - FIX_THEN_SHIP; beide Must-Fixes angewendet (Leih-Betrag & FICO-Richtungskennzeichnungen, jeweils mit einem bearbeiteten Beispiel bewiesen) + should-fixes (totalize die Datensatz invariant; Substrat-Vertrag + Richtungsdokumente). 19 Matcher + 33 Motor testet grün (89 Katalogtests grün).
· kamo-shared-library
ComplianceTimerService emittiert mlos.compliance.timer.breached auf SLA-Verletzung (doc 03 2.8)
Der javadoc-namete Nachfolger der ausgelieferten Slice-2c-Timer: "Ereignis-Emission zu einem Compliance Warteschlange ist ein Follow-up". auslaufendeBreached() emittiert jetzt eine COMPLIANCE_TIMER_BREACHED Ereignis per ARMED-EXPIRED-Timer, geschrieben in den Outbox IN THE SAME TRANSACTION als Flip (die Transaktions-Outbox-Garantie: eine Verletzung ist eskalierte iff es ist ordnungsgemäß aufgezeichnet). Der nachgeschaltete Verbraucher treibt den HIGH Steward Eskalation + die OrchestrationState BLOCKED-STALE Verlassenheit (eine spätere Scheibe). - OutboxWriter als OPTIONAL Dependance ************ injiziert ungültige Emission, so dass der Dienst noch abläuft Timer, wenn der Outbox Substrat ist nicht im laufenden Dienst verdrahtet - anmutig, rückwärts-kompatibel mit DaemonService's aktuelle Autoverdrahtung (die 3-Arg-Testnaht ist erhalten). - Envelope: domain=Compliance, aggregateId=loanFileId, Nutzlast trägt **************** - Neue offene String-Veranstaltungskonstante ************ (kein Schemawechsel - kein KamoInitializer-Lauf). - 14 ComplianceTimerService testet grün (12 vorhanden unverändert + 2 Emissionstests). Treuer Spiegel des ausgelieferten Entscheidungs- und Spinnerei-Aus- und Ausboxen-Produzenten Muster (beeinsichtigt).
· kamo-shared-library
ConditionTemplateExtension - KreditnehmerEine Flagge für das Portal (doc 09 -6.4)
Die net-new Datenabhängigkeit, die die "Was ist links"-Ansicht des Kreditgeberportals benötigt: gesperrt LoanCondition trägt nur Mitarbeiter /org Mitglieder-IDs, so dass das Portal nicht sagen kann welche offenen Bedingungen ein BORROWER einschalten kann. doc 09 .6.4 schreibt eine KrediterActionable Flagge auf der LoanConditionTemplate als SIBLING Einheit nie ein -Spalte auf dem gesperrten Kern (doc 01 -1.1). Die Flagge pro Bedingung ist DERIVED Service-Seite von dieser Vorlage flag + die Bedingungskategorie. - ConditionTemplateExtension (com.kamo.z.shared.mlos.docs, veränderbare Konfiguration/Referenz): weiches FK-DramConditionTemplateId - gesperrt LoanConditionTemplate.id (UUID), DB-UNIQUE 1:1; denormalisierte OrganisationId (Long, String-serialized); borrowerActionable boolean @ColumnDefault false (fail-safe: intern-only, sofern nicht kuratiert einsatzfähig). - ************ (findByLoanConditionTemplateId + ************ mlos.docs schon in @EnableJpaRepositories; der UNIQUE-Index ist Entität deklariert (kein SchemaCleanupRunner). - 3 No-DB-Tests grün. Treuer Spiegel des DocumentRequirement Soft-FK-zu-gesperrt Muster (beeinsichtigt).
· kamo-shared-library
PriceAssemblyEngine - der deterministische PPE-Kern (Phase 2 Scheibe 13)
Die erste reinlogische mlos Scheibe: der Schlussstein, der den ausgelieferten Katalog zusammenfasst resolver in die maßgebliche serverseitige Preisgestaltungsmathematik (doc 02 8.1 Schritte 2-4). Ungated stateless @Component (Geschwister zu AdjustmentConditionEvaluator/ ************ - null Repository, keine neue Einheit, keine Schemaänderung. Die zukünftigen MLOSPricingService-Dürren repos + Persistenz + Veranstaltungen. - mergeEligibilität(): der Drei-Konjun-Filter mit 8,1 Schritt-2/3 (Zelle- UND Leitlinie UND AUS Tor) - EignungVerurteilung, am schwersten blockieren Vorrang mit einem einzigen Direktor MlosAdverseActionReasonCode (cell ************ Leitlinie " AUS-wann-erforderlich - ELIGIBLE). - monemblePrice(): final_price = base + . ADDITIVE + . MULTIPLICATIVE(stack_order) + Marge, Respekt Cap_value. Additive summed (s total_adjustments 9,6), dann multiplikative Faktoren skalieren die laufende Subtotal in aufsteigendem stack_order (uid Tie-Break), dann fügte Marge last/outside the .; Single final HALF_UP zu (9,4). - price(): orchestriert beides; Ausgang befriedigt das MlosPricedProductResult @PrePersist biete-Konsistenz invariant durch Konstruktion. - cap_value = additives Zeichen-ererer Konservierung Magnituden-Kleme (Cap=0 - 0 Beitrag, Gezielt); ein multiplizierter cap_value ist ein lauter Konfigurationsfehler (gescheckt, nie Fehlpreis). AUS PASS/NOT_APPLICABLE Nicht-Blocking (Preis-vor-AUS; der Preis-vor-AUS; der -8.2 Lock-Stage-Hard-Stop ist der Service). - Neu: AusGateOutcome enum + **************** PricedProductComputation Datensätze. 33 No-DB JUnit5 Tests grün. Forschungsarbeitswerk (3-Leser + Synthese) + 2-Agent kontradiktorische Überprüfung (Urgestein FIX_THEN_SHIP, Null must-fix; angewendet die 5 should-fix härtende Elemente: loud multiplicative-Cap-Schutz, Vernunft-Code-Coverage-Gap-Doku, cap=0 + niedrigsten-Regelcode Dokus und 6 Abdeckungstests).
· InitializerService
Register pkg + RCE/ziehend DDL (Dok.
@EnableJpaRepositories += ************ SchemaCleanupRunner: ************ (partiell-unique) + rce_commit_ai_decision_fk + rce_commit_lock_record_fk + rce_commit_pricing_snapshot_fk (der Snapshot delete-guard) + mlos_aiptp_one_active_uniq (eine ACTIVE Pull-Through-Politik pro Kreditgeber_profile+Markt). RCE Tabelle + Einschränkungen angewendet + geprüft.

Euer Universum wartet.
Fügen Sie Produkte hinzu, wann immer Sie möchten – keine Migration, keine neuen Anmeldungen.
Für immer kostenlos – keine Kreditkarte erforderlich