{
  "assessment": {
    "all_ok": true,
    "decision": "PASS_STEP_049F2_FIX_HEALTH_WATCHER_FALSE_FAIL_RACE",
    "success_checks": {
      "all_interfaces_exist": true,
      "all_tables_have_routes": true,
      "apply_not_executed": true,
      "endpoint_fingerprint_unchanged": true,
      "independent_strict_all_ok": true,
      "production_not_modified": true,
      "rebalance_still_ok": true,
      "simulation_not_performed": true,
      "vm100_controller_running": true,
      "vm100_peer_count_five": true,
      "vm101_rc_zero": true,
      "vm121_db_pending_zero": true,
      "watcher_enabled_post": true,
      "watcher_once_all_healthy": true,
      "watcher_once_no_action": true,
      "watcher_running_post": true,
      "watcher_state_cleared": true,
      "watcher_stopped_for_patch": true,
      "watcher_syntax_ok": true
    },
    "warnings": [
      "Watcher false-fail race must be fixed before failure simulation.",
      "This step should not simulate failure or run repair apply.",
      "If PASS, next step can simulate one slot failure."
    ]
  },
  "mode": "PATCH_HEALTH_WATCHER_TEMPFILE_RACE_AND_VERIFY_HEALTHY_NO_ACTION",
  "publish": {
    "facts_json": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-083015_step049f2_fix_health_watcher_false_fail_race/facts.json",
    "report_txt": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-083015_step049f2_fix_health_watcher_false_fail_race/report.txt",
    "trycf_report": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-083015_step049f2_fix_health_watcher_false_fail_race/"
  },
  "rebalance": {
    "apply_ok": true,
    "apply_performed": false,
    "changes_count": 0,
    "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": false,
        "current": "192.121.163.235:42530",
        "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": 55917,
    "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_049F2_FIX_HEALTH_WATCHER_FALSE_FAIL_RACE",
  "summary": {
    "backup_dir": "/root/step049f2-health-watcher-fix-20260711-083015",
    "next_step": "simulate_single_slot_failure_and_verify_health_repair_commit",
    "prod_strict_ok": {
      "vpn1": "true",
      "vpn2": "true",
      "vpn3": "true",
      "vpn4": "true",
      "vpn5": "true"
    },
    "rebalance_changes_count": 0,
    "rebalance_decision": "plan_ok",
    "rollback": "/root/rollback-step049f2-health-watcher-fix-20260711-083015.sh",
    "vm100_peer_count": "5",
    "vm121_db_summary": {
      "enabled_peers": 5,
      "lease_rows": 5,
      "pending_jobs": 0
    },
    "watcher_enabled_post": "true",
    "watcher_once_all_healthy": true,
    "watcher_once_any_action": false,
    "watcher_running_post": "true",
    "watcher_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
      }
    ]
  },
  "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
      }
    ]
  }
}
