{
  "assessment": {
    "all_ok": true,
    "decision": "PASS_STEP_049H_OBSERVE_AND_CHECKPOINT_AFTER_REPAIR",
    "success_checks": {
      "all_interfaces_exist": true,
      "all_tables_have_routes": true,
      "cron_running": true,
      "daily_rebalance_0440_count_one": true,
      "dispatcher_egress2_ready": true,
      "health_monitor_running": true,
      "health_overall_ok": true,
      "hmn_refresh_0420_count_one": true,
      "observe_only": true,
      "prod_strict_all_ok": true,
      "production_not_modified": true,
      "rebalance_plan_ok": true,
      "snapshot_vm100_created": true,
      "snapshot_vm101_created": true,
      "snapshot_vm121_created": true,
      "vm100_controller_running": true,
      "vm100_peer_count_five": true,
      "vm101_rc_zero": true,
      "vm121_db_pending_zero": true,
      "watcher_enabled": true,
      "watcher_once_all_healthy": true,
      "watcher_once_no_action": true,
      "watcher_running": true
    },
    "warnings": [
      "This is observe/checkpoint only.",
      "Daily 04:20 refresh and 04:40 rebalance should be validated after the next scheduled morning run.",
      "Health repair has already been proven by 049G2."
    ]
  },
  "dispatcher_egress2": {
    "adapter_dryrun_decision": "dry_run_ok",
    "apply_performed": false,
    "candidate_endpoint": "151.236.30.139:33998",
    "decision": "dry_run_ok",
    "iface": "vpn2",
    "mode": "--dry-run",
    "reason": "dispatcher_ready",
    "reason_input": "post_repair_observe",
    "required_dispatch_confirm": "DISPATCH_egress2_151.236.30.139:33998",
    "safety": {
      "commit_requires_dispatch_confirm": true,
      "dry_run_no_ifup_ifdown": true,
      "dry_run_no_uci_set": true
    },
    "schema": "router-egress-recovery-dispatcher-v1",
    "slot": "egress2"
  },
  "mode": "POST_REPAIR_OBSERVE_AND_PROXMOX_CHECKPOINT",
  "publish": {
    "facts_json": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-091947_step049h_observe_and_checkpoint_after_repair/facts.json",
    "report_txt": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-091947_step049h_observe_and_checkpoint_after_repair/report.txt",
    "trycf_report": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-091947_step049h_observe_and_checkpoint_after_repair/"
  },
  "rebalance": {
    "apply_ok": true,
    "apply_performed": false,
    "changes_count": 1,
    "decision": "plan_ok",
    "mode": "--dry-run",
    "plan": [
      {
        "adapter": "hmn_pool_replace",
        "change": false,
        "current": "178.215.227.13:44408",
        "dscp": "cs4",
        "iface": "vpn1",
        "mark": "0x201",
        "provider": "hidemyname",
        "slot": "egress1",
        "table": "201",
        "target": "178.215.227.13:44408",
        "target_avg_ms": "50.900",
        "target_file": "150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf",
        "target_rank": "4"
      },
      {
        "adapter": "hmn_pool_replace",
        "change": true,
        "current": "109.248.198.4:37129",
        "dscp": "cs5",
        "iface": "vpn2",
        "mark": "0x202",
        "provider": "hidemyname",
        "slot": "egress2",
        "table": "202",
        "target": "192.121.163.235:42530",
        "target_avg_ms": "39.008",
        "target_file": "128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf",
        "target_rank": "1"
      },
      {
        "adapter": "hmn_pool_replace",
        "change": false,
        "current": "95.211.68.119:45176",
        "dscp": "cs1",
        "iface": "vpn3",
        "mark": "0x203",
        "provider": "hidemyname",
        "slot": "egress3",
        "table": "203",
        "target": "95.211.68.119:45176",
        "target_avg_ms": "44.271",
        "target_file": "075-NL-Netherlands-Amsterdam-H13-95.211.68.119-awg1.conf",
        "target_rank": "2"
      },
      {
        "adapter": "hmn_pool_replace",
        "change": false,
        "current": "78.31.250.16:41729",
        "dscp": "cs2",
        "iface": "vpn4",
        "mark": "0x204",
        "provider": "hidemyname",
        "slot": "egress4",
        "table": "204",
        "target": "78.31.250.16:41729",
        "target_avg_ms": "50.697",
        "target_file": "072-NL-Netherlands-Amsterdam-S8-78.31.250.16-awg1.conf",
        "target_rank": "3"
      },
      {
        "adapter": "hmn_pool_replace",
        "change": false,
        "current": "157.173.27.69:41797",
        "dscp": "cs3",
        "iface": "vpn5",
        "mark": "0x205",
        "provider": "hidemyname",
        "slot": "egress5",
        "table": "205",
        "target": "157.173.27.69:41797",
        "target_avg_ms": "56.803",
        "target_file": "049-DE-Germany-Berlin-S7-157.173.27.69-awg1.conf",
        "target_rank": "5"
      }
    ],
    "pool": "/root/hmn/cache/ok-awg1-strict-foreign-latest.tsv",
    "pool_age_sec": 58866,
    "pool_endpoint_count": 15,
    "reason": "top5_pool_ready",
    "safety": {
      "commit_requires_confirm": true,
      "per_slot_rollback": true,
      "per_slot_strict_check": true
    },
    "schema": "router-egress-hmn-rebalance-top5-v1",
    "top_count": 5
  },
  "schema": "router-step-facts-v1",
  "step": "STEP_049H_OBSERVE_AND_CHECKPOINT_AFTER_REPAIR",
  "summary": {
    "daily_rebalance_0440_count": "1",
    "dispatcher_egress2_candidate": "151.236.30.139:33998",
    "health_overall_ok": "true",
    "hmn_refresh_0420_count": "1",
    "next_step": "leave_machine_observing_or_continue_client_migration",
    "prod_strict_ok": {
      "vpn1": "true",
      "vpn2": "true",
      "vpn3": "true",
      "vpn4": "true",
      "vpn5": "true"
    },
    "rebalance_changes_count": 1,
    "rebalance_decision": "plan_ok",
    "snapshot_vm100_name": "S049H100_0919",
    "snapshot_vm101_name": "S049H101_0919",
    "snapshot_vm121_name": "S049H121_0919",
    "vm100_peer_count": "5",
    "vm121_db_summary": {
      "enabled_peers": 5,
      "lease_rows": 5,
      "pending_jobs": 0
    },
    "vpn2_endpoint": "109.248.198.4:37129",
    "watcher_all_healthy": true,
    "watcher_running": "true"
  },
  "watcher_once": {
    "any_action": false,
    "mode": "--dry-run",
    "run_mode": "once",
    "schema": "router-egress-health-repair-watch-v2",
    "slots": [
      {
        "action": "none",
        "decision": "healthy",
        "fail_count": 0,
        "iface": "vpn1",
        "required_confirm": "",
        "slot": "egress1",
        "status_ok": true
      },
      {
        "action": "none",
        "decision": "healthy",
        "fail_count": 0,
        "iface": "vpn2",
        "required_confirm": "",
        "slot": "egress2",
        "status_ok": true
      },
      {
        "action": "none",
        "decision": "healthy",
        "fail_count": 0,
        "iface": "vpn3",
        "required_confirm": "",
        "slot": "egress3",
        "status_ok": true
      },
      {
        "action": "none",
        "decision": "healthy",
        "fail_count": 0,
        "iface": "vpn4",
        "required_confirm": "",
        "slot": "egress4",
        "status_ok": true
      },
      {
        "action": "none",
        "decision": "healthy",
        "fail_count": 0,
        "iface": "vpn5",
        "required_confirm": "",
        "slot": "egress5",
        "status_ok": true
      }
    ]
  }
}
