{
  "assessment": {
    "all_ok": true,
    "decision": "PASS_STEP_048P_INSTALL_COMMIT_CAPABLE_HMN_ADAPTER_NO_APPLY",
    "success_checks": {
      "adapter_installed": true,
      "all_interfaces_exist": true,
      "all_tables_have_routes": true,
      "commit_capable_code_installed": true,
      "commit_not_executed": true,
      "commit_without_confirm_refused": true,
      "dryrun_apply_false": true,
      "dryrun_ok": true,
      "dryrun_schema_v2": true,
      "endpoint_fingerprint_unchanged": true,
      "prod_strict_all_ok": true,
      "replacement_not_performed": true,
      "uci_set_not_performed": true,
      "vm100_controller_v7_running": true,
      "vm100_crosscheck_rc_zero": true,
      "vm100_peer_count_five": true,
      "vm101_rc_zero": true,
      "vm121_agent_points_to_vm100": true,
      "vm121_crosscheck_rc_zero": true,
      "vm121_db_pending_zero": true
    },
    "warnings": [
      "Commit-capable code installed, but no commit/replacement was executed.",
      "Commit mode requires an explicit confirm token.",
      "Actual recovery apply must be a separate bounded step."
    ]
  },
  "commit_without_confirm": {
    "adapter": "hmn_pool_replace",
    "apply_performed": false,
    "apply_rc": 0,
    "candidate_endpoint": "109.248.198.4:37129",
    "current_endpoint": "192.121.163.235:42530",
    "decision": "refuse",
    "dscp": "cs5",
    "epoch": 1783707847,
    "interface": "vpn2",
    "iso": "2026-07-10T18:24:07+00:00",
    "mark": "0x202",
    "max_pool_age_sec": 129600,
    "mode": "--commit",
    "pool_is_fresh": true,
    "post_strict_ok": false,
    "provider": "hidemyname",
    "reason": "missing_or_wrong_confirm_token",
    "rollback_file": "",
    "safety": {
      "dry_run_no_ifup_ifdown": true,
      "dry_run_no_route_change": true,
      "dry_run_no_uci_set": true,
      "dry_run_no_wg_set": true,
      "no_vm100_change": true,
      "requires_explicit_commit": true
    },
    "schema": "router-egress-recovery-hmn-pool-replace-v2",
    "selected_pool": "/root/hmn/cache/ok-awg1-strict-foreign-latest.tsv",
    "selected_pool_age_sec": 5105,
    "selected_pool_endpoint_count": 15,
    "slot": "egress2",
    "table": "202",
    "unused_candidate_count": 10
  },
  "dryrun": {
    "adapter": "hmn_pool_replace",
    "apply_performed": false,
    "apply_rc": 0,
    "candidate_endpoint": "109.248.198.4:37129",
    "current_endpoint": "192.121.163.235:42530",
    "decision": "dry_run_ok",
    "dscp": "cs5",
    "epoch": 1783707847,
    "interface": "vpn2",
    "iso": "2026-07-10T18:24:07+00:00",
    "mark": "0x202",
    "max_pool_age_sec": 129600,
    "mode": "--dry-run",
    "pool_is_fresh": true,
    "post_strict_ok": false,
    "provider": "hidemyname",
    "reason": "dry_run_candidate_selected",
    "rollback_file": "",
    "safety": {
      "dry_run_no_ifup_ifdown": true,
      "dry_run_no_route_change": true,
      "dry_run_no_uci_set": true,
      "dry_run_no_wg_set": true,
      "no_vm100_change": true,
      "requires_explicit_commit": true
    },
    "schema": "router-egress-recovery-hmn-pool-replace-v2",
    "selected_pool": "/root/hmn/cache/ok-awg1-strict-foreign-latest.tsv",
    "selected_pool_age_sec": 5105,
    "selected_pool_endpoint_count": 15,
    "slot": "egress2",
    "table": "202",
    "unused_candidate_count": 10
  },
  "mode": "INSTALL_COMMIT_CAPABLE_HMN_RECOVERY_ADAPTER_BUT_VERIFY_DRYRUN_ONLY",
  "publish": {
    "facts_json": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-182406_step048p_install_commit_capable_hmn_adapter_no_apply/facts.json",
    "report_txt": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-182406_step048p_install_commit_capable_hmn_adapter_no_apply/report.txt",
    "trycf_report": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-182406_step048p_install_commit_capable_hmn_adapter_no_apply/"
  },
  "schema": "router-step-facts-v1",
  "step": "STEP_048P_INSTALL_COMMIT_CAPABLE_HMN_ADAPTER_NO_APPLY",
  "summary": {
    "backup_dir": "/root/step048p-hmn-adapter-20260710-182406",
    "commit_without_confirm_decision": "refuse",
    "commit_without_confirm_reason": "missing_or_wrong_confirm_token",
    "dryrun_candidate": "109.248.198.4:37129",
    "dryrun_current": "192.121.163.235:42530",
    "dryrun_decision": "dry_run_ok",
    "dryrun_pool_age_sec": 5105,
    "endpoint_fingerprint_unchanged": true,
    "next_step": "controlled_commit_apply_only_if_we_choose_to_test_recovery",
    "prod_strict_ok": {
      "vpn1": "true",
      "vpn2": "true",
      "vpn3": "true",
      "vpn4": "true",
      "vpn5": "true"
    },
    "rollback": "/root/rollback-step048p-hmn-adapter-20260710-182406.sh",
    "vm100_peer_count": "5",
    "vm121_db_summary": {
      "enabled_peers": 5,
      "lease_rows": 5,
      "pending_jobs": 0
    }
  }
}
