RESULT=PASS_R16_TARGET_PREFLIGHT
STEP_ID=STEP_050M07R16_TRANSACTIONAL_GENERATION_ACTIVATION_R01
GENERATION_ID=r15b2-20260716-215914
GENERATION_DIR=/var/lib/router-egress-recovery/generations/staging/r15b2-20260716-215914
GENERATION_VALIDATOR=PASS
BASELINE_HEALTHY_SLOT_COUNT=5
ACTIVE_GENERATION_PRESENT=false
AUTOMATIC_ACTIVATION_ALLOWED=false
HEALTH_SERVICE=RUNNING
VM101_GIT_HEAD=acdd5c8dc7990d48d492cc567b0a1506af96a826
VM101_GIT_TREE=a11117d70e206ddb812076757e1d5003ae76ec5f
VM101_GIT_STATUS=CLEAN
RUNTIME_IMPACT=false
snapshotting 'drive-sata1' (local-lvm:vm-101-disk-0)
  Logical volume "snap_vm-101-disk-0_R16_PRE_20260717_103152" created.
R16_PRE_20260717_103152
RESULT=PASS_R16_ALLOWLIST_MULTILINE_UPDATED
>>> prepare complete five-slot network configuration
>>> stop health repair service and apply complete prepared network
>>> verify all five endpoints and strict health
>>> commit active symlink and reset repair state only after complete proof
RESULT=PASS_R16_GENERATION_ACTIVATED
GENERATION_ID=r15b2-20260716-215914
GENERATION_DIR=/var/lib/router-egress-recovery/generations/staging/r15b2-20260716-215914
ACTIVE_LINK=/var/lib/router-egress-recovery/generations/active
TRANSACTION_DIR=/var/lib/router-egress-recovery/activations/20260717-103220-r15b2-20260716-215914
ROLLBACK_FILE=/var/lib/router-egress-recovery/activations/20260717-103220-r15b2-20260716-215914/rollback.sh
REPAIR_COUNTER_RESET=true
AUTHORIZATION_ID=r16-r15b2-20260716-215914-1784284340
AUTHORIZATION_CONSUMED=true
ACTIVE_SLOT_COUNT=5
RUNTIME_IMPACT=true
RESULT=PASS_R16_TARGET_CORE
GENERATION_ID=r15b2-20260716-215914
ACTIVATION_TRANSACTION_DIR=/var/lib/router-egress-recovery/activations/20260717-103220-r15b2-20260716-215914
ACTIVATOR_SHA256=f3c8bbd7d37b1b2c152e635be5f36d560b42e4d118e786e15b4945ccfa36c202
BUILDER_SHA256=ce60256e338885fdf1cbef480daba1816f68456a866e81e041619e63f6cbffd0
RESULT=PASS_R16_TARGET_POSTCHECK
GENERATION_ID=r15b2-20260716-215914
ACTIVE_GENERATION_LINK=PASS
ACTIVE_SLOT_COUNT=5
ENDPOINTS_MATCH_GENERATION=PASS
UCI_GENERATION_MARKERS=PASS
TABLES_201_205=PASS
RULES_201_205=PASS
STRICT_HEALTH=PASS
HANDSHAKES_RECENT=PASS
AUTOMATIC_ACTIVATION_ALLOWED=false
REPAIR_COUNTER=0
HEALTH_SERVICE=RUNNING
DIRECT_FAILOPEN_ENABLED=false
RUNTIME_IMPACT=true
RESULT=PASS_R16_TARGET_ARTIFACT_EXPORT
ARCHIVE=/var/lib/router-egress-recovery/steps/STEP_050M07R16_TRANSACTIONAL_GENERATION_ACTIVATION_R01/export.tar.gz
>>> [router-machine-close] machine=vm101 mode=--publish
>>> [vm101-source] precheck
MODE=--publish
REPOSITORY_URL=https://github.com/DChuvelev/wg-paid-vm101.git
REPO_DIR=/opt/router-ops/state/source-repositories/wg-paid-vm101
>>> [vm101-source] run VM101 git publisher through approved nested SSH
>>> [vm101-git] precheck
MODE=--publish
PROFILE=/etc/router-machine-git-source.conf
PROFILE_VERSION=2
PROFILE_SHA256=960ff018232f9f4e09112f151382bcf9a66e80f958a64120f936a04cf856e23c
MACHINE_ID=vm101
GIT_DIR=/root/.vm101-source.git
WORK_TREE=/
BRANCH=main
REMOTE_URL=git@github.com:DChuvelev/wg-paid-vm101.git
LOCAL_HEAD=acdd5c8dc7990d48d492cc567b0a1506af96a826
>>> [vm101-git] verify remote branch
REMOTE_HEAD=acdd5c8dc7990d48d492cc567b0a1506af96a826
>>> [vm101-git] build current project allowlist
>>> [vm101-git] read paths already tracked by git
CURRENT_ALLOWED_COUNT=34
TRACKED_COUNT=33
MANAGED_UNION_COUNT=34
>>> [vm101-git] strict path validation
STRICT_PATH_VALIDATION=true
>>> [vm101-git] show tracked files now missing from machine
TRACKED_PATH_MISSING_COUNT=0
>>> [vm101-git] build simulated git index
STAGED_CHANGE_COUNT=3
=== STAGED PATHS ===
etc/router-machine-git-source.conf
usr/local/sbin/router-egress-generation-activate
usr/local/sbin/router-egress-generation-build
>>> [vm101-git] validate simulated staged paths
STAGED_PATH_VALIDATION=true
SIMULATED_TREE_SHA=1972e4bc69dfbfdfb14d210a44a3fdc772ee88de
SIMULATED_TREE_FILE_COUNT=34
>>> [vm101-git] high-confidence secret scan of simulated tree
HIGH_CONFIDENCE_SECRET_MATCHES=0
>>> [vm101-git] keyword review scan
=== FILES REQUIRING KEYWORD REVIEW ===
1972e4bc69dfbfdfb14d210a44a3fdc772ee88de:hmn/hmn-load-vpn-test.sh
1972e4bc69dfbfdfb14d210a44a3fdc772ee88de:hmn/hmn-set-code.sh
>>> [vm101-git] verify real git index has no pre-staged changes
>>> [vm101-git] install validated simulated index
>>> [vm101-git] create commit
[main d010164] vm101: publish managed source 2026-07-17T10:33:47Z
 3 files changed, 514 insertions(+), 2 deletions(-)
 create mode 100755 usr/local/sbin/router-egress-generation-activate
