>>> [router-machine-close] machine=vm130 mode=--publish MODE=--publish REPOSITORY_URL=https://github.com/DChuvelev/wg-paid-vm130.git REPO_DIR=/opt/router-ops/state/source-repositories/wg-paid-vm130 >>> [vm130-source] run VM130 local Machine Git publisher >>> [vm130-git] precheck MODE=--publish PROFILE=/opt/router-ops/etc/router-machine-git-source.conf PROFILE_VERSION=2 PROFILE_SHA256=c44fb02fa902c5523b13a56d9893c7d0580d884349a8ff4196d96eed9f747834 MACHINE_ID=vm130 GIT_DIR=/home/ops/.vm130-source.git WORK_TREE=/opt/router-ops BRANCH=main REMOTE_URL=git@github.com:DChuvelev/wg-paid-vm130.git LOCAL_HEAD=ad4aed1d793c0d5275cbfee15c57fde1e05ca541 >>> [vm130-git] verify remote branch REMOTE_HEAD=ad4aed1d793c0d5275cbfee15c57fde1e05ca541 >>> [vm130-git] build current project allowlist >>> [vm130-git] read paths already tracked by git CURRENT_ALLOWED_COUNT=80 TRACKED_COUNT=80 MANAGED_UNION_COUNT=80 >>> [vm130-git] strict path validation STRICT_PATH_VALIDATION=true >>> [vm130-git] show tracked files now missing from machine TRACKED_PATH_MISSING_COUNT=0 >>> [vm130-git] build simulated git index STAGED_CHANGE_COUNT=0 STAGED_PATHS=NONE >>> [vm130-git] validate simulated staged paths STAGED_PATH_VALIDATION=true SIMULATED_TREE_SHA=dc872893235cd0bcdecda8d54c0cf0b3380fe420 SIMULATED_TREE_FILE_COUNT=80 >>> [vm130-git] high-confidence secret scan of simulated tree HIGH_CONFIDENCE_SECRET_MATCHES=0 >>> [vm130-git] keyword review scan === FILES REQUIRING KEYWORD REVIEW === dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-bundle-policy-r20 dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-capture-mgts dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-context-pack dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-detached-step dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-hmn-loader-inspect dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-hmn-slot-loader-inspect dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-http-verify dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-instance-show dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-machine-close dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-machine-close-contract-selftest dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-machine-git-publish dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-public-reindex dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-public-start dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-public-url dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-publication-workflow-selftest dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-publish-file dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-publish-report dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-run dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-step-lineage dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-vm100-git-source-publish dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-vm101-git-source-publish dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-vm121-git-source-publish dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-vm130-git-source-publish dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-workflow-r17-selftest dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/router-workflow-r20qu-selftest dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/vm101-canonical-validate dc872893235cd0bcdecda8d54c0cf0b3380fe420:bin/wg-paid-e2e-smoke.sh dc872893235cd0bcdecda8d54c0cf0b3380fe420:lib/router-machine-close-contract.sh dc872893235cd0bcdecda8d54c0cf0b3380fe420:lib/router-publication-policy.sh dc872893235cd0bcdecda8d54c0cf0b3380fe420:lib/router-step-workflow.sh >>> [vm130-git] verify real git index has no pre-staged changes >>> [vm130-git] install validated simulated index NO_CHANGES=true GIT_COMMIT=ad4aed1d793c0d5275cbfee15c57fde1e05ca541 REMOTE_COMMIT=ad4aed1d793c0d5275cbfee15c57fde1e05ca541 RESULT=PASS_VM130_GIT_NOTHING_TO_PUBLISH MACHINE_ID=vm130 COMMIT_CREATED=false PUSH_PERFORMED=false VM130_LOCAL_PUBLISHER_RC=0 >>> [vm130-source] clone or refresh exact VM130 mirror checkout CURRENT_ORIGIN=https://github.com/DChuvelev/wg-paid-vm130.git From https://github.com/DChuvelev/wg-paid-vm130 * branch main -> FETCH_HEAD ed89f51..ad4aed1 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 ad4aed1 vm130: harden canonical source publication classification VM130_COMMIT=ad4aed1d793c0d5275cbfee15c57fde1e05ca541 VM130_TREE=dc872893235cd0bcdecda8d54c0cf0b3380fe420 VM130_FILE_COUNT=80 VM130_STATUS=CLEAN REQUIRED_PATH_OK=etc/router-machine-git-source.conf REQUIRED_PATH_OK=bin/router-machine-git-publish REQUIRED_PATH_OK=bin/router-vm130-git-publish REQUIRED_PATH_OK=bin/router-vm130-git-source-publish >>> [vm130-source] create complete archive and metadata from exact Git commit >>> [vm130-source] publish atomically into canonical latest vm130-source PUBLISHED_DIR=/opt/router-ops/public/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/latest/20260821-075404_vm130_git_source_ad4aed1d793c PUBLISHED_RELATIVE_PATH=latest/20260821-075404_vm130_git_source_ad4aed1d793c PUBLIC_OBJECT_KIND=vm130-source PREVIOUS_MOVED_COUNT=1 COLLISION_DEDUPLICATED_COUNT=0 PUBLICATION_REUSED=false PUBLICATION_TRANSACTION_ID=20260821-075404_1099982_4762 PUBLICATION_COMMITTED=true LOCAL_POSTCHECK=PASS LATEST_INDEX_CONTAINS_FOLDER=true LOCAL_INDEX=http://192.168.30.84:8099/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/latest/20260821-075404_vm130_git_source_ad4aed1d793c/ 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/20260821-075404_vm130_git_source_ad4aed1d793c/ VM130_SOURCE_URL=https://reports.secret-studio.ru/latest/20260821-075404_vm130_git_source_ad4aed1d793c/ TRYCF_INDEX=https://receiver-rejected-average-combat.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/latest/ TRYCF_REPORT=https://receiver-rejected-average-combat.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/latest/20260821-075404_vm130_git_source_ad4aed1d793c/ RESULT=PASS_ROUTER_PUBLISH_REPORT ATTEMPT=1 HTTP_RC=0 HTTP_CODE=200 BODY_SHA256=e73014bb410aaff319c0abee1b0db34e5b285f3ae2af5c71ea9acacef34f139c RESULT=PASS_ROUTER_HTTP_VERIFY HTTP_POSTCHECK=PASS HTTP_URL=https://reports.secret-studio.ru/latest/20260821-075404_vm130_git_source_ad4aed1d793c/ HTTP_CODE=200 HTTP_ATTEMPTS=1 HTTP_SHA256=e73014bb410aaff319c0abee1b0db34e5b285f3ae2af5c71ea9acacef34f139c HTTP_OUTPUT=/tmp/vm130-git-source-publish.AiTiN6/http-index.html ATTEMPT=1 HTTP_RC=0 HTTP_CODE=200 BODY_SHA256=c8a5e686b7d891a88b8a03c8d828ae05cd43b0030e48d772e1c552b29b12981e RESULT=PASS_ROUTER_HTTP_VERIFY HTTP_POSTCHECK=PASS HTTP_URL=https://reports.secret-studio.ru/latest/20260821-075404_vm130_git_source_ad4aed1d793c/wg-paid-vm130-ad4aed1d793c.tar.gz HTTP_CODE=200 HTTP_ATTEMPTS=1 HTTP_SHA256=c8a5e686b7d891a88b8a03c8d828ae05cd43b0030e48d772e1c552b29b12981e HTTP_OUTPUT=/tmp/vm130-git-source-publish.AiTiN6/http-archive.tar.gz ATTEMPT=1 HTTP_RC=0 HTTP_CODE=200 BODY_SHA256=843423aa9074f0a2aa9872995d9e618238b40c43675d1d8068cd65178c7f7655 RESULT=PASS_ROUTER_HTTP_VERIFY HTTP_POSTCHECK=PASS HTTP_URL=https://reports.secret-studio.ru/latest/20260821-075404_vm130_git_source_ad4aed1d793c/facts.json HTTP_CODE=200 HTTP_ATTEMPTS=1 HTTP_SHA256=843423aa9074f0a2aa9872995d9e618238b40c43675d1d8068cd65178c7f7655 HTTP_OUTPUT=/tmp/vm130-git-source-publish.AiTiN6/http-facts.json ATTEMPT=1 HTTP_RC=0 HTTP_CODE=200 BODY_SHA256=1179fe02d0dc410000723773421f405320ba9eb7baff50fc70fae3fa10fb6bd5 RESULT=PASS_ROUTER_HTTP_VERIFY HTTP_POSTCHECK=PASS HTTP_URL=https://reports.secret-studio.ru/latest/20260821-075404_vm130_git_source_ad4aed1d793c/git-tree-manifest.txt HTTP_CODE=200 HTTP_ATTEMPTS=1 HTTP_SHA256=1179fe02d0dc410000723773421f405320ba9eb7baff50fc70fae3fa10fb6bd5 HTTP_OUTPUT=/tmp/vm130-git-source-publish.AiTiN6/http-manifest.txt RESULT=PASS_VM130_VM130_GIT_SOURCE_PUBLISH VM130_GIT_SOURCE_COMMIT=ad4aed1d793c0d5275cbfee15c57fde1e05ca541 VM130_GIT_SOURCE_TREE=dc872893235cd0bcdecda8d54c0cf0b3380fe420 VM130_GIT_SOURCE_FILE_COUNT=80 VM130_GIT_SOURCE_URL=https://reports.secret-studio.ru/latest/20260821-075404_vm130_git_source_ad4aed1d793c/ VM130_GIT_SOURCE_ARCHIVE_URL=https://reports.secret-studio.ru/latest/20260821-075404_vm130_git_source_ad4aed1d793c/wg-paid-vm130-ad4aed1d793c.tar.gz VM130_GIT_SOURCE_ARCHIVE_B64_URL=https://reports.secret-studio.ru/latest/20260821-075404_vm130_git_source_ad4aed1d793c/wg-paid-vm130-ad4aed1d793c.tar.gz.b64.txt VM130_GIT_SOURCE_FACTS_URL=https://reports.secret-studio.ru/latest/20260821-075404_vm130_git_source_ad4aed1d793c/facts.json VM130_GIT_SOURCE_MANIFEST_URL=https://reports.secret-studio.ru/latest/20260821-075404_vm130_git_source_ad4aed1d793c/git-tree-manifest.txt VM130_GIT_SOURCE_ARCHIVE_SHA256=c8a5e686b7d891a88b8a03c8d828ae05cd43b0030e48d772e1c552b29b12981e VM130_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=vm130 DESCRIPTION=VM130 GitHub-backed source publication after classification repair COMMIT=ad4aed1d793c0d5275cbfee15c57fde1e05ca541 TREE=dc872893235cd0bcdecda8d54c0cf0b3380fe420 GIT_FILE_COUNT=80 SOURCE_PUBLISH_BACKEND=/opt/router-ops/bin/router-vm130-git-source-publish BACKEND_LOG=/opt/router-ops/state/machine-close-runs/20260821-075401_vm130_1099652/backend.txt BACKEND_RC=0 BACKEND_RC_NONZERO_SALVAGED=false CLASSIFICATION=PASS_AUTHORITATIVE_BACKEND_AND_PUBLICATION VM130_PUBLIC_URL=https://reports.secret-studio.ru/latest/20260821-075404_vm130_git_source_ad4aed1d793c/