{"status":"healthy","v32":{"evaluated_at":"2026-05-28T11:28:45.490Z","steps":[{"step":"SWEEP","status":"ok","detail":"pre_ingestion_audit.md maintained; ingest uses SWEEP lineage map."},{"step":"SHARD","status":"degraded","detail":"Redis configured but ping failed — fail-open to cold layer."},{"step":"DEFEND","status":"ok","detail":"PulseEngine.runThroughDefend → gate, crossRef, defend (shadow preflight)."},{"step":"CROSS_REF","status":"ok","detail":"preFlightCheck + Vault/Hall lineage on Pulse; ingest shadow gate before SWEEP."},{"step":"CONVERGE","status":"ok","detail":"Dual-model / local gateway in PulseEngine (Vertex env present)."},{"step":"ARBITRATE","status":"ok","detail":"Ops auth via service role. Add MSGF_OPS_CRON_SECRET for scheduled v32-heartbeat (avoid service role in cron)."},{"step":"PERSIST","status":"ok","detail":"Vault/Hall persist + POST /api/msgf/ops/v32-heartbeat (tier batches + 30d Hall purge)."}],"production_ready":true}}