# Канонический локальный план VM101

Актуальность: 20260713-193942 UTC  
Выполнено: 6/15  
Текущий этап: M07 — В РАБОТЕ

## Последний STEP

- STEP_050M07R13B_HARDEN_MACHINE_GIT_COUNT_CONTRACT
- RESULT=PASS_STEP_050M07R13B_HARDEN_MACHINE_GIT_COUNT_CONTRACT
- Runtime VM100/VM101/VM121 не менялся.
- Исправлен процесс формирования Machine Git facts на router-ops.
- Полный Git tree теперь считается CWD-независимо и сверяется с git archive.
- Поле tracked_file_count запрещено.
- Опубликована формальная коррекция R13A: 21 было поддеревом /root; полный tree=44; changed files=1.

## Следующая runtime-цель

- STEP_050M07R14A
- /root/hmn/hmn-validate-current-pool.sh
- Убрать оставшуюся legacy-зависимость selector-а от table 200 с переиспользованием существующей runtime library.

## Этапы

| ID | Этап | Статус |
|---|---|---|
| M01 | Health monitor обнаруживает отказ VPN-слота | ВЫПОЛНЕНО |
| M02 | Локальная замена отказавшего VPN-туннеля | ВЫПОЛНЕНО |
| M03 | Quarantine отказавших endpoints | ВЫПОЛНЕНО |
| M04 | Глобальный repair counter после локальных замен | ВЫПОЛНЕНО |
| M05 | Порог full refresh и dry-run решения | ВЫПОЛНЕНО |
| M06 | Постоянно включить emergency commit на VM101 | ВЫПОЛНЕНО |
| M07 | Выполнить контролируемый реальный full HideMyName refresh | В РАБОТЕ |
| M08 | DEGRADED_POOL при ошибке HideMyName refresh | ОЖИДАЕТ |
| M09 | SLOT_EXHAUSTED и консолидация пользователей | ОЖИДАЕТ |
| M10 | DIRECT_EMERGENCY при нуле рабочих VPN | ОЖИДАЕТ |
| M11 | Cached-pool bootstrap через vpn1 | ОЖИДАЕТ |
| M12 | Абстрактный bootstrap strategy contract | ОЖИДАЕТ |
| M13 | Безопасный возврат Direct → VPN | ОЖИДАЕТ |
| M14 | Полная последовательная имитация отказов VM101 | ОЖИДАЕТ |
| M15 | Перезагрузочная устойчивость state machine | ОЖИДАЕТ |

## Актуальные ссылки

- STEP report: https://receiver-rejected-average-combat.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260713-193942_step050m07r13b_harden_machine_git_count_contract/
- VM101 Machine Git: https://receiver-rejected-average-combat.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260713-192042_vm101_git_source_027589515a26/
- VM101 model: https://receiver-rejected-average-combat.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260713-192030_vm101_model_hmn_download_selector_r13a/vm101-model.txt
- VM101 methods: https://receiver-rejected-average-combat.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260713-193942_vm101_methods_machine_git_count_contract_r13b/
- Global project plan: https://receiver-rejected-average-combat.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-123348_global_project_plan_wg_paid/
- Access / XS Map: https://receiver-rejected-average-combat.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-120734_xs_map_audit_repair_publish/
