{
  "assessment": {
    "all_ok": true,
    "blockers": [],
    "decision": "PASS_STEP_044H6_ACTIVITY_COUNTERS_INSTALL_CLOSE_READONLY",
    "expected_absence": {
      "client_config_changed": false,
      "duplicate_counter_count_false_stop_repeated": false,
      "force_mode_enabled": false,
      "manual_agent_service_start_used": false,
      "private_material_published": false,
      "rebalance_paused": false,
      "selector_changed": false,
      "vm100_changed": false,
      "vm101_changed": false,
      "vm121_db_changed": false,
      "wg_peer_runtime_changed": false
    },
    "success_checks": {
      "active_leases_zero": true,
      "activity_files_nonempty": true,
      "activity_in_rules_five": true,
      "activity_out_rules_five": true,
      "activity_service_enabled": true,
      "activity_service_status_ok": true,
      "activity_table_present": true,
      "enabled_peers_five": true,
      "forced_leases_zero": true,
      "idle_leases_five": true,
      "lease_rows_five": true,
      "pending_jobs_zero": true,
      "public_index_rebuilt": true,
      "public_report_created": true,
      "read_script_works": true,
      "rollback_step044h5_present": true,
      "unique_counter_cli_count_ten": true,
      "unique_counter_names_ten": true,
      "unique_in_counter_names_five": true,
      "unique_out_counter_names_five": true,
      "vm100_allowed_ip_count_five": true,
      "vm100_peer_count_five": true,
      "vm100_read_collected": true,
      "vm100_selector_rows_five": true,
      "vm100_uci_peer_count_zero": true,
      "vm100_wg_paid_listen_51830": true,
      "vm101_cs1_to_vpn3_seen": true,
      "vm101_cs2_to_vpn4_seen": true,
      "vm101_cs3_to_vpn5_seen": true,
      "vm101_cs4_to_vpn1_seen": true,
      "vm101_cs5_to_vpn2_seen": true,
      "vm101_read_collected": true,
      "vm121_db_read_collected": true
    },
    "warnings": [
      "STEP_044H6 is read-only close for STEP_044H5 false STOP.",
      "STEP_044H5 counted duplicate counter definitions because vm100_after had both NFT_TABLE and NFT_COUNTERS sections.",
      "Counters are installed and policy accept; no routing or selector changes are made in this close step."
    ]
  },
  "changes": {
    "client_config_changed": "NO",
    "manual_agent_service_start_used": "NO",
    "private_material_published": "NO",
    "selector_changed": "NO",
    "vm100_changed": "NO_READONLY_CLOSE",
    "vm101_changed": "NO",
    "vm121_db_changed": "NO",
    "wg_peer_runtime_changed": "NO"
  },
  "closed_previous_false_stop": {
    "activity_in_rules": 5,
    "activity_out_rules": 5,
    "cause": "counter_defs_after parser counted duplicate definitions from both NFT_TABLE and NFT_COUNTERS sections",
    "previous_step": "STEP_044H5_REPAIR_VM100_ACTIVITY_COUNTERS_VIA_PVE_SCP_LEGACY",
    "unique_counter_names": 10,
    "unique_in_counter_names": 5,
    "unique_out_counter_names": 5
  },
  "db_summary": {
    "active_leases": 0,
    "enabled_peers": 5,
    "forced_leases": 0,
    "idle_leases": 5,
    "lease_rows": 5,
    "pending_jobs": 0
  },
  "mode": "READONLY_CLOSE_STEP044H5_FALSE_STOP_BY_UNIQUE_COUNTER_NAME_COUNT",
  "publish": {
    "local_report": "http://127.0.0.1:8099/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260709-135833_step044h6_activity_counters_install_close_readonly/",
    "public_index_rebuilt": true,
    "trycf_report": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260709-135833_step044h6_activity_counters_install_close_readonly/"
  },
  "schema": "router-step-facts-v1",
  "step": "STEP_044H6_ACTIVITY_COUNTERS_INSTALL_CLOSE_READONLY",
  "vm100_activity_counters": {
    "activity_in_rules": 5,
    "activity_out_rules": 5,
    "chain": "forward_activity",
    "hook": "forward",
    "policy": "accept",
    "rollback_path_vm100": "/root/rollback-step044h5-router-egress-activity.sh",
    "service_enabled": true,
    "service_status_ok": true,
    "table": "inet router_egress_activity",
    "unique_counter_count": 10,
    "unique_counter_names": [
      "peer_10_253_1_10_in_vpn",
      "peer_10_253_1_10_out_vpn",
      "peer_10_253_1_11_in_vpn",
      "peer_10_253_1_11_out_vpn",
      "peer_10_253_1_12_in_vpn",
      "peer_10_253_1_12_out_vpn",
      "peer_10_253_1_13_in_vpn",
      "peer_10_253_1_13_out_vpn",
      "peer_10_253_1_14_in_vpn",
      "peer_10_253_1_14_out_vpn"
    ]
  }
}
