STEP_050E2 salvage classify repair quarantine proof

=== STEP_050E2 RESULT ===
step=STEP_050E2_SALVAGE_CLASSIFY_REPAIR_QUARANTINE_PROOF
decision=PASS_STEP_050E2_SALVAGE_CLASSIFY_REPAIR_QUARANTINE_PROOF
all_ok=true

mode=READ_ONLY_SALVAGE_CLASSIFY_050E_STOP_AS_PARSER_ONLY
production_modified=false

summary:
  classification=050E_CORE_PASS_BUT_ORIGINAL_STOP_DUE_TO_VM121_DB_MARKER_PARSE
  old_endpoint=109.248.198.4:37129
  new_endpoint=151.236.30.139:33998
  vpn2_current=151.236.30.139:33998
  quarantine_lines=2
  daily_counter=1
  latest_quarantine_ts_old=1783766954
  planner_targets=['178.215.227.13:44408', '192.121.163.235:42530', '95.211.68.119:45176', '78.31.250.16:41729', '157.173.27.69:41797']
  planner_quarantine_excluded_count=1
  strict={'vpn1': True, 'vpn2': True, 'vpn3': True, 'vpn4': True, 'vpn5': True}
  ifaces={'vpn1': True, 'vpn2': True, 'vpn3': True, 'vpn4': True, 'vpn5': True}
  routes={'201': True, '202': True, '203': True, '204': True, '205': True}
  watcher_all_healthy=True
  vm100_peer_count=5
  vm121_db={'enabled_peers': 5, 'lease_rows': 5, 'pending_jobs': 0, 'postgres_container': 'wgaccess-postgres'}
  next_step=STEP_050F_EMERGENCY_REFRESH_SKELETON_NO_AUTO_DIRECT

success_checks:
  previous_050e_core_proof_ok=true
  vm101_rc_zero=true
  vm100_rc_zero=true
  vm121_rc_zero=true
  vpn2_current_is_repaired_endpoint=true
  old_endpoint_has_quarantine_ts=true
  state_last_old_matches=true
  state_last_new_matches=true
  state_last_egress_matches=true
  state_last_iface_matches=true
  daily_counter_at_least_one=true
  quarantine_lines_at_least_two=true
  planner_plan_ok=true
  planner_excludes_old_endpoint=true
  planner_quarantine_enabled=true
  planner_quarantine_excluded_at_least_one=true
  all_interfaces_exist=true
  all_tables_have_routes=true
  prod_strict_all_ok=true
  watcher_running_enabled=true
  watcher_all_healthy=true
  vm100_peer_count_five=true
  vm100_controller_running=true
  vm121_pending_zero=true
  vm121_enabled_peers_five=true
  vm121_lease_rows_five=true

warnings:
  - STEP_050E previous STOP is classified as parser/crosscheck-only; core repair/quarantine/counter proof is valid.

artifacts:
  progress.log
  prev_050e_facts.json
  vm101_check.txt
  vm100_check.txt
  vm121_check.txt
  facts.json
  report.txt

next:
  STEP_050F_EMERGENCY_REFRESH_SKELETON_NO_AUTO_DIRECT

TRYCF_REPORT=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-105320_step050e2_salvage_classify_repair_quarantine_proof/
REPORT_TXT=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-105320_step050e2_salvage_classify_repair_quarantine_proof/report.txt
FACTS_JSON=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-105320_step050e2_salvage_classify_repair_quarantine_proof/facts.json
ARCHITECTURE_PLAN=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-095354_step049i_architecture_lock_hmn_egress_recovery/