NEW_COMMIT=d01016420799492ea6e0ce1a526abafe910f18ed
NEW_TREE=1972e4bc69dfbfdfb14d210a44a3fdc772ee88de
>>> [vm101-git] push branch to remote
To github.com:DChuvelev/wg-paid-vm101.git
   acdd5c8..d010164  main -> main
>>> [vm101-git] verify remote commit
LOCAL_COMMIT=d01016420799492ea6e0ce1a526abafe910f18ed
REMOTE_COMMIT=d01016420799492ea6e0ce1a526abafe910f18ed

RESULT=PASS_vm101_GIT_PUBLISH
MACHINE_ID=vm101
GIT_COMMIT=d01016420799492ea6e0ce1a526abafe910f18ed
GIT_TREE=1972e4bc69dfbfdfb14d210a44a3fdc772ee88de
GIT_FILE_COUNT=34
COMMIT_CREATED=true
PUSH_PERFORMED=true
REPOSITORY=https://github.com/DChuvelev/wg-paid-vm101

VM101_PUBLISHER_RC=0

VM101_RESULT=PASS_vm101_GIT_PUBLISH
VM101_COMMIT=d01016420799492ea6e0ce1a526abafe910f18ed
VM101_REMOTE_COMMIT=d01016420799492ea6e0ce1a526abafe910f18ed
>>> [vm101-source] clone or refresh repository on VM130
CURRENT_ORIGIN=https://github.com/DChuvelev/wg-paid-vm101.git
From https://github.com/DChuvelev/wg-paid-vm101
 * branch            main       -> FETCH_HEAD
   acdd5c8..d010164  main       -> origin/main
Reset branch 'main'
branch 'main' set up to track 'origin/main'.
Your branch is up to date with 'origin/main'.
HEAD is now at d010164 vm101: publish managed source 2026-07-17T10:33:47Z

