=== G3.0 runtime status before pause ===
{"cursor":"","failed_events":2,"last_error":"","last_poll_at":"2026-05-09T10:35:59.173029704Z","paused":false,"pending_retry_events":0,"started":true}

=== G3.1 rollback script ===
[1/3] pause gateway runtime
{"paused":true}

[2/3] fetch runtime status for rollback assessment
{"cursor":"","failed_events":2,"last_error":"","last_poll_at":"2026-05-09T10:35:59.173029704Z","paused":true,"pending_retry_events":0,"started":true}
[3/3] operator checklist
Manual rollback checklist:
1. Confirm runtime paused and record pending_retry_events / failed_events.
2. Inspect GET /internal/supply-intelligence/gateway/package-changes for the affected event IDs.
3. If a replacement package is prepared, publish the replacement package-event and verify admission-state.
4. If the bad event must remain blocked, keep runtime paused until manual remediation is completed.
5. After remediation, call POST /internal/supply-intelligence/gateway/runtime/resume and rerun gateway_closure_inspect.sh.


=== G3.2 resume runtime ===
{"paused":false}

=== G3.3 runtime status after resume ===
{"cursor":"","failed_events":2,"last_error":"","last_poll_at":"2026-05-09T10:35:59.173029704Z","paused":false,"pending_retry_events":0,"started":true}

=== G3.4 inspect after resume ===
=== healthz ===
{"status":"ok"}
=== runtime status ===
{"cursor":"","failed_events":2,"last_error":"","last_poll_at":"2026-05-09T10:35:59.173029704Z","paused":false,"pending_retry_events":0,"started":true}
=== metrics excerpt ===
# HELP supply_intelligence_gateway_event_latency_seconds Gateway event processing latency
# TYPE supply_intelligence_gateway_event_latency_seconds histogram
supply_intelligence_gateway_event_latency_seconds_bucket{platform="openai",le="0.005"} 0
supply_intelligence_gateway_event_latency_seconds_bucket{platform="openai",le="0.01"} 0
supply_intelligence_gateway_event_latency_seconds_bucket{platform="openai",le="0.025"} 0
supply_intelligence_gateway_event_latency_seconds_bucket{platform="openai",le="0.05"} 0
supply_intelligence_gateway_event_latency_seconds_bucket{platform="openai",le="0.1"} 0
supply_intelligence_gateway_event_latency_seconds_bucket{platform="openai",le="0.25"} 2
supply_intelligence_gateway_event_latency_seconds_bucket{platform="openai",le="0.5"} 2
supply_intelligence_gateway_event_latency_seconds_bucket{platform="openai",le="1"} 2
supply_intelligence_gateway_event_latency_seconds_bucket{platform="openai",le="2.5"} 2
supply_intelligence_gateway_event_latency_seconds_bucket{platform="openai",le="5"} 2
supply_intelligence_gateway_event_latency_seconds_bucket{platform="openai",le="10"} 2
supply_intelligence_gateway_event_latency_seconds_bucket{platform="openai",le="+Inf"} 2
supply_intelligence_gateway_event_latency_seconds_sum{platform="openai"} 0.354977317
supply_intelligence_gateway_event_latency_seconds_count{platform="openai"} 2
# HELP supply_intelligence_gateway_event_retries_total Gateway event retries scheduled
# TYPE supply_intelligence_gateway_event_retries_total counter
supply_intelligence_gateway_event_retries_total{category="temporary_network",platform="openai"} 2
# HELP supply_intelligence_gateway_events_processed_total Gateway events processed
# TYPE supply_intelligence_gateway_events_processed_total counter
supply_intelligence_gateway_events_processed_total{event_type="supply_package_published",platform="openai",result="applied"} 2
supply_intelligence_gateway_events_processed_total{event_type="supply_package_published",platform="openai",result="failed"} 2
# HELP supply_intelligence_gateway_failed_events Gateway events in terminal failed state
# TYPE supply_intelligence_gateway_failed_events gauge
supply_intelligence_gateway_failed_events{consumer="gateway"} 2
# HELP supply_intelligence_gateway_pending_retry_events Gateway pending retry events ready or scheduled for retry
# TYPE supply_intelligence_gateway_pending_retry_events gauge
supply_intelligence_gateway_pending_retry_events{consumer="gateway"} 0
{
  "decision": "pause",
  "reasons": [
    "applied_ratio_below_threshold"
  ],
  "applied_ratio": 0.5,
  "processed": {
    "applied": 2.0,
    "failed": 2.0
  },
  "pending_retry_events": 0.0,
  "failed_events": 2.0,
  "runtime": {
    "cursor": "",
    "failed_events": 2,
    "last_error": "",
    "last_poll_at": "2026-05-09T10:35:59.173029704Z",
    "paused": false,
    "pending_retry_events": 0,
    "started": true
  }
}
