WORKFLOW_HASH_OK=/opt/router-ops/bin/router-step-bootstrap:46e93496444408d8d8442203babc9431440482ed356cf8a729c2139dfeed2a61 WORKFLOW_HASH_OK=/opt/router-ops/bin/router-bundle-gate:56d2307d42bcb66dce9e771d69207fcf1d571636d8dcb31cb7a9f82cbadbfa24 WORKFLOW_HASH_OK=/opt/router-ops/libexec/router-bundle-gate-r17:39063aedee60080cc8bf09b562da9443ac2f16623353818b382a291185018ed0 WORKFLOW_HASH_OK=/opt/router-ops/bin/router-bundle-policy-r19:3af91f831d1cd59f98a3dfe676f11c60318da01b1c2fbc2df1abbc6d4ebc20e6 WORKFLOW_HASH_OK=/opt/router-ops/bin/router-bundle-policy-r20:43c344872d23a75362155e501ab4d53dca038ccc4bea86989c67fc220f624a9f WORKFLOW_HASH_OK=/opt/router-ops/bin/router-machine-close-safe:19cfbc73fe9fe476c8e1463b57d6db9712eceae98c946e2d28faee55d74db828 WORKFLOW_HASH_OK=/opt/router-ops/bin/router-public-safe-payload:79c9e3c3d820d1cacc49ff68ad4990733e5089c1d6aef83f6bc406124f048504 WORKFLOW_HASH_OK=/opt/router-ops/bin/router-step-finalize:f682f7002e98d1ffe87f528979a1559885bb90c81978ecbd314db3b91c59f841 WORKFLOW_HASH_OK=/opt/router-ops/bin/router-vm100-git-source-publish:ba08736acb4a93839fd2be55dc9cc2d00f25504cda3a96a48ab265fd5407725d WORKFLOW_HASH_OK=/opt/router-ops/bin/router-vm101-git-source-publish:00e1827477aaeebc5a19306a60f115fb33b3024b55c72f20214dd534c0c78884 WORKFLOW_HASH_OK=/opt/router-ops/bin/router-publish-report:9c37a7ef68188ba284acfdde148c381e5f7eccd14413629c184602e35a464cca WORKFLOW_HASH_OK=/opt/router-ops/bin/router-http-verify:b81a8db5878c04f1259eba829c8636cce17e38cc3f44e0fb82137178d0501776 WORKFLOW_HASH_OK=/opt/router-ops/lib/router-step-workflow.sh:0128ae2d15e720b2859c884ec827b4e6e28aed7aacc9b39fad1ec113c7e591f1 WORKFLOW_HASH_OK=/opt/router-ops/lib/router-publication-policy.sh:7c44e32957a690b7a383f8ff1831c295ccb18ccd86b24b2049297ca4c39a528a >>> [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=1ab9b29bc9b55c359164350e0112e5deec893d279e8212cce516477b76f67635 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=5d65131ca0228a73ed56e68ece7c44fd5c666585 >>> [vm100-git] verify remote branch ssh: Ignoring unknown configuration option 'IdentitiesOnly=yes' REMOTE_HEAD=5d65131ca0228a73ed56e68ece7c44fd5c666585 >>> [vm100-git] build current project allowlist >>> [vm100-git] read paths already tracked by git CURRENT_ALLOWED_COUNT=27 TRACKED_COUNT=27 MANAGED_UNION_COUNT=27 >>> [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=b47f00980b78a60d8c98c98b24558e14d3c0d040 SIMULATED_TREE_FILE_COUNT=27 >>> [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=5d65131ca0228a73ed56e68ece7c44fd5c666585 GIT_TREE=b47f00980b78a60d8c98c98b24558e14d3c0d040 GIT_FILE_COUNT=27 COMMIT_CREATED=false PUSH_PERFORMED=false VM100_RESULT=PASS_vm100_GIT_PUBLISH_CHECK VM100_COMMIT=5d65131ca0228a73ed56e68ece7c44fd5c666585 VM100_REMOTE_COMMIT=5d65131ca0228a73ed56e68ece7c44fd5c666585 >>> [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 5d65131 vm100: publish managed source 2026-07-28T14:18:01Z VM130_COMMIT=5d65131ca0228a73ed56e68ece7c44fd5c666585 VM130_TREE=b47f00980b78a60d8c98c98b24558e14d3c0d040 VM130_FILE_COUNT=27 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=5d65131ca0228a73ed56e68ece7c44fd5c666585 VM130_COMMIT=5d65131ca0228a73ed56e68ece7c44fd5c666585 VM130_TREE=b47f00980b78a60d8c98c98b24558e14d3c0d040 VM130_FILE_COUNT=27 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=38d1c76fefbf2a9203a10019d91b25c0c7ec5b67a9f97af623fd89058751d6fc 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=64af27342fd93c53a3ebf4abf223f044d406df6a >>> [vm101-git] verify remote branch REMOTE_HEAD=64af27342fd93c53a3ebf4abf223f044d406df6a >>> [vm101-git] build current project allowlist >>> [vm101-git] read paths already tracked by git CURRENT_ALLOWED_COUNT=48 TRACKED_COUNT=48 MANAGED_UNION_COUNT=48 >>> [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=bc98a61312b3500a62db7836eca607c2656d4916 SIMULATED_TREE_FILE_COUNT=48 >>> [vm101-git] high-confidence secret scan of simulated tree HIGH_CONFIDENCE_SECRET_MATCHES=0 >>> [vm101-git] keyword review scan === FILES REQUIRING KEYWORD REVIEW === bc98a61312b3500a62db7836eca607c2656d4916:hmn/hmn-load-vpn-test.sh bc98a61312b3500a62db7836eca607c2656d4916:hmn/hmn-set-code.sh RESULT=PASS_vm101_GIT_PUBLISH_CHECK MACHINE_ID=vm101 GIT_COMMIT=64af27342fd93c53a3ebf4abf223f044d406df6a GIT_TREE=bc98a61312b3500a62db7836eca607c2656d4916 GIT_FILE_COUNT=48 COMMIT_CREATED=false PUSH_PERFORMED=false VM101_PUBLISHER_RC=0 VM101_RESULT=PASS_vm101_GIT_PUBLISH_CHECK VM101_COMMIT=64af27342fd93c53a3ebf4abf223f044d406df6a VM101_REMOTE_COMMIT=64af27342fd93c53a3ebf4abf223f044d406df6a >>> [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 64af273 vm101: publish managed source 2026-07-28T15:39:49Z VM130_COMMIT=64af27342fd93c53a3ebf4abf223f044d406df6a VM130_TREE=bc98a61312b3500a62db7836eca607c2656d4916 VM130_FILE_COUNT=48 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=64af27342fd93c53a3ebf4abf223f044d406df6a VM130_COMMIT=64af27342fd93c53a3ebf4abf223f044d406df6a VM130_TREE=bc98a61312b3500a62db7836eca607c2656d4916 VM130_FILE_COUNT=48 VM101_PUSH_PERFORMED=false ARCHIVE_CREATED=false PERMANENT_HTTPS_PUBLISHED=false VM100_STATUS=status: running VM101_STATUS=status: running RESULT=PASS_R20QL_PVE_PREFLIGHT VM100_BASELINE_COMMIT=5d65131ca0228a73ed56e68ece7c44fd5c666585 VM100_BASELINE_TREE=b47f00980b78a60d8c98c98b24558e14d3c0d040 VM100_BASELINE_FILE_COUNT=27 VM100_SELECTOR_SHA256=46d41783effb8d80ea1b09895f829b98a0946e0edbff1e29e7651eb3ef9b036a VM100_SELECTOR_COUNTS=1,1,1,1,1 VM100_ALLOCATOR_RUNNING=true VM100_TRANSIT_DIRECT_PRESENT=true RESULT=PASS_R20QL_VM100_PREFLIGHT VM101_BASELINE_COMMIT=64af27342fd93c53a3ebf4abf223f044d406df6a VM101_BASELINE_TREE=bc98a61312b3500a62db7836eca607c2656d4916 VM101_BASELINE_FILE_COUNT=48 VM101_RECOVERY_STATE_SHA256=1987d5b037be1c239918dfadb586e40a1d667ceacee3435bfab1b845ca009f12 VM101_FALLBACK_STATE_SHA256=8f536f1357afa50ff97e8bd4871e30deb2357a22ead8683e2058bf0db4faf175 VM101_OUTBOX_STATE_SHA256=1a75fd6f53612ec22b1d9eb4d2aa0a2a87df7bf7d8522f0022db09ba096baaad VM101_RECOVERY_MODE=NORMAL VM101_FULL_REFRESH_DUE=false VM101_NEXT_REFRESH_EPOCH=0 VM101_HEALTHY_SLOT_COUNT=5 VM101_DIRECT_FAILOPEN_ENABLED=false VM101_RETRY_CONTROLLER_RUNNING=true RESULT=PASS_R20QL_VM101_PREFLIGHT RESULT=PASS_R20QL_PREFLIGHT