SNAPSHOT_NAME=r20qt-r03-empty-move SNAPSHOT_NAME_LENGTH=20 TARGET_PACKAGE_EXPECTED_SHA256=2f2a2e45560c10898d55801010ca38590f21bfe3d0d6934afcbb850ad0688b38 TARGET_PACKAGE_ACTUAL_SHA256=2f2a2e45560c10898d55801010ca38590f21bfe3d0d6934afcbb850ad0688b38 fixtures/vm100/etc/router-wgpay-selector.d/peers.conf: OK fixtures/vm100/etc/router-wgpay-slot-topology.conf: OK rootfs/vm100/usr/local/lib/router-wgpay-slot-topology-lib.sh: OK rootfs/vm100/usr/local/sbin/router-wgpay-slot-topology-apply.sh: OK runtime/vm100-selector-empty-move-isolated-proof.sh: OK TARGET_BUSYBOX_SYNTAX_OK=10.71.100.1:payload/rootfs/vm100/usr/local/lib/router-wgpay-slot-topology-lib.sh TARGET_BUSYBOX_SYNTAX_OK=10.71.100.1:payload/rootfs/vm100/usr/local/sbin/router-wgpay-slot-topology-apply.sh TARGET_BUSYBOX_SYNTAX_OK=10.71.100.1:payload/runtime/vm100-selector-empty-move-isolated-proof.sh TARGET_BUSYBOX_SYNTAX_OK=10.71.100.1:scripts/vm100-preflight.sh TARGET_BUSYBOX_SYNTAX_OK=10.71.100.1:scripts/vm100-backup.sh TARGET_BUSYBOX_SYNTAX_OK=10.71.100.1:scripts/vm100-apply.sh TARGET_BUSYBOX_SYNTAX_OK=10.71.100.1:scripts/vm100-postcheck.sh TARGET_BUSYBOX_SYNTAX_OK=10.71.100.1:scripts/vm100-rollback.sh TARGET_BUSYBOX_SYNTAX_OK=10.71.100.2:scripts/vm101-preflight.sh >>> [vm100-source] precheck MODE=--check REPOSITORY_URL=https://github.com/DChuvelev/wg-paid-vm100.git REPO_DIR=/opt/router-ops/state/source-repositories/wg-paid-vm100 >>> [vm100-source] run VM100 git publisher through approved nested SSH >>> [vm100-git] precheck MODE=--check PROFILE=/etc/router-machine-git-source.conf PROFILE_VERSION=2 PROFILE_SHA256=ee2c3b5366d8eb4c4ebf9766c07f6926ecc927e9c38a3766d870fc7397ab2743 MACHINE_ID=vm100 GIT_DIR=/root/.vm100-source.git WORK_TREE=/ BRANCH=main REMOTE_URL=git@github.com:DChuvelev/wg-paid-vm100.git LOCAL_HEAD=22fba62c800167f6391beb3dd727012b29e5651c >>> [vm100-git] verify remote branch ssh: Ignoring unknown configuration option 'IdentitiesOnly=yes' REMOTE_HEAD=22fba62c800167f6391beb3dd727012b29e5651c >>> [vm100-git] build current project allowlist >>> [vm100-git] read paths already tracked by git CURRENT_ALLOWED_COUNT=29 TRACKED_COUNT=29 MANAGED_UNION_COUNT=29 >>> [vm100-git] strict path validation STRICT_PATH_VALIDATION=true >>> [vm100-git] show tracked files now missing from machine TRACKED_PATH_MISSING_COUNT=0 >>> [vm100-git] build simulated git index STAGED_CHANGE_COUNT=0 STAGED_PATHS=NONE >>> [vm100-git] validate simulated staged paths STAGED_PATH_VALIDATION=true SIMULATED_TREE_SHA=decb190091126e3ff3aa49eb139c940c56f5354a SIMULATED_TREE_FILE_COUNT=29 >>> [vm100-git] high-confidence secret scan of simulated tree HIGH_CONFIDENCE_SECRET_MATCHES=0 >>> [vm100-git] keyword review scan KEYWORD_REVIEW_FILES=NONE RESULT=PASS_vm100_GIT_PUBLISH_CHECK MACHINE_ID=vm100 GIT_COMMIT=22fba62c800167f6391beb3dd727012b29e5651c GIT_TREE=decb190091126e3ff3aa49eb139c940c56f5354a GIT_FILE_COUNT=29 COMMIT_CREATED=false PUSH_PERFORMED=false VM100_RESULT=PASS_vm100_GIT_PUBLISH_CHECK VM100_COMMIT=22fba62c800167f6391beb3dd727012b29e5651c VM100_REMOTE_COMMIT=22fba62c800167f6391beb3dd727012b29e5651c >>> [vm100-source] clone or refresh repository on VM130 CURRENT_ORIGIN=https://github.com/DChuvelev/wg-paid-vm100.git branch 'main' set up to track 'origin/main'. Your branch is up to date with 'origin/main'. HEAD is now at 22fba62 vm100: publish managed source 2026-07-29T20:18:34Z VM130_COMMIT=22fba62c800167f6391beb3dd727012b29e5651c VM130_TREE=decb190091126e3ff3aa49eb139c940c56f5354a VM130_FILE_COUNT=29 VM130_STATUS=CLEAN >>> [vm100-source] verify required managed paths REQUIRED_PATH_OK=etc/router-machine-git-source.conf REQUIRED_PATH_OK=usr/local/sbin/router-machine-git-publish.sh REQUIRED_PATH_OK=usr/local/sbin/router-vm100-git-publish.sh RESULT=PASS_VM130_VM100_GIT_SOURCE_CHECK VM100_COMMIT=22fba62c800167f6391beb3dd727012b29e5651c VM130_COMMIT=22fba62c800167f6391beb3dd727012b29e5651c VM130_TREE=decb190091126e3ff3aa49eb139c940c56f5354a VM130_FILE_COUNT=29 VM100_PUSH_PERFORMED=false ARCHIVE_CREATED=false PERMANENT_HTTPS_PUBLISHED=false >>> [vm101-source] precheck MODE=--check 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=--check PROFILE=/etc/router-machine-git-source.conf PROFILE_VERSION=2 PROFILE_SHA256=3530bea6f101403d95fc82e37420a14b2a451d2774c03f3c9819679f011d24ab 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=e656f9bfde6d727292f38cae43e41811a23d6714 >>> [vm101-git] verify remote branch REMOTE_HEAD=e656f9bfde6d727292f38cae43e41811a23d6714 >>> [vm101-git] build current project allowlist >>> [vm101-git] read paths already tracked by git CURRENT_ALLOWED_COUNT=55 TRACKED_COUNT=55 MANAGED_UNION_COUNT=55 >>> [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=0 STAGED_PATHS=NONE >>> [vm101-git] validate simulated staged paths STAGED_PATH_VALIDATION=true SIMULATED_TREE_SHA=48a6c4365ccde9caaec7765fa796f09cbd74771e SIMULATED_TREE_FILE_COUNT=55 >>> [vm101-git] high-confidence secret scan of simulated tree HIGH_CONFIDENCE_SECRET_MATCHES=0 >>> [vm101-git] keyword review scan === FILES REQUIRING KEYWORD REVIEW === 48a6c4365ccde9caaec7765fa796f09cbd74771e:hmn/hmn-load-vpn-test.sh 48a6c4365ccde9caaec7765fa796f09cbd74771e:hmn/hmn-set-code.sh RESULT=PASS_vm101_GIT_PUBLISH_CHECK MACHINE_ID=vm101 GIT_COMMIT=e656f9bfde6d727292f38cae43e41811a23d6714 GIT_TREE=48a6c4365ccde9caaec7765fa796f09cbd74771e GIT_FILE_COUNT=55 COMMIT_CREATED=false PUSH_PERFORMED=false VM101_PUBLISHER_RC=0 VM101_RESULT=PASS_vm101_GIT_PUBLISH_CHECK VM101_COMMIT=e656f9bfde6d727292f38cae43e41811a23d6714 VM101_REMOTE_COMMIT=e656f9bfde6d727292f38cae43e41811a23d6714 >>> [vm101-source] clone or refresh repository on VM130 CURRENT_ORIGIN=https://github.com/DChuvelev/wg-paid-vm101.git branch 'main' set up to track 'origin/main'. Your branch is up to date with 'origin/main'. HEAD is now at e656f9b vm101: publish managed source 2026-07-29T18:01:01Z VM130_COMMIT=e656f9bfde6d727292f38cae43e41811a23d6714 VM130_TREE=48a6c4365ccde9caaec7765fa796f09cbd74771e VM130_FILE_COUNT=55 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 RESULT=PASS_VM130_VM101_GIT_SOURCE_CHECK VM101_COMMIT=e656f9bfde6d727292f38cae43e41811a23d6714 VM130_COMMIT=e656f9bfde6d727292f38cae43e41811a23d6714 VM130_TREE=48a6c4365ccde9caaec7765fa796f09cbd74771e VM130_FILE_COUNT=55 VM101_PUSH_PERFORMED=false ARCHIVE_CREATED=false PERMANENT_HTTPS_PUBLISHED=false VM100_QM_STATUS=status: running VM101_QM_STATUS=status: running RESULT=PASS_R20QT_PVE_PREFLIGHT PATH_SHA256=/usr/local/lib/router-wgpay-slot-topology-lib.sh:9d025e6cfcf9889671412cf66130c829e3ea6435b9a689a8d87029a36f83a6e9 PATH_SHA256=/usr/local/sbin/router-wgpay-slot-topology-apply.sh:7edcd9e16696581a4aa67607ccdc978f286598bcacd8c539e8280bbf91a090ea PATH_SHA256=/etc/router-wgpay-selector.d/peers.conf:46d41783effb8d80ea1b09895f829b98a0946e0edbff1e29e7651eb3ef9b036a PATH_SHA256=/etc/router-wgpay-selector.d/canonical.conf:46d41783effb8d80ea1b09895f829b98a0946e0edbff1e29e7651eb3ef9b036a VM100_CURRENT_COMMIT=22fba62c800167f6391beb3dd727012b29e5651c VM100_CURRENT_TREE=decb190091126e3ff3aa49eb139c940c56f5354a VM100_CURRENT_FILE_COUNT=29 VM100_TRACKED_STATUS_CLEAN=true VM100_SELECTOR_CANONICAL=true VM100_TOPOLOGY_MODE=NORMAL VM100_ACTIVE_DIRECT_ROUTE=false RESULT=PASS_R20QT_VM100_PREFLIGHT VM101_CURRENT_COMMIT=e656f9bfde6d727292f38cae43e41811a23d6714 VM101_CURRENT_TREE=48a6c4365ccde9caaec7765fa796f09cbd74771e VM101_CURRENT_FILE_COUNT=55 VM101_TRACKED_STATUS_CLEAN=true VM101_HEALTHY_SLOT_COUNT=5 VM101_FALLBACK_MODE=NORMAL VM101_FULL_REFRESH_PROCESS_PRESENT=false RESULT=PASS_R20QT_VM101_PREFLIGHT RESULT=PASS_R20QT_PREFLIGHT