VM130_COMMIT=d01016420799492ea6e0ce1a526abafe910f18ed
VM130_TREE=1972e4bc69dfbfdfb14d210a44a3fdc772ee88de
VM130_FILE_COUNT=34
VM130_STATUS=CLEAN
>>> [vm101-source] verify required managed paths
REQUIRED_PATH_OK=etc/crontabs/root
REQUIRED_PATH_OK=usr/local/sbin/router-vm101-git-publish.sh
>>> [vm101-source] create archive and metadata from exact Git commit
ARCHIVE=/tmp/vm101-git-source-publish.Ohcc4J/wg-paid-vm101-d01016420799.tar.gz
ARCHIVE_SHA256=b8a5c1f3c1a9f21b9a02b0bbd3d4fd95012d6e61e802e1cc1c7ca0d58b25c880
ARCHIVE_BASE64=/tmp/vm101-git-source-publish.Ohcc4J/wg-paid-vm101-d01016420799.tar.gz.b64.txt
MANIFEST=/tmp/vm101-git-source-publish.Ohcc4J/git-tree-manifest.txt
PATHS=/tmp/vm101-git-source-publish.Ohcc4J/managed-paths.txt
FACTS=/tmp/vm101-git-source-publish.Ohcc4J/facts.json
>>> [vm101-source] publish atomically into latest/ and archive prior version into old/
PUBLISHED_DIR=/opt/router-ops/public/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/latest/20260717-103352_vm101_git_source_d01016420799
PUBLISHED_RELATIVE_PATH=latest/20260717-103352_vm101_git_source_d01016420799
PUBLIC_OBJECT_KIND=vm101
PREVIOUS_MOVED_COUNT=1
COLLISION_DEDUPLICATED_COUNT=0
PUBLICATION_REUSED=false
PUBLICATION_TRANSACTION_ID=20260717-103352_69030_6032
PUBLICATION_COMMITTED=true
LOCAL_POSTCHECK=PASS
LATEST_INDEX_CONTAINS_FOLDER=true
LOCAL_INDEX=http://192.168.30.84:8099/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/latest/20260717-103352_vm101_git_source_d01016420799/
LATEST_ROOT_URL=https://reports.secret-studio.ru/latest/
OLD_ROOT_URL=https://reports.secret-studio.ru/old/
PUBLIC_INDEX=https://reports.secret-studio.ru/latest/
PUBLIC_URL=https://reports.secret-studio.ru/latest/20260717-103352_vm101_git_source_d01016420799/
VM101_PUBLIC_URL=https://reports.secret-studio.ru/latest/20260717-103352_vm101_git_source_d01016420799/
TRYCF_INDEX=https://receiver-rejected-average-combat.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/latest/
TRYCF_REPORT=https://receiver-rejected-average-combat.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/latest/20260717-103352_vm101_git_source_d01016420799/
RESULT=PASS_ROUTER_PUBLISH_REPORT
ATTEMPT=1 HTTP_RC=0 HTTP_CODE=200 BODY_SHA256=2ca9f6bb4a9e68a0df53114b5ee6b86b19b941ce43767f87af7862f985f4ee73
RESULT=PASS_ROUTER_HTTP_VERIFY
HTTP_POSTCHECK=PASS
HTTP_URL=https://reports.secret-studio.ru/latest/20260717-103352_vm101_git_source_d01016420799/
HTTP_CODE=200
HTTP_ATTEMPTS=1
HTTP_SHA256=2ca9f6bb4a9e68a0df53114b5ee6b86b19b941ce43767f87af7862f985f4ee73
HTTP_OUTPUT=/tmp/vm101-git-source-publish.Ohcc4J/http-index.html
ATTEMPT=1 HTTP_RC=0 HTTP_CODE=200 BODY_SHA256=b8a5c1f3c1a9f21b9a02b0bbd3d4fd95012d6e61e802e1cc1c7ca0d58b25c880
RESULT=PASS_ROUTER_HTTP_VERIFY
HTTP_POSTCHECK=PASS
HTTP_URL=https://reports.secret-studio.ru/latest/20260717-103352_vm101_git_source_d01016420799/wg-paid-vm101-d01016420799.tar.gz
HTTP_CODE=200
HTTP_ATTEMPTS=1
HTTP_SHA256=b8a5c1f3c1a9f21b9a02b0bbd3d4fd95012d6e61e802e1cc1c7ca0d58b25c880
HTTP_OUTPUT=/tmp/vm101-git-source-publish.Ohcc4J/http-archive.tar.gz
ATTEMPT=1 HTTP_RC=0 HTTP_CODE=200 BODY_SHA256=d3c4d8611713297c0ce4fa8f8f50046c06d92889d29d91f632f06e1d44579d94
RESULT=PASS_ROUTER_HTTP_VERIFY
HTTP_POSTCHECK=PASS
HTTP_URL=https://reports.secret-studio.ru/latest/20260717-103352_vm101_git_source_d01016420799/facts.json
HTTP_CODE=200
HTTP_ATTEMPTS=1
HTTP_SHA256=d3c4d8611713297c0ce4fa8f8f50046c06d92889d29d91f632f06e1d44579d94
HTTP_OUTPUT=/tmp/vm101-git-source-publish.Ohcc4J/http-facts.json
ATTEMPT=1 HTTP_RC=0 HTTP_CODE=200 BODY_SHA256=171505c9bf503b593d1d41da55a711bce414498895cdf1eb93ab5ee92722da5f
RESULT=PASS_ROUTER_HTTP_VERIFY
HTTP_POSTCHECK=PASS
HTTP_URL=https://reports.secret-studio.ru/latest/20260717-103352_vm101_git_source_d01016420799/git-tree-manifest.txt
HTTP_CODE=200
HTTP_ATTEMPTS=1
HTTP_SHA256=171505c9bf503b593d1d41da55a711bce414498895cdf1eb93ab5ee92722da5f
HTTP_OUTPUT=/tmp/vm101-git-source-publish.Ohcc4J/http-manifest.txt
>>> [vm101-source] save current source archive state

