STEP_050B2 patch recovery state helper mtime selftest

=== STEP_050B2 RESULT ===
step=STEP_050B2_PATCH_RECOVERY_STATE_HELPER_MTIME_SELFTEST
decision=PASS_STEP_050B2_PATCH_RECOVERY_STATE_HELPER_MTIME_SELFTEST
all_ok=true

mode=PATCH_STATE_HELPER_MTIME_SELFTEST_ONLY_NO_BEHAVIOR_HOOK
production_network_config_changed=false
behavior_hooked=false
services_restarted=false

summary:
  helper=/usr/local/lib/router-egress-recovery-state.sh
  state_dir=/var/lib/router-egress-recovery
  quarantine_tsv=/var/lib/router-egress-recovery/quarantine.tsv
  state_kv=/var/lib/router-egress-recovery/state.kv
  fail_counter_dir=/var/lib/router-egress-recovery/fail-counter
  rollback=/root/rollback-step050b2-recovery-state-helper-20260711-103449.sh
  mtime_probe_helper=1783766089
  endpoint_fingerprint_pre=7398c52bdd06da0d7e1a03769e49d0859fdf58b153278a5f8a63a4e9b50fa53b
  endpoint_fingerprint_post=7398c52bdd06da0d7e1a03769e49d0859fdf58b153278a5f8a63a4e9b50fa53b
  cron_fingerprint_pre=d708ea7f7dfc73ad53172e27f08401321abc6beab0e7d86add033b808993bcea
  cron_fingerprint_post=d708ea7f7dfc73ad53172e27f08401321abc6beab0e7d86add033b808993bcea
  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_running=true
  watcher_enabled=true
  behavior_hooked=false
  services_restarted=false
  next_step=STEP_050C_PATCH_REBALANCE_DRYRUN_QUARANTINE_EXCLUDE_NO_APPLY

success_checks:
  vm101_rc_zero=true
  helper_installed=true
  new_helper_syntax_ok=true
  mtime_probe_ok=true
  state_dir_exists=true
  quarantine_tsv_exists=true
  state_kv_exists=true
  counter_dir_exists=true
  selftest_result=true
  selftest_ok_marker=true
  selftest_pool_mtime_gt_quarantine=true
  selftest_quarantine_released_new_pool=true
  endpoint_fingerprint_unchanged=true
  cron_fingerprint_unchanged=true
  all_interfaces_exist=true
  all_tables_have_routes=true
  prod_strict_all_ok=true
  watcher_still_running=true
  network_config_not_changed=true
  behavior_not_hooked=true
  services_not_restarted=true

artifacts:
  vm101_050b2.txt
  vm101_050b2.stderr
  facts.json
  report.txt

next:
  STEP_050C_PATCH_REBALANCE_DRYRUN_QUARANTINE_EXCLUDE_NO_APPLY

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