{
  "step_id": "WG_PAID_MGTS_STEP_050M07R20N_R02",
  "revision": "R01",
  "classification": "long-controlled-runtime-threshold-test",
  "functional_stage": "four_sequential_local_repairs_then_watcher_triggered_automatic_full_refresh",
  "previous_step": "STOP_R20N_R01_BUNDLE_POLICY_R20_PUBLICATION_SAFE_PAYLOAD_RUNTIME_FIXTURE_NAME",
  "fresh_pool_step": "PASS_R20M_R02_FRESH_POOL_TRANSACTIONALLY_REPLACED_AND_READY",
  "source_of_truth": "machine_git",
  "expected_baseline_commit": "d0c0a77486665b0abfef8133f0cccd20c6232b46",
  "expected_baseline_tree": "76a427a94defee9bffe571fda3f8bb504b8eb540",
  "expected_baseline_managed_file_count": 37,
  "expected_repair_counter_before": 1,
  "full_refresh_threshold": 5,
  "repair_sequence": [
    "egress3/vpn3",
    "egress4/vpn4",
    "egress5/vpn5",
    "egress1/vpn1"
  ],
  "expected_counter_progression": "1->2->3->4->5->0",
  "failure_injection": "live_amneziawg_endpoint_port_only",
  "full_candidate_config_binding_oracle": true,
  "peer_uci_oracle_required": true,
  "endpoint_consistency_required": true,
  "automatic_full_refresh_required": true,
  "manual_full_refresh_call_forbidden": true,
  "local_repair_timeout_sec_per_slot": 720,
  "automatic_full_refresh_timeout_sec": 3600,
  "heartbeat_interval_sec": 20,
  "full_refresh_heartbeat_interval_sec": 30,
  "direct_failopen_allowed": false,
  "managed_source_change": false,
  "runtime_impact": true,
  "local_repair_tested": true,
  "automatic_full_refresh_tested": true,
  "reboot_tested": false,
  "rollback_boundary": "before commit_dispatch restore only current live injection; after production commit begins do not race transaction or undo successful prior repairs; snapshot is operator-only rollback",
  "snapshot_name": "dynamic-r20n-pre",
  "snapshot_name_preferred_max_length": 32,
  "target_installer_rerun": false,
  "router_machine_close_rerun": false,
  "input_directory": "/home/ops/incoming",
  "zip_filename": "WG_PAID_MGTS_STEP_050M07R20N_R02.zip",
  "expected_installer_sha256": "08f9671eddaa89474efa4983b03983e22ae07a2c5ef6fbb0cd3cc60a2e7a3da9",
  "expected_local_plan_url": "https://reports.secret-studio.ru/latest/20260719-080444_local_architecture_plan_vm101_autonomous_hmn_recovery_r19/",
  "expected_global_plan_url": "https://reports.secret-studio.ru/latest/20260711-123348_global_project_plan_wg_paid/",
  "expected_access_map_url": "https://reports.secret-studio.ru/latest/20260715-210236_access_map_canonical_current/",
  "expected_vm101_public_url": "https://reports.secret-studio.ru/latest/20260722-190541_vm101_git_source_d0c0a7748666/",
  "expected_vm101_model_url": "https://reports.secret-studio.ru/latest/20260722-190541_vm101_model_r20h_r07_salvage_and_log_oracle_correction_r08/",
  "expected_vm101_methods_url": "https://reports.secret-studio.ru/latest/20260722-190541_vm101_methods_r20h_r07_salvage_and_log_oracle_correction_r08/",
  "expected_vm130_source_url": "https://reports.secret-studio.ru/latest/20260720-093614_vm130_router_ops_source_snapshot_after_r20c_full_contract/",
  "publication_labels": {
    "model": "vm101_model_r20n_repair_threshold_and_auto_refresh_r01",
    "methods": "vm101_methods_r20n_repair_threshold_and_auto_refresh_r01",
    "project_source": "project_source_post_vm101_repair_threshold_auto_refresh_r20n_r02",
    "step_report": "step050m07r20n_r02_repair_threshold_and_automatic_full_refresh"
  },
  "mandatory_fixtures": [
    "scope.sh",
    "sequence.sh",
    "threshold-oracle.sh",
    "full-binding-oracle.sh",
    "automatic-refresh-oracle.sh",
    "cleanup-ownership.sh",
    "baseline.sh",
    "state-artifact-paths.sh",
    "privacy.sh",
    "publication_safe_payload_runtime.sh",
    "installation-contract.sh",
    "backup-contract.sh"
  ],
  "functional_previous_step": "PASS_R20H_R08_R07_CORE_LOCAL_REPAIR_PROVEN_AND_LOG_ORACLE_CORRECTED",
  "continuation_of": "WG_PAID_MGTS_STEP_050M07R20N_R01",
  "continuation_reason": "R01 stopped at VM130 R20 bundle policy before installer because mandatory fixture used hyphens instead of the required publication_safe_payload_runtime.sh basename",
  "runtime_phase_repeated": false,
  "snapshot_reused": false,
  "core_change_repeated": false
}