RESULT=PASS_VM130_VM101_GIT_SOURCE_PUBLISH
VM101_GIT_SOURCE_COMMIT=d01016420799492ea6e0ce1a526abafe910f18ed
VM101_GIT_SOURCE_TREE=1972e4bc69dfbfdfb14d210a44a3fdc772ee88de
VM101_GIT_SOURCE_FILE_COUNT=34
VM101_GIT_SOURCE_URL=https://reports.secret-studio.ru/latest/20260717-103352_vm101_git_source_d01016420799/
VM101_GIT_SOURCE_ARCHIVE_URL=https://reports.secret-studio.ru/latest/20260717-103352_vm101_git_source_d01016420799/wg-paid-vm101-d01016420799.tar.gz
VM101_GIT_SOURCE_ARCHIVE_B64_URL=https://reports.secret-studio.ru/latest/20260717-103352_vm101_git_source_d01016420799/wg-paid-vm101-d01016420799.tar.gz.b64.txt
VM101_GIT_SOURCE_FACTS_URL=https://reports.secret-studio.ru/latest/20260717-103352_vm101_git_source_d01016420799/facts.json
VM101_GIT_SOURCE_MANIFEST_URL=https://reports.secret-studio.ru/latest/20260717-103352_vm101_git_source_d01016420799/git-tree-manifest.txt
VM101_GIT_SOURCE_ARCHIVE_SHA256=b8a5c1f3c1a9f21b9a02b0bbd3d4fd95012d6e61e802e1cc1c7ca0d58b25c880
VM101_PUSH_PERFORMED=true
ARCHIVE_CREATED=true
PUBLISHER_RESULT=PASS_ROUTER_PUBLISH_REPORT
PUBLISHER_RC=0
PUBLISHER_RC_NONZERO_SALVAGED=false
PUBLICATION_COMMITTED=true
LOCAL_POSTCHECK=PASS
LATEST_INDEX_CONTAINS_FOLDER=true
HTTP_POSTCHECK=PASS
SOURCE_STATE_UPDATED=true
PERMANENT_HTTPS_PUBLISHED=true
RESULT=PASS_ROUTER_MACHINE_CLOSE
MACHINE=vm101
DESCRIPTION=STEP_050M07R16_TRANSACTIONAL_GENERATION_ACTIVATION_R01: transactional activation of r15b2-20260716-215914
COMMIT=d01016420799492ea6e0ce1a526abafe910f18ed
TREE=1972e4bc69dfbfdfb14d210a44a3fdc772ee88de
GIT_FILE_COUNT=34
SOURCE_PUBLISH_BACKEND=/opt/router-ops/bin/router-vm101-git-source-publish
BACKEND_LOG=/opt/router-ops/state/machine-close-runs/20260717-103346_vm101_68987/backend.txt
BACKEND_RC=0
BACKEND_RC_NONZERO_SALVAGED=false
CLASSIFICATION=PASS_AUTHORITATIVE_BACKEND_AND_PUBLICATION
VM101_PUBLIC_URL=https://reports.secret-studio.ru/latest/20260717-103352_vm101_git_source_d01016420799/
RESULT=PASS_R16_POST_MACHINE_GIT
VM101_GIT_HEAD=d01016420799492ea6e0ce1a526abafe910f18ed
VM101_GIT_TREE=1972e4bc69dfbfdfb14d210a44a3fdc772ee88de
VM101_GIT_FILE_COUNT=34
/home/ops/incoming/STEP_050M07R16_TRANSACTIONAL_GENERATION_ACTIVATION_R01.unpacked/STEP_050M07R16_TRANSACTIONAL_GENERATION_ACTIVATION_R01/install.sh: line 448: r15b2-20260716-215914: command not found
/home/ops/incoming/STEP_050M07R16_TRANSACTIONAL_GENERATION_ACTIVATION_R01.unpacked/STEP_050M07R16_TRANSACTIONAL_GENERATION_ACTIVATION_R01/install.sh: line 448: /var/lib/router-egress-recovery/generations/active: No such file or directory
/home/ops/incoming/STEP_050M07R16_TRANSACTIONAL_GENERATION_ACTIVATION_R01.unpacked/STEP_050M07R16_TRANSACTIONAL_GENERATION_ACTIVATION_R01/install.sh: line 448: /var/lib/router-egress-recovery/generations/staging/r15b2-20260716-215914: No such file or directory
