- Shipped
- July 4, 2026 at 10:28 AM UTC
- Author
- Kamo
- Commit
- c2c68c0
doc 08 §3.3: the locked **************** must not gain a NATS publisher (that edits donotmodify). Add a non-locked ReconciledFactPublisher wrapper that reconciles, then on a non-zero change count emits los.pipeline.fact.<orgId> on the existing LOS_PIPELINE stream (los.pipeline.> already binds it — no new stream/ table), so the readiness loop can fire. Repoint the sole caller (MortgageConnectController's reconcile endpoint) at the wrapper; the locked service is untouched. Placement (D34): co-located in SecurityService with its only current caller, not in MLOSCapitalMarketsService as §3.3 tentatively suggested (that assumed an RCE-side caller that does not exist yet). The mandated invariant — never publish from inside the locked service — holds either way. Best-effort like LosPipelinePublisher: absent NATS or a publish failure is logged + swallowed, the count is still returned. 4 tests green.