Mlos_product ARM-consistency CHECK (Phase-2 Slice 2)
SchemaCleanupRunner: ADD CONSTRAINT **************** CHECK ((amortization_type = 'ARM') = (arm_fixed_period_months IS NOT NULL)) — a fixed period is declared IF...
MlosProduct + MlosArmIndex product-taxonomy layer (Phase-2 Slice 2)
The product spine of the catalog (doc 02 §6.3): everything priceable downstream (base price grids, eligibility matrices, guideline rules) FKs to MlosProduct.uid...
Register catalog repos + rate-sheet-version no-overlap index (Phase-2 Slice 1)
- @EnableJpaRepositories += com.kamo.z.shared.mlos.catalog (the new MlosInvestor/ **************** repos; entities already covered by @EntityScan). - SchemaCl...
Catalog provenance + effective-dated versioning spine (Phase-2 Slice 1)
Smallest shippable slice of the Phase-2 catalog (doc 02 §6): the provenance chain ImgDat -> MlosSourceDocument -> MlosRateSheetVersion and the immutable effecti...
Per-tenant confidence-threshold gate overload (config↔gate wiring)
Additive DecisionGate.evaluate(stage, confidence, legallyRequiresHuman, BigDecimal tenantThresholdOverride) — the autonomy-tuned per-tenant wall resolved by ***...
Partial unique indexes + servicing invariants (Phase-1 config completion)
SchemaCleanupRunner DDL for the new mlos.config domains (mlos.config already in @EnableJpaRepositories; Hibernate ddl-auto:update creates the tables): - one-act...
Complete Phase-1 config domains + MlosActivationService (Slice 5)
Completes doc 04's config entity inventory **************** - Policy singletons (one-active-per-profile, effective-dated/append-only): PricingPolicy (ppeSour...
Channel Applicability engine (Phase-1 Slice 4)
The deterministic most-restrictive resolver (doc 04 §8) — Product x Channel x Investor -> {ALLOWED|DISALLOWED, executionPath, authorityModel, fundingBehavior}. ...
AuthorityConfig (underwriting authority + govt delegations) — Phase-1 Slice 3
- AuthorityConfig (singleton per LenderProfile): underwritingAuthority DELEGATED/NON_DELEGATED/HYBRID + manualUwAllowed + govtDelegation Set {FHA_DE,VA_SAR_...
AI autonomy config + safety-floor resolver (Phase-1 Slice 2)
- AiAutonomyConfig (singleton per LenderProfile; autonomyLevel **************** globalDefaultThreshold DECIMAL(4,3), autoExecuteEnabled) + AutonomyStageOver...
Register mlos.config repo pkg (Phase-1 Slice 1)
Add com.kamo.z.shared.mlos.config to @EnableJpaRepositories so KamoInitializer creates mlos_lender_profile + mlos_licensing_entry. Indexes (incl. UNIQUE market_...
LenderProfile + LicensingEntry config foundation (Phase-1 Slice 1)
New com.kamo.z.shared.mlos.config tenant-config foundation (doc 04 §3): - LenderProfile (root, UNIQUE per MORTGAGE marketId) — soft-FKs locked Organization (...
DaemonService compliance-timer SLA sweep (timer adopter)
First adopter of the MLOS compliance timers: a Quartz job (every 5 min) calls **************** to flip ARMED-but-past-deadline ECOA (AdverseActionTimer) + Reg X...
**************** for the DaemonService SLA sweep
Flips every ARMED-but-past-deadline AdverseActionTimer + RegXTimer to EXPIRED (the durable escalation signal the Compliance steward screen surfaces; event emiss...
Wire license-aware assignment into DecisionSpine (Slice 2b-ii)
DecisionSpine.record() now stamps StewardTask.assignedMemberId from the StewardAssigner when a routed decision carries the loan's jurisdiction: - DecisionReque...
License-aware StewardAssigner (decision-spine Slice 2b-ii)
Adds the license-aware steward selector (doc 03 §3.2; doc 01 §6 #9) — picks a steward whose MLOS StewardLicense is valid TODAY for the act's required license ty...
Register mlos.compliance repo pkg (Slice 2c-i)
Add **************** to @EnableJpaRepositories so KamoInitializer creates mlos_adverse_action_timer + mlos_regx_timer. Indexes entity-declared via @Table — no S...
ECOA + Reg X timer substrate (decision-spine Slice 2c-i)
New **************** package (doc 03 §2.8) — kamo-owned compliance-timer analogues of the locked donotmodify.TridTimer. Substrate-first: - AdverseActionTimer (...
Register mlos.legal repo pkg (Slice 2b)
Add com.kamo.z.shared.mlos.legal to @EnableJpaRepositories so KamoInitializer creates mlos_licensed_act_registry / mlos_ron_eligibility / mlos_steward_license. ...
State-aware legal registry substrate (decision-spine Slice 2b)
New com.kamo.z.shared.mlos.legal package — the greenfield producer of the DecisionGate's absolute legal-wall input (doc 03 §3.2). Substrate-first, no adopter ye...
Register mlos.steward + mlos.orchestration repos; Slice-2a schema
- KamoInitializerApp @EnableJpaRepositories: add the accumulated MLOS repo packages **************** plus esign/personal_loans so KamoInitializer owns their...
Declare Slice-2a indexes via @Table(indexes) on entities
Move the mlos_orchestration_state and mlos_steward_task index definitions from KamoInitializer's SchemaCleanupRunner onto the entities themselves (@Table(indexe...
Decision-spine Slice 2a — OrchestrationState + StewardTask + DecisionSpine BLOCKED-state machine
OrchestrationState (per-loan-stage GREEN/BLOCKED/COMPLETE) + StewardTask (exception record) + enums + DecisionSpine (@ConditionalOnProperty mlos.spine.enabled):...
Upgrade k1m1 node image v24.2.4 -> v24.3.33
Rolling major upgrade of the k1m1 CRDB StatefulSet node. Note: cluster will not finalize to 24.3 until the k3m1 node is also upgraded (tracked separately).
Remove MLOS event-backbone wiring — KamoLOS is the personal-loans LOS, not MLOS
MLOS (mortgage) work must not touch KamoLOS (personal loans). The shared-lib com.kamo.z.shared.mlos.* substrate stays (generic, gated mlos.outbox.enabled=off); ...
LoanIdentifier registry substrate — 42 typed ids (keystone 0.5, slice 1)
New pkg com.kamo.z.shared.mlos.identity (the inbound-webhook routing key): LoanIdentifierType (42 first-class typed ids, each carrying Cardinality + Ownership; ...
PublishAck is in io.nats.client.api, not io.nats.client
Test-only import fix that was breaking shared-lib compilation (caught by the now-required local mvn install). Main code was unaffected (OutboxRelay ignores the ...
StewardFeedback flywheel — capture every steward verdict (keystone 0.11)
New pkg **************** append-only StewardFeedback ground-truth row (FK ai_decision.uid; verdict CONFIRM/OVERRIDE/MODIFY; Reg-B-aligned reasonCode; correctedV...
Immutable AiDecision WORM ledger + two-wall DecisionGate (keystone 0.3, slice 1)
New pkg com.kamo.z.shared.mlos.decision (greenfield decision spine, never edits donotmodify): immutable append-only AiDecision (WORM via @PreUpdate guard; loanF...
Tenant-isolation gate for the event backbone (Slice 3)
Roadmap 0.10: **************** (the per-tenant consumer subscription seam) + belongsToTenant(subject,orgId) token-wise matching that mirrors NATS filtering; for...
Consumer-side idempotency, DLQ + steward replay (Slice 2)
Adds the reliability core that any MLOS consumer plugs into: ProcessedEvent dedup ledger (unique consumer_name+event_id) + MlosDeadLetter DLQ + MlosDeadLetterSt...
Adopt MLOS transactional outbox (producer path)
Enables the Phase-0 event backbone in KamoLOS: adds com.kamo.z.shared.mlos.event to the @EnableJpaRepositories scan, mlos.* config (mlos.outbox.enabled=true, ML...
Transactional outbox event backbone (Phase-0 keystone B)
Money/compliance-grade producer path in NEW sibling pkg **************** (never edits donotmodify): MlosEventEnvelope DTO + MlosOutboxEvent outbox entity/repo +...
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.