From bb163d1fb147242862c90b642d9725b6924176ba Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Wed, 23 Sep 2026 11:44:09 +0000 Subject: [PATCH] runtime: publish SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1 --- ...3-SKLADCHIK-INITIAL-CHECK-EXACT-938R1.json | 38 ++ ...23-SKLADCHIK-INITIAL-CHECK-EXACT-938R1.txt | 136 ++++ runtime/latest.json | 16 +- runtime/latest.txt | 592 +++--------------- 4 files changed, 266 insertions(+), 516 deletions(-) create mode 100644 runtime/history/SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1.json create mode 100644 runtime/history/SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1.txt diff --git a/runtime/history/SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1.json b/runtime/history/SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1.json new file mode 100644 index 00000000..84323a5b --- /dev/null +++ b/runtime/history/SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "read-only", + "component": "skladchik-initial-check-exact", + "started_at_utc": "2026-09-23T11:44:08Z", + "finished_at_utc": "2026-09-23T11:44:08Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "f1424b1b27d05093234d6eaf8e39f0a668df672228a8274c26beb5cfcfc566ad", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": false, + "result_contract_valid": true, + "result_contract_status": null, + "result_contract_error": null, + "command_rc": 0, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "ef5ac06efdc32be639821d9ab748ee9c36ef6ceb7634456c3773cea788e8c13f", + "sanitized_output_sha256": "fb6ad90461588b59a7587bc56c656335d449506c7bd36920b0c1376ac75052bb", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "SKLADCHIK938_BEGIN=true\nCOMMAND_ID=SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1\nMODE=read-only\nCOMPONENT=skladchik-initial-check-exact\nPREDECESSOR_937=PASS_SKLADCHIK_937_INITIAL_STATE_RCA\nMUTATION_BOUNDARY=NONE_READ_ONLY\nTOOL_SHA256=1e2f5323abf880f3e8b17bf1f2d0a844c402a9bbf5f24159ed39aaf1d79caef0\nTOOL_LINES=247\nEXACT_SOURCE_0001_0020_BEGIN\n0001:#!/usr/bin/env bash\n0002:set -Eeuo pipefail\n0003:umask 077\n0004:export SYSTEMD_PAGER=cat PAGER=cat SYSTEMD_LESS=FRXMK SYSTEMD_COLORS=0 GIT_PAGER=cat GIT_TERMINAL_PROMPT=0\n0005:\n0006:REPO=/srv/homelab-ops\n0007:TASK_ID=skladchik-reports-monitor-controlled-reauth-v1\n0008:TASK=\"$REPO/tasks/$TASK_ID\"\n0009:EDGE=debian@[PRIVATE_IP]\n0010:SSH=(-o BatchMode=yes -o ConnectTimeout=12 -o StrictHostKeyChecking=yes -o UserKnownHostsFile=[SENSITIVE_PATH]\n0011:LOCAL_STAGE=/mnt/staging/homelab-admin-rollback/$TASK_ID\n0012:EDGE_STAGE=/var/lib/homelab-admin/rollback/$TASK_ID\n0013:SEAL=/var/lib/homelab-admin/seals/$TASK_ID.json\n0014:RUN_ROOT=/var/lib/homelab-admin/runs/$TASK_ID\n0015:TMP=\"$(mktemp -d /tmp/skladchik-cookie-refresh.XXXXXX)\"\n0016:RECOVERY_TASK=\n0017:\n0018:STAGE=INITIALIZE\n0019:FAILED_STAGE=NONE\n0020:PRODUCTION_APPLY_STARTED=0\nEXACT_SOURCE_0001_0020_END\nEXACT_SOURCE_0150_0175_BEGIN\n0150: cleanup\n0151: exit \"$rc\"\n0152:}\n0153:trap 'on_error \"$?\"' ERR\n0154:trap cleanup EXIT\n0155:\n0156:STAGE=INITIAL_STATE_CHECK\n0157:test \"$(hostname -f)\" = pve01.gram1.ru\n0158:test \"$(git -C \"$REPO\" branch --show-current)\" = main\n0159:test \"$(git -C \"$REPO\" rev-parse HEAD)\" = \"$(git -C \"$REPO\" rev-parse origin/main)\"\n0160:test -z \"$(git -C \"$REPO\" status --porcelain)\"\n0161:test -z \"$(git -C /srv/homelab-desired-state status --porcelain)\"\n0162:test \"$(git -C \"$REPO\" remote get-url --push origin)\" = DISABLED\n0163:test -d \"$TASK\"\n0164:test -s \"$TASK/task.json\"\n0165:VM160_BEFORE=\"$(vm160_fingerprint)\"\n0166:KNOWN_HOSTS_BEFORE=\"$(sha256sum [SENSITIVE_PATH] | awk 'NR==1{print $1}')\"\n0167:\n0168:TARGET_EDGE_SHA=\"$(jq -r '.source_of_truth.edge_target_sha256' \"$TASK/task.json\")\"\n0169:test \"$TARGET_EDGE_SHA\" != null\n0170:test \"${#TARGET_EDGE_SHA}\" = 64\n0171:test \"$(sha256sum \"$TASK/assets/edge/skladchik-reports-monitor-cookie-update-edge\" | awk 'NR==1{print $1}')\" = \"$TARGET_EDGE_SHA\"\n0172:test \"$(ssh \"${SSH[@]}\" \"$EDGE\" sudo -n /usr/bin/sha256sum /usr/local/sbin/skladchik-reports-monitor-cookie-update-edge | awk 'NR==1{print $1}')\" = \"$TARGET_EDGE_SHA\"\n0173:\n0174:STAGE=VALIDATE\n0175:/opt/homelab-admin/bin/homelab-admin validate \"$TASK\"\nEXACT_SOURCE_0150_0175_END\nCURRENT_FACTS_BEGIN\nHOSTNAME_F=pve01.gram1.ru\nHOSTNAME_EXPECTED=pve01.gram1.ru\nHOSTNAME_MATCH=true\nREPO_RESOLVED_PRESENT=true\nREPO_EXISTS=true\nREPO_BRANCH=main\nREPO_BRANCH_MAIN=true\nREPO_HEAD=d5e2ef5639398a762283e47143c17b494f8ed579\nREPO_PORCELAIN_COUNT=0\nTASK_ID=skladchik-reports-monitor-controlled-reauth-v1\nTASK_RESOLVED_PRESENT=true\nTASK_EXISTS=true\nTASK_META=mode=755|size=4096|mtime=1784373912|dir=true\nSEAL_RESOLVED_PRESENT=true\nSEAL_EXISTS=true\nSEAL_META=mode=600|size=469|mtime=1784371982|dir=false\nLOCAL_STAGE_RESOLVED_PRESENT=true\nLOCAL_STAGE_EXISTS=false\nTARGET_EDGE_SHA_PRESENT=false\nKNOWN_HOSTS_PARSED=true\nKNOWN_HOSTS_EXISTS=true\nKNOWN_HOSTS_SHA256=ab01de61ca5030ad158f1aef377364100531473de1e10a529089174f6890d735\nEDGE_SHA_CHECK_RC=INPUT_UNRESOLVED\nINITIAL_TEST_LINES_BEGIN\nLINE_0157=test \"$(hostname -f)\" = pve01.gram1.ru\nLINE_0158=test \"$(git -C \"$REPO\" branch --show-current)\" = main\nLINE_0159=test \"$(git -C \"$REPO\" rev-parse HEAD)\" = \"$(git -C \"$REPO\" rev-parse origin/main)\"\nLINE_0160=test -z \"$(git -C \"$REPO\" status --porcelain)\"\nLINE_0161=test -z \"$(git -C /srv/homelab-desired-state status --porcelain)\"\nLINE_0162=test \"$(git -C \"$REPO\" remote get-url --push origin)\" = DISABLED\nLINE_0163=test -d \"$TASK\"\nLINE_0164=test -s \"$TASK/task.json\"\nLINE_0165=VM160_BEFORE=\"$(vm160_fingerprint)\"\nLINE_0166=KNOWN_HOSTS_BEFORE=\"$(sha256sum [SENSITIVE_PATH] | awk 'NR==1{print $1}')\"\nLINE_0168=TARGET_EDGE_SHA=\"$(jq -r '.source_of_truth.edge_target_sha256' \"$TASK/task.json\")\"\nLINE_0169=test \"$TARGET_EDGE_SHA\" != null\nLINE_0170=test \"${#TARGET_EDGE_SHA}\" = 64\nLINE_0171=test \"$(sha256sum \"$TASK/assets/edge/skladchik-reports-monitor-cookie-update-edge\" | awk 'NR==1{print $1}')\" = \"$TARGET_EDGE_SHA\"\nLINE_0172=test \"$(ssh \"${SSH[@]}\" \"$EDGE\" sudo -n /usr/bin/sha256sum /usr/local/sbin/skladchik-reports-monitor-cookie-update-edge | awk 'NR==1{print $1}')\" = \"$TARGET_EDGE_SHA\"\nINITIAL_TEST_LINES_END\nCHANGES_MADE_BY_938=false\nROLLBACK_STARTED=false\nROLLBACK_RESTORED=null\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\nSKLADCHIK938_END=true\n" +} diff --git a/runtime/history/SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1.txt b/runtime/history/SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1.txt new file mode 100644 index 00000000..31fba652 --- /dev/null +++ b/runtime/history/SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1.txt @@ -0,0 +1,136 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1 +STATUS=OK +RC=0 +HOST=pve01 +MODE=read-only +COMPONENT=skladchik-initial-check-exact +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=f1424b1b27d05093234d6eaf8e39f0a668df672228a8274c26beb5cfcfc566ad +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=false +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=0 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=ef5ac06efdc32be639821d9ab748ee9c36ef6ceb7634456c3773cea788e8c13f +SANITIZED_OUTPUT_SHA256=fb6ad90461588b59a7587bc56c656335d449506c7bd36920b0c1376ac75052bb +OUTPUT_BEGIN +SKLADCHIK938_BEGIN=true +COMMAND_ID=SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1 +MODE=read-only +COMPONENT=skladchik-initial-check-exact +PREDECESSOR_937=PASS_SKLADCHIK_937_INITIAL_STATE_RCA +MUTATION_BOUNDARY=NONE_READ_ONLY +TOOL_SHA256=1e2f5323abf880f3e8b17bf1f2d0a844c402a9bbf5f24159ed39aaf1d79caef0 +TOOL_LINES=247 +EXACT_SOURCE_0001_0020_BEGIN +0001:#!/usr/bin/env bash +0002:set -Eeuo pipefail +0003:umask 077 +0004:export SYSTEMD_PAGER=cat PAGER=cat SYSTEMD_LESS=FRXMK SYSTEMD_COLORS=0 GIT_PAGER=cat GIT_TERMINAL_PROMPT=0 +0005: +0006:REPO=/srv/homelab-ops +0007:TASK_ID=skladchik-reports-monitor-controlled-reauth-v1 +0008:TASK="$REPO/tasks/$TASK_ID" +0009:EDGE=debian@[PRIVATE_IP] +0010:SSH=(-o BatchMode=yes -o ConnectTimeout=12 -o StrictHostKeyChecking=yes -o UserKnownHostsFile=[SENSITIVE_PATH] +0011:LOCAL_STAGE=/mnt/staging/homelab-admin-rollback/$TASK_ID +0012:EDGE_STAGE=/var/lib/homelab-admin/rollback/$TASK_ID +0013:SEAL=/var/lib/homelab-admin/seals/$TASK_ID.json +0014:RUN_ROOT=/var/lib/homelab-admin/runs/$TASK_ID +0015:TMP="$(mktemp -d /tmp/skladchik-cookie-refresh.XXXXXX)" +0016:RECOVERY_TASK= +0017: +0018:STAGE=INITIALIZE +0019:FAILED_STAGE=NONE +0020:PRODUCTION_APPLY_STARTED=0 +EXACT_SOURCE_0001_0020_END +EXACT_SOURCE_0150_0175_BEGIN +0150: cleanup +0151: exit "$rc" +0152:} +0153:trap 'on_error "$?"' ERR +0154:trap cleanup EXIT +0155: +0156:STAGE=INITIAL_STATE_CHECK +0157:test "$(hostname -f)" = pve01.gram1.ru +0158:test "$(git -C "$REPO" branch --show-current)" = main +0159:test "$(git -C "$REPO" rev-parse HEAD)" = "$(git -C "$REPO" rev-parse origin/main)" +0160:test -z "$(git -C "$REPO" status --porcelain)" +0161:test -z "$(git -C /srv/homelab-desired-state status --porcelain)" +0162:test "$(git -C "$REPO" remote get-url --push origin)" = DISABLED +0163:test -d "$TASK" +0164:test -s "$TASK/task.json" +0165:VM160_BEFORE="$(vm160_fingerprint)" +0166:KNOWN_HOSTS_BEFORE="$(sha256sum [SENSITIVE_PATH] | awk 'NR==1{print $1}')" +0167: +0168:TARGET_EDGE_SHA="$(jq -r '.source_of_truth.edge_target_sha256' "$TASK/task.json")" +0169:test "$TARGET_EDGE_SHA" != null +0170:test "${#TARGET_EDGE_SHA}" = 64 +0171:test "$(sha256sum "$TASK/assets/edge/skladchik-reports-monitor-cookie-update-edge" | awk 'NR==1{print $1}')" = "$TARGET_EDGE_SHA" +0172:test "$(ssh "${SSH[@]}" "$EDGE" sudo -n /usr/bin/sha256sum /usr/local/sbin/skladchik-reports-monitor-cookie-update-edge | awk 'NR==1{print $1}')" = "$TARGET_EDGE_SHA" +0173: +0174:STAGE=VALIDATE +0175:/opt/homelab-admin/bin/homelab-admin validate "$TASK" +EXACT_SOURCE_0150_0175_END +CURRENT_FACTS_BEGIN +HOSTNAME_F=pve01.gram1.ru +HOSTNAME_EXPECTED=pve01.gram1.ru +HOSTNAME_MATCH=true +REPO_RESOLVED_PRESENT=true +REPO_EXISTS=true +REPO_BRANCH=main +REPO_BRANCH_MAIN=true +REPO_HEAD=d5e2ef5639398a762283e47143c17b494f8ed579 +REPO_PORCELAIN_COUNT=0 +TASK_ID=skladchik-reports-monitor-controlled-reauth-v1 +TASK_RESOLVED_PRESENT=true +TASK_EXISTS=true +TASK_META=mode=755|size=4096|mtime=1784373912|dir=true +SEAL_RESOLVED_PRESENT=true +SEAL_EXISTS=true +SEAL_META=mode=600|size=469|mtime=1784371982|dir=false +LOCAL_STAGE_RESOLVED_PRESENT=true +LOCAL_STAGE_EXISTS=false +TARGET_EDGE_SHA_PRESENT=false +KNOWN_HOSTS_PARSED=true +KNOWN_HOSTS_EXISTS=true +KNOWN_HOSTS_SHA256=ab01de61ca5030ad158f1aef377364100531473de1e10a529089174f6890d735 +EDGE_SHA_CHECK_RC=INPUT_UNRESOLVED +INITIAL_TEST_LINES_BEGIN +LINE_0157=test "$(hostname -f)" = pve01.gram1.ru +LINE_0158=test "$(git -C "$REPO" branch --show-current)" = main +LINE_0159=test "$(git -C "$REPO" rev-parse HEAD)" = "$(git -C "$REPO" rev-parse origin/main)" +LINE_0160=test -z "$(git -C "$REPO" status --porcelain)" +LINE_0161=test -z "$(git -C /srv/homelab-desired-state status --porcelain)" +LINE_0162=test "$(git -C "$REPO" remote get-url --push origin)" = DISABLED +LINE_0163=test -d "$TASK" +LINE_0164=test -s "$TASK/task.json" +LINE_0165=VM160_BEFORE="$(vm160_fingerprint)" +LINE_0166=KNOWN_HOSTS_BEFORE="$(sha256sum [SENSITIVE_PATH] | awk 'NR==1{print $1}')" +LINE_0168=TARGET_EDGE_SHA="$(jq -r '.source_of_truth.edge_target_sha256' "$TASK/task.json")" +LINE_0169=test "$TARGET_EDGE_SHA" != null +LINE_0170=test "${#TARGET_EDGE_SHA}" = 64 +LINE_0171=test "$(sha256sum "$TASK/assets/edge/skladchik-reports-monitor-cookie-update-edge" | awk 'NR==1{print $1}')" = "$TARGET_EDGE_SHA" +LINE_0172=test "$(ssh "${SSH[@]}" "$EDGE" sudo -n /usr/bin/sha256sum /usr/local/sbin/skladchik-reports-monitor-cookie-update-edge | awk 'NR==1{print $1}')" = "$TARGET_EDGE_SHA" +INITIAL_TEST_LINES_END +CHANGES_MADE_BY_938=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null} +SKLADCHIK938_END=true + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 8d9bca93..84323a5b 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SUPPORT-260923-SKLADCHIK-INITIAL-STATE-RCA-DIRECT-937R1", + "command_id": "SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", - "component": "skladchik-initial-state-rca-direct", - "started_at_utc": "2026-09-23T11:37:58Z", - "finished_at_utc": "2026-09-23T11:37:58Z", + "component": "skladchik-initial-check-exact", + "started_at_utc": "2026-09-23T11:44:08Z", + "finished_at_utc": "2026-09-23T11:44:08Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "bf35331c2add5c5112a6995a42b388ec953917f5fa7335b04fc8a6158d3b2fe6", + "command_sha256": "f1424b1b27d05093234d6eaf8e39f0a668df672228a8274c26beb5cfcfc566ad", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "59f8028a5d7b32d9e550476fa69d38389818df6fbeb863aa5807f5645a5e483f", - "sanitized_output_sha256": "0672428d56b5f840af985faa9595e0fe2ec75c6b9f8d3963ab2a67fcfb3df01b", + "raw_evidence_sha256": "ef5ac06efdc32be639821d9ab748ee9c36ef6ceb7634456c3773cea788e8c13f", + "sanitized_output_sha256": "fb6ad90461588b59a7587bc56c656335d449506c7bd36920b0c1376ac75052bb", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "SKLADCHIK937_BEGIN=true\nCOMMAND_ID=SUPPORT-260923-SKLADCHIK-INITIAL-STATE-RCA-DIRECT-937R1\nMODE=read-only\nCOMPONENT=skladchik-initial-state-rca-direct\nPREDECESSOR_935=FAILED_STAGE_INITIAL_STATE_CHECK\nPREDECESSOR_936=LOCAL_404_NO_RUNNER\nMUTATION_BOUNDARY=NONE_READ_ONLY\nTOOL_PRESENT=true\nTOOL_SHA256=1e2f5323abf880f3e8b17bf1f2d0a844c402a9bbf5f24159ed39aaf1d79caef0\nTOOL_LINES=247\nSOURCE_CONTEXT_BEGIN\n0009:EDGE=debian@[PRIVATE_IP]\n0010:SSH=(-o BatchMode=yes -o ConnectTimeout=12 -o StrictHostKeyChecking=yes -o UserKnownHostsFile=[SENSITIVE_PATH]\n0011:LOCAL_STAGE=/mnt/staging/homelab-admin-rollback/$TASK_ID\n0012:EDGE_STAGE=/var/lib/homelab-admin/rollback/$TASK_ID\n0013:SEAL=/var/lib/homelab-admin/seals/$TASK_ID.json\n0014:RUN_ROOT=/var/lib/homelab-admin/runs/$TASK_ID\n0015:TMP=\"$(mktemp -d /tmp/skladchik-cookie-refresh.XXXXXX)\"\n0016:RECOVERY_TASK=\n0017:\n0018:STAGE=INITIALIZE\n0019:FAILED_STAGE=NONE\n0020:PRODUCTION_APPLY_STARTED=0\n0021:SEALED=0\n0022:ROLLBACK_ATTEMPTED=NO\n0023:ROLLBACK_RC=NOT_RUN\n0024:APPLY_RUN=unknown\n0025:BACKUP_WAIT_EVENTS=0\n0026:\n0027:printf 'SCOPE=SKLADCHIK_COOKIE_REFRESH_VALIDATE_PREFLIGHT_PREPARE_DRY_RUN_HIDDEN_COOKIE_APPLY_VERIFY_SEAL\\n'\n0028:printf 'ROLLBACK=AUTOMATIC_VERSIONED_RECOVERY_WORKFLOW_RESTORES_PREVIOUS_SECRET_COOKIE_JAR_SCRIPTS_DESIRED_STATE_TIMER_AND_SUPERVISOR_STATE_ON_FAILURE_BEFORE_SEAL\\n'\n0029:printf 'VERIFY=FRESH_COOKIE_FORCED_STALE_JAR_BYPASSED_SECOND_JAR_ONLY_PROBE_MONITOR_OK_NUMERIC_COUNTS_TARGET_EDGE_SHA_TIMERS_SUPERVISOR_SEAL_STAGE_REMOVAL_VM160_UNCHANGED_NO_CLOUD_COMMANDS\\n'\n0030:\n0031:cleanup() {\n0036:}\n0037:\n0038:active_backup_restore_count() {\n0039: systemctl list-units --type=service --state=activating,active,running --no-legend --plain 2>/dev/null |\n0040: awk 'tolower($0)~/backup|restore/ && NF{c++}END{print c+0}'\n0041:}\n0042:\n0043:wait_backup_restore_clear() {\n0044: local deadline=$((SECONDS + 1800))\n0045: local stable=0\n0046: local count=0\n0047: while (( SECONDS < deadline )); do\n0048: count=\"$(active_backup_restore_count)\"\n0049: if [[ \"$count\" -eq 0 ]]; then\n0050: stable=$((stable + 1))\n0054: sleep 1\n0055: else\n0056: BACKUP_WAIT_EVENTS=$((BACKUP_WAIT_EVENTS + 1))\n0057: stable=0\n0058: sleep 5\n0059: fi\n0060: done\n0061: printf 'BACKUP_RESTORE_GUARD_TIMEOUT count=%s\\n' \"$count\" >&2\n0062: return 75\n0063:}\n0065:run_phase() {\n0066: local phase=\"$1\"\n0067: wait_backup_restore_clear\n0068: /opt/homelab-admin/bin/homelab-admin run \"$TASK\" \"$phase\"\n0069:}\n0070:\n0071:run_apply() {\n0072: wait_backup_restore_clear\n0073: HOMELAB_CONTROLLED_APPLY_CONFIRM=\"$TASK_ID\" /opt/homelab-admin/bin/homelab-admin run \"$TASK\" apply\n0074:}\n0102: print \"git -C /srv/homelab-desired-state clean -fd -- sbin/skladchik-reports-monitor-cookie-update sbin/skladchik-reports-monitor-monthly-selftest-watch sbin/skladchik-reports-monitor-status sbin/skladchik-reports-monitor-supervisor\"\n0103: }\n0104: ' \"$RECOVERY_TASK/phases/rollback.sh\" >\"$RECOVERY_TASK/phases/rollback.sh.new\"\n0105: mv \"$RECOVERY_TASK/phases/rollback.sh.new\" \"$RECOVERY_TASK/phases/rollback.sh\"\n0106: chmod 0755 \"$RECOVERY_TASK/phases/rollback.sh\"\n0107:\n0108: test \"$(grep -Fxc 'git -C /srv/homelab-desired-state clean -fd -- sbin/skladchik-reports-monitor-cookie-update sbin/skladchik-reports-monitor-monthly-selftest-watch sbin/skladchik-reports-monitor-status sbin/skladchik-reports-monitor-supervisor' \"$RECOVERY_TASK/phases/rollback.sh\")\" = 1\n0109: bash -n \"$RECOVERY_TASK/phases/rollback.sh\"\n0110: /opt/homelab-admin/bin/homelab-admin lint \"$RECOVERY_TASK\"\n0111: /opt/homelab-admin/bin/homelab-admin validate \"$RECOVERY_TASK\"\n0115: local rc=\"$1\"\n0116: printf '\\033[1;35m%s\\n' '===== СКОПИРОВАТЬ МНЕ В ЧАТ ====='\n0117: printf 'COOKIE_REFRESH_RESULT=FAILED\\nFAILED_STAGE=%s\\nFAILED_RC=%s\\n' \"$FAILED_STAGE\" \"$rc\"\n0118: printf 'ROLLBACK_ATTEMPTED=%s\\nROLLBACK_RC=%s\\nSEALED=%s\\n' \"$ROLLBACK_ATTEMPTED\" \"$ROLLBACK_RC\" \"$SEALED\"\n0119: printf 'BACKUP_WAIT_EVENTS=%s\\nACTIVE_BACKUP_RESTORE_NOW=%s\\n' \"$BACKUP_WAIT_EVENTS\" \"$(active_backup_restore_count)\"\n0120: printf 'APPLY_RUN=%s\\nCOOKIE_VALUES_PRINTED=NO\\nVM160_CHANGED=NO\\nCLOUD_COMMANDS_EXECUTED=NO\\n' \"$APPLY_RUN\"\n0121: printf 'NEXT_PHASE=PASTE_THIS_FRAGMENT_ONLY\\n'\n0127: trap - ERR\n0128: set +e\n0129: FAILED_STAGE=\"$STAGE\"\n0130:\n0131: if [[ -s \"$SEAL\" && ! -e \"$LOCAL_STAGE\" ]]; then\n0132: if ssh \"${SSH[@]}\" \"$EDGE\" sudo -n /usr/bin/test ! -e \"$EDGE_STAGE\"; then\n0133: SEALED=1\n0134: fi\n0135: fi\n0136:\n0137: if [[ \"$SEALED\" -eq 0 && -d \"$LOCAL_STAGE\" ]]; then\n0138: STAGE=AUTOMATIC_RECOVERY\n0139: ROLLBACK_ATTEMPTED=YES\n0140: build_recovery_task\n0141: if wait_backup_restore_clear; then\n0142: HOMELAB_CONTROLLED_APPLY_CONFIRM=\"$TASK_ID\" /opt/homelab-admin/bin/homelab-admin run \"$RECOVERY_TASK\" rollback\n0143: ROLLBACK_RC=$?\n0144: else\n0145: ROLLBACK_RC=75\n0146: fi\n0147: fi\n0154:trap cleanup EXIT\n0155:\n0156:STAGE=INITIAL_STATE_CHECK\n0157:test \"$(hostname -f)\" = pve01.gram1.ru\n0158:test \"$(git -C \"$REPO\" branch --show-current)\" = main\n0172:test \"$(ssh \"${SSH[@]}\" \"$EDGE\" sudo -n /usr/bin/sha256sum /usr/local/sbin/skladchik-reports-monitor-cookie-update-edge | awk 'NR==1{print $1}')\" = \"$TARGET_EDGE_SHA\"\n0173:\n0174:STAGE=VALIDATE\n0175:/opt/homelab-admin/bin/homelab-admin validate \"$TASK\"\n0176:\n0177:STAGE=PREFLIGHT\n0178:run_phase preflight\n0179:\n0180:STAGE=PREPARE\n0181:run_phase prepare\n0182:\n0183:STAGE=DRY_RUN\n0184:run_phase dry-run\n0185:\n0186:STAGE=INTERACTIVE_APPLY\n0187:printf '\\n\\033[1;33mВСТАВЬ ПОЛНЫЙ COOKIE ИЗ REQUEST HEADERS ЗАПРОСА К https://az52.skladchik.org/reports/ БЕЗ СЛОВА Cookie: И НАЖМИ ENTER. ВВОД СКРЫТ.\\033[0m\\n\\n'\n0188:PRODUCTION_APPLY_STARTED=1\n0195:grep -Fq 'SECOND_JAR_ONLY_PERSISTENCE_RUN=OK' \"$APPLY_RUN/stdout.log\"\n0196:\n0197:STAGE=VERIFY\n0198:run_phase verify\n0199:\n0200:STAGE=SEAL\n0201:run_phase seal\n0202:SEALED=1\n0203:\n0204:STAGE=FINAL_INDEPENDENT_VERIFY\n0205:test -s \"$SEAL\"\n0206:test ! -e \"$LOCAL_STAGE\"\n0207:ssh \"${SSH[@]}\" \"$EDGE\" sudo -n /usr/bin/test ! -e \"$EDGE_STAGE\"\n0208:test \"$(sha256sum [SENSITIVE_PATH] | awk 'NR==1{print $1}')\" = \"$KNOWN_HOSTS_BEFORE\"\n0209:test \"$(ssh \"${SSH[@]}\" \"$EDGE\" sudo -n /usr/bin/sha256sum /usr/local/sbin/skladchik-reports-monitor-cookie-update-edge | awk 'NR==1{print $1}')\" = \"$TARGET_EDGE_SHA\"\n0235:test \"$(vm160_fingerprint)\" = \"$VM160_BEFORE\"\n0236:\n0237:STAGE=SUCCESS\n0238:printf '\\033[1;35m%s\\n' '===== СКОПИРОВАТЬ МНЕ В ЧАТ ====='\n0239:printf 'COOKIE_REFRESH_RESULT=SUCCESS\\nTASK_ID=%s\\n' \"$TASK_ID\"\n0242:printf 'SESSION_KEEPALIVE=%s\\nCOOKIE_JAR=%s\\nEDGE_SCRIPT_SHA256=%s\\n' \"$SESSION_KEEPALIVE\" \"$COOKIE_JAR\" \"$TARGET_EDGE_SHA\"\n0243:printf 'EDGE_TIMER_ENABLED=YES\\nEDGE_TIMER_ACTIVE=YES\\nSUPERVISOR_TIMER_ENABLED=YES\\nSUPERVISOR_TIMER_ACTIVE=YES\\n'\n0244:printf 'SEAL_PRESENT=YES\\nROLLBACK_STAGES_REMOVED=YES\\nDESIRED_STATE_CLEAN=YES\\nKNOWN_HOSTS_CHANGED=NO\\n'\n0245:printf 'BACKUP_WAIT_EVENTS=%s\\nCOOKIE_VALUES_PRINTED=NO\\nVM160_CHANGED=NO\\nCLOUD_COMMANDS_EXECUTED=NO\\n'\n0246:printf 'NEXT_REFRESH_COMMAND=/srv/homelab-ops/tools/skladchik-cookie-refresh\\n'\n0247:printf '%s\\033[0m\\n' '===== КОНЕЦ ФРАГМЕНТА ====='\nSOURCE_CONTEXT_END\nSTATE_OBJECTS_BEGIN\nOBJ|file=true|size=64|mtime=1786578911|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235443Z-1365154-dry-run/stdout.log\nOBJ|file=false|size=4096|mtime=1786578911|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235443Z-1365154-dry-run\nOBJ|file=true|size=610|mtime=1786578911|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235443Z-1365154-dry-run/result.json\nOBJ|file=true|size=8118|mtime=1786578974|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235614Z-1377744-preflight/task.json\nOBJ|file=true|size=0|mtime=1786578974|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235614Z-1377744-preflight/stderr.log\nOBJ|file=true|size=195|mtime=1786578987|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235614Z-1377744-preflight/preflight.json\nOBJ|file=true|size=72|mtime=1786578987|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235614Z-1377744-preflight/stdout.log\nOBJ|file=false|size=4096|mtime=1786578987|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235614Z-1377744-preflight\nOBJ|file=true|size=618|mtime=1786578987|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235614Z-1377744-preflight/result.json\nOBJ|file=true|size=8118|mtime=1786578988|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235628Z-1378111-prepare/task.json\nOBJ|file=true|size=0|mtime=1786578988|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235628Z-1378111-prepare/stderr.log\nOBJ|file=true|size=103|mtime=1786579001|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235628Z-1378111-prepare/prepare.json\nOBJ|file=true|size=59|mtime=1786579001|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235628Z-1378111-prepare/stdout.log\nOBJ|file=false|size=4096|mtime=1786579001|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235628Z-1378111-prepare\nOBJ|file=true|size=610|mtime=1786579001|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235628Z-1378111-prepare/result.json\nOBJ|file=true|size=8118|mtime=1786579002|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235642Z-1378356-dry-run/task.json\nOBJ|file=true|size=0|mtime=1786579002|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235642Z-1378356-dry-run/stderr.log\nOBJ|file=true|size=192|mtime=1786579029|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235642Z-1378356-dry-run/dry-run.json\nOBJ|file=true|size=64|mtime=1786579029|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235642Z-1378356-dry-run/stdout.log\nOBJ|file=false|size=4096|mtime=1786579029|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235642Z-1378356-dry-run\nOBJ|file=true|size=610|mtime=1786579029|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235642Z-1378356-dry-run/result.json\nOBJ|file=true|size=8118|mtime=1786579099|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235819Z-1379947-preflight/task.json\nOBJ|file=true|size=0|mtime=1786579099|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235819Z-1379947-preflight/stderr.log\nOBJ|file=true|size=195|mtime=1786579113|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235819Z-1379947-preflight/preflight.json\nOBJ|file=true|size=72|mtime=1786579113|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235819Z-1379947-preflight/stdout.log\nOBJ|file=false|size=4096|mtime=1786579113|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235819Z-1379947-preflight\nOBJ|file=true|size=618|mtime=1786579113|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235819Z-1379947-preflight/result.json\nOBJ|file=true|size=8118|mtime=1786579113|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235833Z-1380290-prepare/task.json\nOBJ|file=true|size=0|mtime=1786579113|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235833Z-1380290-prepare/stderr.log\nOBJ|file=true|size=103|mtime=1786579127|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235833Z-1380290-prepare/prepare.json\nOBJ|file=true|size=59|mtime=1786579127|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235833Z-1380290-prepare/stdout.log\nOBJ|file=false|size=4096|mtime=1786579127|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235833Z-1380290-prepare\nOBJ|file=true|size=610|mtime=1786579127|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235833Z-1380290-prepare/result.json\nOBJ|file=true|size=0|mtime=1786579127|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235847Z-1380510-dry-run/stderr.log\nOBJ|file=true|size=8118|mtime=1786579127|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235847Z-1380510-dry-run/task.json\nOBJ|file=true|size=192|mtime=1786579155|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235847Z-1380510-dry-run/dry-run.json\nOBJ|file=true|size=64|mtime=1786579155|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235847Z-1380510-dry-run/stdout.log\nOBJ|file=false|size=4096|mtime=1786579155|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235847Z-1380510-dry-run\nOBJ|file=true|size=610|mtime=1786579155|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235847Z-1380510-dry-run/result.json\nOBJ|file=true|size=8118|mtime=1786579211|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000011Z-1381691-apply/task.json\nOBJ|file=true|size=91|mtime=1786579241|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000011Z-1381691-apply/stderr.log\nOBJ|file=true|size=622|mtime=1786579265|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000011Z-1381691-apply/apply.json\nOBJ|file=true|size=97|mtime=1786579265|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000011Z-1381691-apply/stdout.log\nOBJ|file=false|size=4096|mtime=1786579265|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000011Z-1381691-apply\nOBJ|file=true|size=602|mtime=1786579265|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000011Z-1381691-apply/result.json\nOBJ|file=true|size=8118|mtime=1786579770|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000930Z-1418323-verify/task.json\nOBJ|file=true|size=0|mtime=1786579770|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000930Z-1418323-verify/stderr.log\nOBJ|file=true|size=64|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000930Z-1418323-verify/stdout.log\nOBJ|file=true|size=670|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000930Z-1418323-verify/verify.json\nOBJ|file=false|size=4096|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000930Z-1418323-verify\nOBJ|file=true|size=606|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000930Z-1418323-verify/result.json\nOBJ|file=true|size=0|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T001000Z-1418769-seal/stdout.log\nOBJ|file=true|size=8118|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T001000Z-1418769-seal/task.json\nOBJ|file=true|size=867|mtime=1786579800|path=/var/lib/homelab-admin/seals/skladchik-moderator-v2-ru-dark-competitor-retirement-v1.json\nOBJ|file=true|size=140|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T001000Z-1418769-seal/stderr.log\nOBJ|file=false|size=4096|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T001000Z-1418769-seal\nOBJ|file=true|size=602|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T001000Z-1418769-seal/result.json\nOBJ|file=true|size=8118|mtime=1786580402|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002002Z-1456883-verify/task.json\nOBJ|file=true|size=0|mtime=1786580402|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002002Z-1456883-verify/stderr.log\nOBJ|file=true|size=670|mtime=1786580432|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002002Z-1456883-verify/verify.json\nOBJ|file=true|size=64|mtime=1786580432|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002002Z-1456883-verify/stdout.log\nOBJ|file=false|size=4096|mtime=1786580432|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002002Z-1456883-verify\nOBJ|file=true|size=606|mtime=1786580432|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002002Z-1456883-verify/result.json\nOBJ|file=true|size=8118|mtime=1786580432|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002032Z-1457381-seal/task.json\nOBJ|file=true|size=0|mtime=1786580432|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002032Z-1457381-seal/stderr.log\nOBJ|file=true|size=166|mtime=1786580433|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002032Z-1457381-seal/seal.json\nOBJ|file=true|size=111|mtime=1786580433|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002032Z-1457381-seal/stdout.log\nOBJ|file=false|size=4096|mtime=1786580433|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002032Z-1457381-seal\nOBJ|file=true|size=598|mtime=1786580433|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002032Z-1457381-seal/result.json\nOBJ|file=true|size=8118|mtime=1786580611|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002331Z-1471437-verify/task.json\nOBJ|file=true|size=0|mtime=1786580611|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002331Z-1471437-verify/stderr.log\nOBJ|file=true|size=64|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002331Z-1471437-verify/stdout.log\nOBJ|file=true|size=670|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002331Z-1471437-verify/verify.json\nOBJ|file=false|size=4096|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002331Z-1471437-verify\nOBJ|file=true|size=606|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002331Z-1471437-verify/result.json\nOBJ|file=false|size=4096|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1\nOBJ|file=true|size=8118|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/task.json\nOBJ|file=true|size=0|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/stderr.log\nOBJ|file=true|size=166|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/seal.json\nOBJ|file=true|size=111|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/stdout.log\nOBJ|file=false|size=4096|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal\nOBJ|file=true|size=598|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/result.json\nOBJ|file=true|size=8047|mtime=1786729312|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/task.json\nOBJ|file=true|size=0|mtime=1786729312|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/stderr.log\nOBJ|file=true|size=452|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/preflight.json\nOBJ|file=true|size=411|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/stdout.log\nOBJ|file=false|size=4096|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight\nOBJ|file=true|size=615|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/result.json\nOBJ|file=true|size=8047|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/task.json\nOBJ|file=true|size=0|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/stderr.log\nOBJ|file=true|size=287|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/prepare.json\nOBJ|file=true|size=711|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/stdout.log\nOBJ|file=false|size=4096|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare\nOBJ|file=true|size=607|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/result.json\nOBJ|file=true|size=8047|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/task.json\nOBJ|file=true|size=0|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/stderr.log\nOBJ|file=true|size=316|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/dry-run.json\nOBJ|file=true|size=466|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/stdout.log\nOBJ|file=false|size=4096|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run\nOBJ|file=true|size=607|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/result.json\nOBJ|file=true|size=0|mtime=1786729896|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/stderr.log\nOBJ|file=true|size=8047|mtime=1786729896|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/task.json\nOBJ|file=true|size=405|mtime=1786729898|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/apply.json\nOBJ|file=true|size=725|mtime=1786729898|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/stdout.log\nOBJ|file=false|size=4096|mtime=1786729898|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply\nOBJ|file=true|size=599|mtime=1786729898|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/result.json\nOBJ|file=true|size=8047|mtime=1786729979|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/task.json\nOBJ|file=true|size=0|mtime=1786729979|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/stderr.log\nOBJ|file=true|size=522|mtime=1786729979|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/stdout.log\nOBJ|file=true|size=391|mtime=1786729979|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/verify.json\nOBJ|file=false|size=4096|mtime=1786729979|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify\nOBJ|file=true|size=603|mtime=1786729979|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/result.json\nOBJ|file=false|size=4096|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1\nOBJ|file=true|size=8047|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/task.json\nOBJ|file=true|size=0|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/stderr.log\nOBJ|file=true|size=829|mtime=1786729980|path=/var/lib/homelab-admin/seals/skladchik-reports-monitor-cookie-persistence-hotfix-v1.json\nOBJ|file=true|size=386|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/seal.json\nOBJ|file=true|size=663|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/stdout.log\nOBJ|file=false|size=4096|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal\nOBJ|file=true|size=595|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/result.json\nSTATE_OBJECTS_END\nSAFE_STATE_CONTENT_BEGIN\nFILE=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/result.json\n \"run_id\": \"20260813T002401Z-1471844-seal\",\n \"task_id\": \"skladchik-moderator-v2-ru-dark-competitor-retirement-v1\",\n \"status\": \"OK\",\n \"stdout\": \"/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/stdout.log\",\n \"stderr\": \"/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/stderr.log\"\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/task.json\n \"active_backup_restore_max\": 0\n \"$HOMELAB_RUN_DIR/preflight.json\",\n \"$HOMELAB_RUN_DIR/prepare.json\",\n \"$HOMELAB_RUN_DIR/dry-run.json\",\n \"$HOMELAB_RUN_DIR/apply.json\",\n \"$HOMELAB_RUN_DIR/verify.json\",\n \"$HOMELAB_RUN_DIR/rollback.json\",\n \"$HOMELAB_RUN_DIR/seal.json\"\n \"path\": \"$HOMELAB_RUN_DIR/preflight.json\",\n \"verification\": \"CR0072 is sealed; exact live monitor, service, timer and residue drop-in preimages are pinned; monthly reauth asset is unchanged.\"\n \"path\": \"$HOMELAB_RUN_DIR/prepare.json\",\n \"path\": \"$HOMELAB_RUN_DIR/dry-run.json\",\n \"producer\": \"phases/dry-run.sh\",\n \"path\": \"$HOMELAB_RUN_DIR/apply.json\",\n \"path\": \"$HOMELAB_RUN_DIR/verify.json\",\n \"path\": \"$HOMELAB_RUN_DIR/rollback.json\",\n \"path\": \"$HOMELAB_RUN_DIR/seal.json\",\n \"verification\": \"canonical seal is atomically created or exact-existing seal is validated/reused; edge rollback snapshot cleanup is idempotent.\"\n \"runtime_matrix\": [\n \"runtime\": \"bash,jq,git,systemd,ssh,scp,python3,gzip\",\n \"runtime\": \"bash,python3,systemd,sha256sum,awk\",\n \"rollback_refuses_sealed\": true,\n \"dry-run\": \"phases/dry-run.sh\",\n \"assets/edge-dry-run.sh\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/preflight.json\n \"status\": \"OK\",\n \"cr0072_sealed\": true,\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/stdout.log\n EDGE_PREFLIGHT_STATUS=OK\n PREFLIGHT_STATUS=OK\n CR0072_SEALED=YES\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/result.json\n \"run_id\": \"20260814T174152Z-1957071-preflight\",\n \"status\": \"OK\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/task.json\n \"active_backup_restore_max\": 0\n \"$HOMELAB_RUN_DIR/preflight.json\",\n \"$HOMELAB_RUN_DIR/prepare.json\",\n \"$HOMELAB_RUN_DIR/dry-run.json\",\n \"$HOMELAB_RUN_DIR/apply.json\",\n \"$HOMELAB_RUN_DIR/verify.json\",\n \"$HOMELAB_RUN_DIR/rollback.json\",\n \"$HOMELAB_RUN_DIR/seal.json\"\n \"path\": \"$HOMELAB_RUN_DIR/preflight.json\",\n \"verification\": \"CR0072 is sealed; exact live monitor, service, timer and residue drop-in preimages are pinned; monthly reauth asset is unchanged.\"\n \"path\": \"$HOMELAB_RUN_DIR/prepare.json\",\n \"path\": \"$HOMELAB_RUN_DIR/dry-run.json\",\n \"producer\": \"phases/dry-run.sh\",\n \"path\": \"$HOMELAB_RUN_DIR/apply.json\",\n \"path\": \"$HOMELAB_RUN_DIR/verify.json\",\n \"path\": \"$HOMELAB_RUN_DIR/rollback.json\",\n \"path\": \"$HOMELAB_RUN_DIR/seal.json\",\n \"verification\": \"canonical seal is atomically created or exact-existing seal is validated/reused; edge rollback snapshot cleanup is idempotent.\"\n \"runtime_matrix\": [\n \"runtime\": \"bash,jq,git,systemd,ssh,scp,python3,gzip\",\n \"runtime\": \"bash,python3,systemd,sha256sum,awk\",\n \"rollback_refuses_sealed\": true,\n \"dry-run\": \"phases/dry-run.sh\",\n \"assets/edge-dry-run.sh\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/prepare.json\n \"status\": \"OK\",\n \"rollback_stage_reused\": false,\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/stdout.log\n .task-id: OK\n .task-id: OK\n EDGE_PREPARE_STATUS=OK\n ROLLBACK_STAGE_REUSED=NO\n PREPARE_STATUS=OK\n ROLLBACK_STAGE_REUSED=NO\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/result.json\n \"run_id\": \"20260814T174153Z-1957183-prepare\",\n \"status\": \"OK\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/task.json\n \"active_backup_restore_max\": 0\n \"$HOMELAB_RUN_DIR/preflight.json\",\n \"$HOMELAB_RUN_DIR/prepare.json\",\n \"$HOMELAB_RUN_DIR/dry-run.json\",\n \"$HOMELAB_RUN_DIR/apply.json\",\n \"$HOMELAB_RUN_DIR/verify.json\",\n \"$HOMELAB_RUN_DIR/rollback.json\",\n \"$HOMELAB_RUN_DIR/seal.json\"\n \"path\": \"$HOMELAB_RUN_DIR/preflight.json\",\n \"verification\": \"CR0072 is sealed; exact live monitor, service, timer and residue drop-in preimages are pinned; monthly reauth asset is unchanged.\"\n \"path\": \"$HOMELAB_RUN_DIR/prepare.json\",\n \"path\": \"$HOMELAB_RUN_DIR/dry-run.json\",\n \"producer\": \"phases/dry-run.sh\",\n \"path\": \"$HOMELAB_RUN_DIR/apply.json\",\n \"path\": \"$HOMELAB_RUN_DIR/verify.json\",\n \"path\": \"$HOMELAB_RUN_DIR/rollback.json\",\n \"path\": \"$HOMELAB_RUN_DIR/seal.json\",\n \"verification\": \"canonical seal is atomically created or exact-existing seal is validated/reused; edge rollback snapshot cleanup is idempotent.\"\n \"runtime_matrix\": [\n \"runtime\": \"bash,jq,git,systemd,ssh,scp,python3,gzip\",\n \"runtime\": \"bash,python3,systemd,sha256sum,awk\",\n \"rollback_refuses_sealed\": true,\n \"dry-run\": \"phases/dry-run.sh\",\n \"assets/edge-dry-run.sh\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/dry-run.json\n \"status\": \"OK\",\n \"dry_run_pyc_created\": false,\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/stdout.log\n .task-id: OK\n EDGE_DRY_RUN_STATUS=OK\n DRY_RUN_STATUS=OK\n DRY_RUN_PYC_CREATED=NO\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/result.json\n \"run_id\": \"20260814T174153Z-1957291-dry-run\",\n \"phase\": \"dry-run\",\n \"status\": \"OK\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/task.json\n \"active_backup_restore_max\": 0\n \"$HOMELAB_RUN_DIR/preflight.json\",\n \"$HOMELAB_RUN_DIR/prepare.json\",\n \"$HOMELAB_RUN_DIR/dry-run.json\",\n \"$HOMELAB_RUN_DIR/apply.json\",\n \"$HOMELAB_RUN_DIR/verify.json\",\n \"$HOMELAB_RUN_DIR/rollback.json\",\n \"$HOMELAB_RUN_DIR/seal.json\"\n \"path\": \"$HOMELAB_RUN_DIR/preflight.json\",\n \"verification\": \"CR0072 is sealed; exact live monitor, service, timer and residue drop-in preimages are pinned; monthly reauth asset is unchanged.\"\n \"path\": \"$HOMELAB_RUN_DIR/prepare.json\",\n \"path\": \"$HOMELAB_RUN_DIR/dry-run.json\",\n \"producer\": \"phases/dry-run.sh\",\n \"path\": \"$HOMELAB_RUN_DIR/apply.json\",\n \"path\": \"$HOMELAB_RUN_DIR/verify.json\",\n \"path\": \"$HOMELAB_RUN_DIR/rollback.json\",\n \"path\": \"$HOMELAB_RUN_DIR/seal.json\",\n \"verification\": \"canonical seal is atomically created or exact-existing seal is validated/reused; edge rollback snapshot cleanup is idempotent.\"\n \"runtime_matrix\": [\n \"runtime\": \"bash,jq,git,systemd,ssh,scp,python3,gzip\",\n \"runtime\": \"bash,python3,systemd,sha256sum,awk\",\n \"rollback_refuses_sealed\": true,\n \"dry-run\": \"phases/dry-run.sh\",\n \"assets/edge-dry-run.sh\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/apply.json\n \"status\": \"OK\",\n \"probe_status\": \"OK\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/stdout.log\n .task-id: OK\n EDGE_APPLY_STATUS=OK\n PROBE_STATUS=OK\n APPLY_STATUS=OK\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/result.json\n \"run_id\": \"20260814T175136Z-1996598-apply\",\n \"status\": \"OK\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/task.json\n \"active_backup_restore_max\": 0\n \"$HOMELAB_RUN_DIR/preflight.json\",\n \"$HOMELAB_RUN_DIR/prepare.json\",\n \"$HOMELAB_RUN_DIR/dry-run.json\",\n \"$HOMELAB_RUN_DIR/apply.json\",\n \"$HOMELAB_RUN_DIR/verify.json\",\n \"$HOMELAB_RUN_DIR/rollback.json\",\n \"$HOMELAB_RUN_DIR/seal.json\"\n \"path\": \"$HOMELAB_RUN_DIR/preflight.json\",\n \"verification\": \"CR0072 is sealed; exact live monitor, service, timer and residue drop-in preimages are pinned; monthly reauth asset is unchanged.\"\n \"path\": \"$HOMELAB_RUN_DIR/prepare.json\",\n \"path\": \"$HOMELAB_RUN_DIR/dry-run.json\",\n \"producer\": \"phases/dry-run.sh\",\n \"path\": \"$HOMELAB_RUN_DIR/apply.json\",\n \"path\": \"$HOMELAB_RUN_DIR/verify.json\",\n \"path\": \"$HOMELAB_RUN_DIR/rollback.json\",\n \"path\": \"$HOMELAB_RUN_DIR/seal.json\",\n \"verification\": \"canonical seal is atomically created or exact-existing seal is validated/reused; edge rollback snapshot cleanup is idempotent.\"\n \"runtime_matrix\": [\n \"runtime\": \"bash,jq,git,systemd,ssh,scp,python3,gzip\",\n \"runtime\": \"bash,python3,systemd,sha256sum,awk\",\n \"rollback_refuses_sealed\": true,\n \"dry-run\": \"phases/dry-run.sh\",\n \"assets/edge-dry-run.sh\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/stdout.log\n EDGE_VERIFY_STATUS=OK\n HEALTH_STATUS=OK\n VERIFY_STATUS=OK\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/verify.json\n \"status\": \"OK\",\n \"health_status\": \"OK\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/result.json\n \"run_id\": \"20260814T175259Z-1998069-verify\",\n \"status\": \"OK\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/task.json\n \"active_backup_restore_max\": 0\n \"$HOMELAB_RUN_DIR/preflight.json\",\n \"$HOMELAB_RUN_DIR/prepare.json\",\n \"$HOMELAB_RUN_DIR/dry-run.json\",\n \"$HOMELAB_RUN_DIR/apply.json\",\n \"$HOMELAB_RUN_DIR/verify.json\",\n \"$HOMELAB_RUN_DIR/rollback.json\",\n \"$HOMELAB_RUN_DIR/seal.json\"\n \"path\": \"$HOMELAB_RUN_DIR/preflight.json\",\n \"verification\": \"CR0072 is sealed; exact live monitor, service, timer and residue drop-in preimages are pinned; monthly reauth asset is unchanged.\"\n \"path\": \"$HOMELAB_RUN_DIR/prepare.json\",\n \"path\": \"$HOMELAB_RUN_DIR/dry-run.json\",\n \"producer\": \"phases/dry-run.sh\",\n \"path\": \"$HOMELAB_RUN_DIR/apply.json\",\n \"path\": \"$HOMELAB_RUN_DIR/verify.json\",\n \"path\": \"$HOMELAB_RUN_DIR/rollback.json\",\n \"path\": \"$HOMELAB_RUN_DIR/seal.json\",\n \"verification\": \"canonical seal is atomically created or exact-existing seal is validated/reused; edge rollback snapshot cleanup is idempotent.\"\n \"runtime_matrix\": [\n \"runtime\": \"bash,jq,git,systemd,ssh,scp,python3,gzip\",\n \"runtime\": \"bash,python3,systemd,sha256sum,awk\",\n \"rollback_refuses_sealed\": true,\n \"dry-run\": \"phases/dry-run.sh\",\n \"assets/edge-dry-run.sh\",\nFILE=/var/lib/homelab-admin/seals/skladchik-reports-monitor-cookie-persistence-hotfix-v1.json\n \"status\": \"SEALED\",\n \"sealed_at\": \"2026-08-14T17:53:00Z\",\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/seal.json\n \"status\": \"OK\",\n \"edge_rollback_stage_state\": \"YES\"\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/stdout.log\n .task-id: OK\n EDGE_SEAL_CLEANUP_STATUS=OK\n ROLLBACK_STAGE_REMOVED=YES\n EDGE_SEAL_REUSED_ABSENT_STAGE=NO\n SEAL_STATUS=OK\nFILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/result.json\n \"run_id\": \"20260814T175300Z-1998179-seal\",\n \"status\": \"OK\",\nSAFE_STATE_CONTENT_END\nUNITS_BEGIN\nUNIT=skladchik-reports-monitor-backup.service|active=inactive|enabled=not-found\nUNIT=skladchik-reports-monitor-backup-restore-check.service|active=inactive|enabled=not-found\nUNIT=skladchik-reports-monitor.timer|active=inactive|enabled=not-found\nUNIT=skladchik-reports-monitor-supervisor.timer|active=active|enabled=enabled\nUNITS_END\nHEALTH_BEGIN\nSTATUS=FAIL\nproblems=monitor_status_not_ok,cookie_expiry_warn,netbird_route_not_wt0\ncookie_expiry_status=WARN\ncookie_jar=yes\ncookie_jar_bytes=364\nmonitor_reports=\nmonitor_status=ERROR\nnetbird_route=1.1.1.1 via [PRIVATE_IP] dev eth0 src [PRIVATE_IP] uid 0\nsession_keepalive=persistent_cookie_jar\nHEALTH_END\nRCA_CAPTURE_COMPLETE=true\nCHANGES_MADE_BY_937=false\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-260923-SKLADCHIK-INITIAL-STATE-RCA-DIRECT-937R1\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\nSKLADCHIK937_END=true\n" + "output": "SKLADCHIK938_BEGIN=true\nCOMMAND_ID=SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1\nMODE=read-only\nCOMPONENT=skladchik-initial-check-exact\nPREDECESSOR_937=PASS_SKLADCHIK_937_INITIAL_STATE_RCA\nMUTATION_BOUNDARY=NONE_READ_ONLY\nTOOL_SHA256=1e2f5323abf880f3e8b17bf1f2d0a844c402a9bbf5f24159ed39aaf1d79caef0\nTOOL_LINES=247\nEXACT_SOURCE_0001_0020_BEGIN\n0001:#!/usr/bin/env bash\n0002:set -Eeuo pipefail\n0003:umask 077\n0004:export SYSTEMD_PAGER=cat PAGER=cat SYSTEMD_LESS=FRXMK SYSTEMD_COLORS=0 GIT_PAGER=cat GIT_TERMINAL_PROMPT=0\n0005:\n0006:REPO=/srv/homelab-ops\n0007:TASK_ID=skladchik-reports-monitor-controlled-reauth-v1\n0008:TASK=\"$REPO/tasks/$TASK_ID\"\n0009:EDGE=debian@[PRIVATE_IP]\n0010:SSH=(-o BatchMode=yes -o ConnectTimeout=12 -o StrictHostKeyChecking=yes -o UserKnownHostsFile=[SENSITIVE_PATH]\n0011:LOCAL_STAGE=/mnt/staging/homelab-admin-rollback/$TASK_ID\n0012:EDGE_STAGE=/var/lib/homelab-admin/rollback/$TASK_ID\n0013:SEAL=/var/lib/homelab-admin/seals/$TASK_ID.json\n0014:RUN_ROOT=/var/lib/homelab-admin/runs/$TASK_ID\n0015:TMP=\"$(mktemp -d /tmp/skladchik-cookie-refresh.XXXXXX)\"\n0016:RECOVERY_TASK=\n0017:\n0018:STAGE=INITIALIZE\n0019:FAILED_STAGE=NONE\n0020:PRODUCTION_APPLY_STARTED=0\nEXACT_SOURCE_0001_0020_END\nEXACT_SOURCE_0150_0175_BEGIN\n0150: cleanup\n0151: exit \"$rc\"\n0152:}\n0153:trap 'on_error \"$?\"' ERR\n0154:trap cleanup EXIT\n0155:\n0156:STAGE=INITIAL_STATE_CHECK\n0157:test \"$(hostname -f)\" = pve01.gram1.ru\n0158:test \"$(git -C \"$REPO\" branch --show-current)\" = main\n0159:test \"$(git -C \"$REPO\" rev-parse HEAD)\" = \"$(git -C \"$REPO\" rev-parse origin/main)\"\n0160:test -z \"$(git -C \"$REPO\" status --porcelain)\"\n0161:test -z \"$(git -C /srv/homelab-desired-state status --porcelain)\"\n0162:test \"$(git -C \"$REPO\" remote get-url --push origin)\" = DISABLED\n0163:test -d \"$TASK\"\n0164:test -s \"$TASK/task.json\"\n0165:VM160_BEFORE=\"$(vm160_fingerprint)\"\n0166:KNOWN_HOSTS_BEFORE=\"$(sha256sum [SENSITIVE_PATH] | awk 'NR==1{print $1}')\"\n0167:\n0168:TARGET_EDGE_SHA=\"$(jq -r '.source_of_truth.edge_target_sha256' \"$TASK/task.json\")\"\n0169:test \"$TARGET_EDGE_SHA\" != null\n0170:test \"${#TARGET_EDGE_SHA}\" = 64\n0171:test \"$(sha256sum \"$TASK/assets/edge/skladchik-reports-monitor-cookie-update-edge\" | awk 'NR==1{print $1}')\" = \"$TARGET_EDGE_SHA\"\n0172:test \"$(ssh \"${SSH[@]}\" \"$EDGE\" sudo -n /usr/bin/sha256sum /usr/local/sbin/skladchik-reports-monitor-cookie-update-edge | awk 'NR==1{print $1}')\" = \"$TARGET_EDGE_SHA\"\n0173:\n0174:STAGE=VALIDATE\n0175:/opt/homelab-admin/bin/homelab-admin validate \"$TASK\"\nEXACT_SOURCE_0150_0175_END\nCURRENT_FACTS_BEGIN\nHOSTNAME_F=pve01.gram1.ru\nHOSTNAME_EXPECTED=pve01.gram1.ru\nHOSTNAME_MATCH=true\nREPO_RESOLVED_PRESENT=true\nREPO_EXISTS=true\nREPO_BRANCH=main\nREPO_BRANCH_MAIN=true\nREPO_HEAD=d5e2ef5639398a762283e47143c17b494f8ed579\nREPO_PORCELAIN_COUNT=0\nTASK_ID=skladchik-reports-monitor-controlled-reauth-v1\nTASK_RESOLVED_PRESENT=true\nTASK_EXISTS=true\nTASK_META=mode=755|size=4096|mtime=1784373912|dir=true\nSEAL_RESOLVED_PRESENT=true\nSEAL_EXISTS=true\nSEAL_META=mode=600|size=469|mtime=1784371982|dir=false\nLOCAL_STAGE_RESOLVED_PRESENT=true\nLOCAL_STAGE_EXISTS=false\nTARGET_EDGE_SHA_PRESENT=false\nKNOWN_HOSTS_PARSED=true\nKNOWN_HOSTS_EXISTS=true\nKNOWN_HOSTS_SHA256=ab01de61ca5030ad158f1aef377364100531473de1e10a529089174f6890d735\nEDGE_SHA_CHECK_RC=INPUT_UNRESOLVED\nINITIAL_TEST_LINES_BEGIN\nLINE_0157=test \"$(hostname -f)\" = pve01.gram1.ru\nLINE_0158=test \"$(git -C \"$REPO\" branch --show-current)\" = main\nLINE_0159=test \"$(git -C \"$REPO\" rev-parse HEAD)\" = \"$(git -C \"$REPO\" rev-parse origin/main)\"\nLINE_0160=test -z \"$(git -C \"$REPO\" status --porcelain)\"\nLINE_0161=test -z \"$(git -C /srv/homelab-desired-state status --porcelain)\"\nLINE_0162=test \"$(git -C \"$REPO\" remote get-url --push origin)\" = DISABLED\nLINE_0163=test -d \"$TASK\"\nLINE_0164=test -s \"$TASK/task.json\"\nLINE_0165=VM160_BEFORE=\"$(vm160_fingerprint)\"\nLINE_0166=KNOWN_HOSTS_BEFORE=\"$(sha256sum [SENSITIVE_PATH] | awk 'NR==1{print $1}')\"\nLINE_0168=TARGET_EDGE_SHA=\"$(jq -r '.source_of_truth.edge_target_sha256' \"$TASK/task.json\")\"\nLINE_0169=test \"$TARGET_EDGE_SHA\" != null\nLINE_0170=test \"${#TARGET_EDGE_SHA}\" = 64\nLINE_0171=test \"$(sha256sum \"$TASK/assets/edge/skladchik-reports-monitor-cookie-update-edge\" | awk 'NR==1{print $1}')\" = \"$TARGET_EDGE_SHA\"\nLINE_0172=test \"$(ssh \"${SSH[@]}\" \"$EDGE\" sudo -n /usr/bin/sha256sum /usr/local/sbin/skladchik-reports-monitor-cookie-update-edge | awk 'NR==1{print $1}')\" = \"$TARGET_EDGE_SHA\"\nINITIAL_TEST_LINES_END\nCHANGES_MADE_BY_938=false\nROLLBACK_STARTED=false\nROLLBACK_RESTORED=null\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\nSKLADCHIK938_END=true\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 55b4ee3e..31fba652 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,15 +1,15 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SUPPORT-260923-SKLADCHIK-INITIAL-STATE-RCA-DIRECT-937R1 +COMMAND_ID=SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1 STATUS=OK RC=0 HOST=pve01 MODE=read-only -COMPONENT=skladchik-initial-state-rca-direct +COMPONENT=skladchik-initial-check-exact REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=bf35331c2add5c5112a6995a42b388ec953917f5fa7335b04fc8a6158d3b2fe6 +COMMAND_SHA256=f1424b1b27d05093234d6eaf8e39f0a668df672228a8274c26beb5cfcfc566ad DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false @@ -24,20 +24,26 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=59f8028a5d7b32d9e550476fa69d38389818df6fbeb863aa5807f5645a5e483f -SANITIZED_OUTPUT_SHA256=0672428d56b5f840af985faa9595e0fe2ec75c6b9f8d3963ab2a67fcfb3df01b +RAW_EVIDENCE_SHA256=ef5ac06efdc32be639821d9ab748ee9c36ef6ceb7634456c3773cea788e8c13f +SANITIZED_OUTPUT_SHA256=fb6ad90461588b59a7587bc56c656335d449506c7bd36920b0c1376ac75052bb OUTPUT_BEGIN -SKLADCHIK937_BEGIN=true -COMMAND_ID=SUPPORT-260923-SKLADCHIK-INITIAL-STATE-RCA-DIRECT-937R1 +SKLADCHIK938_BEGIN=true +COMMAND_ID=SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1 MODE=read-only -COMPONENT=skladchik-initial-state-rca-direct -PREDECESSOR_935=FAILED_STAGE_INITIAL_STATE_CHECK -PREDECESSOR_936=LOCAL_404_NO_RUNNER +COMPONENT=skladchik-initial-check-exact +PREDECESSOR_937=PASS_SKLADCHIK_937_INITIAL_STATE_RCA MUTATION_BOUNDARY=NONE_READ_ONLY -TOOL_PRESENT=true TOOL_SHA256=1e2f5323abf880f3e8b17bf1f2d0a844c402a9bbf5f24159ed39aaf1d79caef0 TOOL_LINES=247 -SOURCE_CONTEXT_BEGIN +EXACT_SOURCE_0001_0020_BEGIN +0001:#!/usr/bin/env bash +0002:set -Eeuo pipefail +0003:umask 077 +0004:export SYSTEMD_PAGER=cat PAGER=cat SYSTEMD_LESS=FRXMK SYSTEMD_COLORS=0 GIT_PAGER=cat GIT_TERMINAL_PROMPT=0 +0005: +0006:REPO=/srv/homelab-ops +0007:TASK_ID=skladchik-reports-monitor-controlled-reauth-v1 +0008:TASK="$REPO/tasks/$TASK_ID" 0009:EDGE=debian@[PRIVATE_IP] 0010:SSH=(-o BatchMode=yes -o ConnectTimeout=12 -o StrictHostKeyChecking=yes -o UserKnownHostsFile=[SENSITIVE_PATH] 0011:LOCAL_STAGE=/mnt/staging/homelab-admin-rollback/$TASK_ID @@ -50,511 +56,81 @@ SOURCE_CONTEXT_BEGIN 0018:STAGE=INITIALIZE 0019:FAILED_STAGE=NONE 0020:PRODUCTION_APPLY_STARTED=0 -0021:SEALED=0 -0022:ROLLBACK_ATTEMPTED=NO -0023:ROLLBACK_RC=NOT_RUN -0024:APPLY_RUN=unknown -0025:BACKUP_WAIT_EVENTS=0 -0026: -0027:printf 'SCOPE=SKLADCHIK_COOKIE_REFRESH_VALIDATE_PREFLIGHT_PREPARE_DRY_RUN_HIDDEN_COOKIE_APPLY_VERIFY_SEAL\n' -0028:printf 'ROLLBACK=AUTOMATIC_VERSIONED_RECOVERY_WORKFLOW_RESTORES_PREVIOUS_SECRET_COOKIE_JAR_SCRIPTS_DESIRED_STATE_TIMER_AND_SUPERVISOR_STATE_ON_FAILURE_BEFORE_SEAL\n' -0029:printf 'VERIFY=FRESH_COOKIE_FORCED_STALE_JAR_BYPASSED_SECOND_JAR_ONLY_PROBE_MONITOR_OK_NUMERIC_COUNTS_TARGET_EDGE_SHA_TIMERS_SUPERVISOR_SEAL_STAGE_REMOVAL_VM160_UNCHANGED_NO_CLOUD_COMMANDS\n' -0030: -0031:cleanup() { -0036:} -0037: -0038:active_backup_restore_count() { -0039: systemctl list-units --type=service --state=activating,active,running --no-legend --plain 2>/dev/null | -0040: awk 'tolower($0)~/backup|restore/ && NF{c++}END{print c+0}' -0041:} -0042: -0043:wait_backup_restore_clear() { -0044: local deadline=$((SECONDS + 1800)) -0045: local stable=0 -0046: local count=0 -0047: while (( SECONDS < deadline )); do -0048: count="$(active_backup_restore_count)" -0049: if [[ "$count" -eq 0 ]]; then -0050: stable=$((stable + 1)) -0054: sleep 1 -0055: else -0056: BACKUP_WAIT_EVENTS=$((BACKUP_WAIT_EVENTS + 1)) -0057: stable=0 -0058: sleep 5 -0059: fi -0060: done -0061: printf 'BACKUP_RESTORE_GUARD_TIMEOUT count=%s\n' "$count" >&2 -0062: return 75 -0063:} -0065:run_phase() { -0066: local phase="$1" -0067: wait_backup_restore_clear -0068: /opt/homelab-admin/bin/homelab-admin run "$TASK" "$phase" -0069:} -0070: -0071:run_apply() { -0072: wait_backup_restore_clear -0073: HOMELAB_CONTROLLED_APPLY_CONFIRM="$TASK_ID" /opt/homelab-admin/bin/homelab-admin run "$TASK" apply -0074:} -0102: print "git -C /srv/homelab-desired-state clean -fd -- sbin/skladchik-reports-monitor-cookie-update sbin/skladchik-reports-monitor-monthly-selftest-watch sbin/skladchik-reports-monitor-status sbin/skladchik-reports-monitor-supervisor" -0103: } -0104: ' "$RECOVERY_TASK/phases/rollback.sh" >"$RECOVERY_TASK/phases/rollback.sh.new" -0105: mv "$RECOVERY_TASK/phases/rollback.sh.new" "$RECOVERY_TASK/phases/rollback.sh" -0106: chmod 0755 "$RECOVERY_TASK/phases/rollback.sh" -0107: -0108: test "$(grep -Fxc 'git -C /srv/homelab-desired-state clean -fd -- sbin/skladchik-reports-monitor-cookie-update sbin/skladchik-reports-monitor-monthly-selftest-watch sbin/skladchik-reports-monitor-status sbin/skladchik-reports-monitor-supervisor' "$RECOVERY_TASK/phases/rollback.sh")" = 1 -0109: bash -n "$RECOVERY_TASK/phases/rollback.sh" -0110: /opt/homelab-admin/bin/homelab-admin lint "$RECOVERY_TASK" -0111: /opt/homelab-admin/bin/homelab-admin validate "$RECOVERY_TASK" -0115: local rc="$1" -0116: printf '\033[1;35m%s\n' '===== СКОПИРОВАТЬ МНЕ В ЧАТ =====' -0117: printf 'COOKIE_REFRESH_RESULT=FAILED\nFAILED_STAGE=%s\nFAILED_RC=%s\n' "$FAILED_STAGE" "$rc" -0118: printf 'ROLLBACK_ATTEMPTED=%s\nROLLBACK_RC=%s\nSEALED=%s\n' "$ROLLBACK_ATTEMPTED" "$ROLLBACK_RC" "$SEALED" -0119: printf 'BACKUP_WAIT_EVENTS=%s\nACTIVE_BACKUP_RESTORE_NOW=%s\n' "$BACKUP_WAIT_EVENTS" "$(active_backup_restore_count)" -0120: printf 'APPLY_RUN=%s\nCOOKIE_VALUES_PRINTED=NO\nVM160_CHANGED=NO\nCLOUD_COMMANDS_EXECUTED=NO\n' "$APPLY_RUN" -0121: printf 'NEXT_PHASE=PASTE_THIS_FRAGMENT_ONLY\n' -0127: trap - ERR -0128: set +e -0129: FAILED_STAGE="$STAGE" -0130: -0131: if [[ -s "$SEAL" && ! -e "$LOCAL_STAGE" ]]; then -0132: if ssh "${SSH[@]}" "$EDGE" sudo -n /usr/bin/test ! -e "$EDGE_STAGE"; then -0133: SEALED=1 -0134: fi -0135: fi -0136: -0137: if [[ "$SEALED" -eq 0 && -d "$LOCAL_STAGE" ]]; then -0138: STAGE=AUTOMATIC_RECOVERY -0139: ROLLBACK_ATTEMPTED=YES -0140: build_recovery_task -0141: if wait_backup_restore_clear; then -0142: HOMELAB_CONTROLLED_APPLY_CONFIRM="$TASK_ID" /opt/homelab-admin/bin/homelab-admin run "$RECOVERY_TASK" rollback -0143: ROLLBACK_RC=$? -0144: else -0145: ROLLBACK_RC=75 -0146: fi -0147: fi +EXACT_SOURCE_0001_0020_END +EXACT_SOURCE_0150_0175_BEGIN +0150: cleanup +0151: exit "$rc" +0152:} +0153:trap 'on_error "$?"' ERR 0154:trap cleanup EXIT 0155: 0156:STAGE=INITIAL_STATE_CHECK 0157:test "$(hostname -f)" = pve01.gram1.ru 0158:test "$(git -C "$REPO" branch --show-current)" = main +0159:test "$(git -C "$REPO" rev-parse HEAD)" = "$(git -C "$REPO" rev-parse origin/main)" +0160:test -z "$(git -C "$REPO" status --porcelain)" +0161:test -z "$(git -C /srv/homelab-desired-state status --porcelain)" +0162:test "$(git -C "$REPO" remote get-url --push origin)" = DISABLED +0163:test -d "$TASK" +0164:test -s "$TASK/task.json" +0165:VM160_BEFORE="$(vm160_fingerprint)" +0166:KNOWN_HOSTS_BEFORE="$(sha256sum [SENSITIVE_PATH] | awk 'NR==1{print $1}')" +0167: +0168:TARGET_EDGE_SHA="$(jq -r '.source_of_truth.edge_target_sha256' "$TASK/task.json")" +0169:test "$TARGET_EDGE_SHA" != null +0170:test "${#TARGET_EDGE_SHA}" = 64 +0171:test "$(sha256sum "$TASK/assets/edge/skladchik-reports-monitor-cookie-update-edge" | awk 'NR==1{print $1}')" = "$TARGET_EDGE_SHA" 0172:test "$(ssh "${SSH[@]}" "$EDGE" sudo -n /usr/bin/sha256sum /usr/local/sbin/skladchik-reports-monitor-cookie-update-edge | awk 'NR==1{print $1}')" = "$TARGET_EDGE_SHA" 0173: 0174:STAGE=VALIDATE 0175:/opt/homelab-admin/bin/homelab-admin validate "$TASK" -0176: -0177:STAGE=PREFLIGHT -0178:run_phase preflight -0179: -0180:STAGE=PREPARE -0181:run_phase prepare -0182: -0183:STAGE=DRY_RUN -0184:run_phase dry-run -0185: -0186:STAGE=INTERACTIVE_APPLY -0187:printf '\n\033[1;33mВСТАВЬ ПОЛНЫЙ COOKIE ИЗ REQUEST HEADERS ЗАПРОСА К https://az52.skladchik.org/reports/ БЕЗ СЛОВА Cookie: И НАЖМИ ENTER. ВВОД СКРЫТ.\033[0m\n\n' -0188:PRODUCTION_APPLY_STARTED=1 -0195:grep -Fq 'SECOND_JAR_ONLY_PERSISTENCE_RUN=OK' "$APPLY_RUN/stdout.log" -0196: -0197:STAGE=VERIFY -0198:run_phase verify -0199: -0200:STAGE=SEAL -0201:run_phase seal -0202:SEALED=1 -0203: -0204:STAGE=FINAL_INDEPENDENT_VERIFY -0205:test -s "$SEAL" -0206:test ! -e "$LOCAL_STAGE" -0207:ssh "${SSH[@]}" "$EDGE" sudo -n /usr/bin/test ! -e "$EDGE_STAGE" -0208:test "$(sha256sum [SENSITIVE_PATH] | awk 'NR==1{print $1}')" = "$KNOWN_HOSTS_BEFORE" -0209:test "$(ssh "${SSH[@]}" "$EDGE" sudo -n /usr/bin/sha256sum /usr/local/sbin/skladchik-reports-monitor-cookie-update-edge | awk 'NR==1{print $1}')" = "$TARGET_EDGE_SHA" -0235:test "$(vm160_fingerprint)" = "$VM160_BEFORE" -0236: -0237:STAGE=SUCCESS -0238:printf '\033[1;35m%s\n' '===== СКОПИРОВАТЬ МНЕ В ЧАТ =====' -0239:printf 'COOKIE_REFRESH_RESULT=SUCCESS\nTASK_ID=%s\n' "$TASK_ID" -0242:printf 'SESSION_KEEPALIVE=%s\nCOOKIE_JAR=%s\nEDGE_SCRIPT_SHA256=%s\n' "$SESSION_KEEPALIVE" "$COOKIE_JAR" "$TARGET_EDGE_SHA" -0243:printf 'EDGE_TIMER_ENABLED=YES\nEDGE_TIMER_ACTIVE=YES\nSUPERVISOR_TIMER_ENABLED=YES\nSUPERVISOR_TIMER_ACTIVE=YES\n' -0244:printf 'SEAL_PRESENT=YES\nROLLBACK_STAGES_REMOVED=YES\nDESIRED_STATE_CLEAN=YES\nKNOWN_HOSTS_CHANGED=NO\n' -0245:printf 'BACKUP_WAIT_EVENTS=%s\nCOOKIE_VALUES_PRINTED=NO\nVM160_CHANGED=NO\nCLOUD_COMMANDS_EXECUTED=NO\n' -0246:printf 'NEXT_REFRESH_COMMAND=/srv/homelab-ops/tools/skladchik-cookie-refresh\n' -0247:printf '%s\033[0m\n' '===== КОНЕЦ ФРАГМЕНТА =====' -SOURCE_CONTEXT_END -STATE_OBJECTS_BEGIN -OBJ|file=true|size=64|mtime=1786578911|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235443Z-1365154-dry-run/stdout.log -OBJ|file=false|size=4096|mtime=1786578911|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235443Z-1365154-dry-run -OBJ|file=true|size=610|mtime=1786578911|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235443Z-1365154-dry-run/result.json -OBJ|file=true|size=8118|mtime=1786578974|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235614Z-1377744-preflight/task.json -OBJ|file=true|size=0|mtime=1786578974|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235614Z-1377744-preflight/stderr.log -OBJ|file=true|size=195|mtime=1786578987|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235614Z-1377744-preflight/preflight.json -OBJ|file=true|size=72|mtime=1786578987|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235614Z-1377744-preflight/stdout.log -OBJ|file=false|size=4096|mtime=1786578987|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235614Z-1377744-preflight -OBJ|file=true|size=618|mtime=1786578987|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235614Z-1377744-preflight/result.json -OBJ|file=true|size=8118|mtime=1786578988|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235628Z-1378111-prepare/task.json -OBJ|file=true|size=0|mtime=1786578988|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235628Z-1378111-prepare/stderr.log -OBJ|file=true|size=103|mtime=1786579001|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235628Z-1378111-prepare/prepare.json -OBJ|file=true|size=59|mtime=1786579001|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235628Z-1378111-prepare/stdout.log -OBJ|file=false|size=4096|mtime=1786579001|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235628Z-1378111-prepare -OBJ|file=true|size=610|mtime=1786579001|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235628Z-1378111-prepare/result.json -OBJ|file=true|size=8118|mtime=1786579002|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235642Z-1378356-dry-run/task.json -OBJ|file=true|size=0|mtime=1786579002|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235642Z-1378356-dry-run/stderr.log -OBJ|file=true|size=192|mtime=1786579029|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235642Z-1378356-dry-run/dry-run.json -OBJ|file=true|size=64|mtime=1786579029|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235642Z-1378356-dry-run/stdout.log -OBJ|file=false|size=4096|mtime=1786579029|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235642Z-1378356-dry-run -OBJ|file=true|size=610|mtime=1786579029|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235642Z-1378356-dry-run/result.json -OBJ|file=true|size=8118|mtime=1786579099|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235819Z-1379947-preflight/task.json -OBJ|file=true|size=0|mtime=1786579099|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235819Z-1379947-preflight/stderr.log -OBJ|file=true|size=195|mtime=1786579113|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235819Z-1379947-preflight/preflight.json -OBJ|file=true|size=72|mtime=1786579113|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235819Z-1379947-preflight/stdout.log -OBJ|file=false|size=4096|mtime=1786579113|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235819Z-1379947-preflight -OBJ|file=true|size=618|mtime=1786579113|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235819Z-1379947-preflight/result.json -OBJ|file=true|size=8118|mtime=1786579113|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235833Z-1380290-prepare/task.json -OBJ|file=true|size=0|mtime=1786579113|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235833Z-1380290-prepare/stderr.log -OBJ|file=true|size=103|mtime=1786579127|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235833Z-1380290-prepare/prepare.json -OBJ|file=true|size=59|mtime=1786579127|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235833Z-1380290-prepare/stdout.log -OBJ|file=false|size=4096|mtime=1786579127|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235833Z-1380290-prepare -OBJ|file=true|size=610|mtime=1786579127|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235833Z-1380290-prepare/result.json -OBJ|file=true|size=0|mtime=1786579127|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235847Z-1380510-dry-run/stderr.log -OBJ|file=true|size=8118|mtime=1786579127|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235847Z-1380510-dry-run/task.json -OBJ|file=true|size=192|mtime=1786579155|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235847Z-1380510-dry-run/dry-run.json -OBJ|file=true|size=64|mtime=1786579155|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235847Z-1380510-dry-run/stdout.log -OBJ|file=false|size=4096|mtime=1786579155|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235847Z-1380510-dry-run -OBJ|file=true|size=610|mtime=1786579155|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260812T235847Z-1380510-dry-run/result.json -OBJ|file=true|size=8118|mtime=1786579211|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000011Z-1381691-apply/task.json -OBJ|file=true|size=91|mtime=1786579241|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000011Z-1381691-apply/stderr.log -OBJ|file=true|size=622|mtime=1786579265|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000011Z-1381691-apply/apply.json -OBJ|file=true|size=97|mtime=1786579265|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000011Z-1381691-apply/stdout.log -OBJ|file=false|size=4096|mtime=1786579265|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000011Z-1381691-apply -OBJ|file=true|size=602|mtime=1786579265|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000011Z-1381691-apply/result.json -OBJ|file=true|size=8118|mtime=1786579770|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000930Z-1418323-verify/task.json -OBJ|file=true|size=0|mtime=1786579770|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000930Z-1418323-verify/stderr.log -OBJ|file=true|size=64|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000930Z-1418323-verify/stdout.log -OBJ|file=true|size=670|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000930Z-1418323-verify/verify.json -OBJ|file=false|size=4096|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000930Z-1418323-verify -OBJ|file=true|size=606|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T000930Z-1418323-verify/result.json -OBJ|file=true|size=0|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T001000Z-1418769-seal/stdout.log -OBJ|file=true|size=8118|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T001000Z-1418769-seal/task.json -OBJ|file=true|size=867|mtime=1786579800|path=/var/lib/homelab-admin/seals/skladchik-moderator-v2-ru-dark-competitor-retirement-v1.json -OBJ|file=true|size=140|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T001000Z-1418769-seal/stderr.log -OBJ|file=false|size=4096|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T001000Z-1418769-seal -OBJ|file=true|size=602|mtime=1786579800|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T001000Z-1418769-seal/result.json -OBJ|file=true|size=8118|mtime=1786580402|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002002Z-1456883-verify/task.json -OBJ|file=true|size=0|mtime=1786580402|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002002Z-1456883-verify/stderr.log -OBJ|file=true|size=670|mtime=1786580432|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002002Z-1456883-verify/verify.json -OBJ|file=true|size=64|mtime=1786580432|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002002Z-1456883-verify/stdout.log -OBJ|file=false|size=4096|mtime=1786580432|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002002Z-1456883-verify -OBJ|file=true|size=606|mtime=1786580432|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002002Z-1456883-verify/result.json -OBJ|file=true|size=8118|mtime=1786580432|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002032Z-1457381-seal/task.json -OBJ|file=true|size=0|mtime=1786580432|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002032Z-1457381-seal/stderr.log -OBJ|file=true|size=166|mtime=1786580433|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002032Z-1457381-seal/seal.json -OBJ|file=true|size=111|mtime=1786580433|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002032Z-1457381-seal/stdout.log -OBJ|file=false|size=4096|mtime=1786580433|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002032Z-1457381-seal -OBJ|file=true|size=598|mtime=1786580433|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002032Z-1457381-seal/result.json -OBJ|file=true|size=8118|mtime=1786580611|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002331Z-1471437-verify/task.json -OBJ|file=true|size=0|mtime=1786580611|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002331Z-1471437-verify/stderr.log -OBJ|file=true|size=64|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002331Z-1471437-verify/stdout.log -OBJ|file=true|size=670|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002331Z-1471437-verify/verify.json -OBJ|file=false|size=4096|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002331Z-1471437-verify -OBJ|file=true|size=606|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002331Z-1471437-verify/result.json -OBJ|file=false|size=4096|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1 -OBJ|file=true|size=8118|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/task.json -OBJ|file=true|size=0|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/stderr.log -OBJ|file=true|size=166|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/seal.json -OBJ|file=true|size=111|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/stdout.log -OBJ|file=false|size=4096|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal -OBJ|file=true|size=598|mtime=1786580641|path=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/result.json -OBJ|file=true|size=8047|mtime=1786729312|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/task.json -OBJ|file=true|size=0|mtime=1786729312|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/stderr.log -OBJ|file=true|size=452|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/preflight.json -OBJ|file=true|size=411|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/stdout.log -OBJ|file=false|size=4096|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight -OBJ|file=true|size=615|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/result.json -OBJ|file=true|size=8047|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/task.json -OBJ|file=true|size=0|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/stderr.log -OBJ|file=true|size=287|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/prepare.json -OBJ|file=true|size=711|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/stdout.log -OBJ|file=false|size=4096|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare -OBJ|file=true|size=607|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/result.json -OBJ|file=true|size=8047|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/task.json -OBJ|file=true|size=0|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/stderr.log -OBJ|file=true|size=316|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/dry-run.json -OBJ|file=true|size=466|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/stdout.log -OBJ|file=false|size=4096|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run -OBJ|file=true|size=607|mtime=1786729313|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/result.json -OBJ|file=true|size=0|mtime=1786729896|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/stderr.log -OBJ|file=true|size=8047|mtime=1786729896|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/task.json -OBJ|file=true|size=405|mtime=1786729898|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/apply.json -OBJ|file=true|size=725|mtime=1786729898|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/stdout.log -OBJ|file=false|size=4096|mtime=1786729898|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply -OBJ|file=true|size=599|mtime=1786729898|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/result.json -OBJ|file=true|size=8047|mtime=1786729979|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/task.json -OBJ|file=true|size=0|mtime=1786729979|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/stderr.log -OBJ|file=true|size=522|mtime=1786729979|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/stdout.log -OBJ|file=true|size=391|mtime=1786729979|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/verify.json -OBJ|file=false|size=4096|mtime=1786729979|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify -OBJ|file=true|size=603|mtime=1786729979|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/result.json -OBJ|file=false|size=4096|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1 -OBJ|file=true|size=8047|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/task.json -OBJ|file=true|size=0|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/stderr.log -OBJ|file=true|size=829|mtime=1786729980|path=/var/lib/homelab-admin/seals/skladchik-reports-monitor-cookie-persistence-hotfix-v1.json -OBJ|file=true|size=386|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/seal.json -OBJ|file=true|size=663|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/stdout.log -OBJ|file=false|size=4096|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal -OBJ|file=true|size=595|mtime=1786729980|path=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/result.json -STATE_OBJECTS_END -SAFE_STATE_CONTENT_BEGIN -FILE=/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/result.json - "run_id": "20260813T002401Z-1471844-seal", - "task_id": "skladchik-moderator-v2-ru-dark-competitor-retirement-v1", - "status": "OK", - "stdout": "/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/stdout.log", - "stderr": "/var/lib/homelab-admin/runs/skladchik-moderator-v2-ru-dark-competitor-retirement-v1/20260813T002401Z-1471844-seal/stderr.log" -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/task.json - "active_backup_restore_max": 0 - "$HOMELAB_RUN_DIR/preflight.json", - "$HOMELAB_RUN_DIR/prepare.json", - "$HOMELAB_RUN_DIR/dry-run.json", - "$HOMELAB_RUN_DIR/apply.json", - "$HOMELAB_RUN_DIR/verify.json", - "$HOMELAB_RUN_DIR/rollback.json", - "$HOMELAB_RUN_DIR/seal.json" - "path": "$HOMELAB_RUN_DIR/preflight.json", - "verification": "CR0072 is sealed; exact live monitor, service, timer and residue drop-in preimages are pinned; monthly reauth asset is unchanged." - "path": "$HOMELAB_RUN_DIR/prepare.json", - "path": "$HOMELAB_RUN_DIR/dry-run.json", - "producer": "phases/dry-run.sh", - "path": "$HOMELAB_RUN_DIR/apply.json", - "path": "$HOMELAB_RUN_DIR/verify.json", - "path": "$HOMELAB_RUN_DIR/rollback.json", - "path": "$HOMELAB_RUN_DIR/seal.json", - "verification": "canonical seal is atomically created or exact-existing seal is validated/reused; edge rollback snapshot cleanup is idempotent." - "runtime_matrix": [ - "runtime": "bash,jq,git,systemd,ssh,scp,python3,gzip", - "runtime": "bash,python3,systemd,sha256sum,awk", - "rollback_refuses_sealed": true, - "dry-run": "phases/dry-run.sh", - "assets/edge-dry-run.sh", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/preflight.json - "status": "OK", - "cr0072_sealed": true, -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/stdout.log - EDGE_PREFLIGHT_STATUS=OK - PREFLIGHT_STATUS=OK - CR0072_SEALED=YES -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174152Z-1957071-preflight/result.json - "run_id": "20260814T174152Z-1957071-preflight", - "status": "OK", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/task.json - "active_backup_restore_max": 0 - "$HOMELAB_RUN_DIR/preflight.json", - "$HOMELAB_RUN_DIR/prepare.json", - "$HOMELAB_RUN_DIR/dry-run.json", - "$HOMELAB_RUN_DIR/apply.json", - "$HOMELAB_RUN_DIR/verify.json", - "$HOMELAB_RUN_DIR/rollback.json", - "$HOMELAB_RUN_DIR/seal.json" - "path": "$HOMELAB_RUN_DIR/preflight.json", - "verification": "CR0072 is sealed; exact live monitor, service, timer and residue drop-in preimages are pinned; monthly reauth asset is unchanged." - "path": "$HOMELAB_RUN_DIR/prepare.json", - "path": "$HOMELAB_RUN_DIR/dry-run.json", - "producer": "phases/dry-run.sh", - "path": "$HOMELAB_RUN_DIR/apply.json", - "path": "$HOMELAB_RUN_DIR/verify.json", - "path": "$HOMELAB_RUN_DIR/rollback.json", - "path": "$HOMELAB_RUN_DIR/seal.json", - "verification": "canonical seal is atomically created or exact-existing seal is validated/reused; edge rollback snapshot cleanup is idempotent." - "runtime_matrix": [ - "runtime": "bash,jq,git,systemd,ssh,scp,python3,gzip", - "runtime": "bash,python3,systemd,sha256sum,awk", - "rollback_refuses_sealed": true, - "dry-run": "phases/dry-run.sh", - "assets/edge-dry-run.sh", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/prepare.json - "status": "OK", - "rollback_stage_reused": false, -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/stdout.log - .task-id: OK - .task-id: OK - EDGE_PREPARE_STATUS=OK - ROLLBACK_STAGE_REUSED=NO - PREPARE_STATUS=OK - ROLLBACK_STAGE_REUSED=NO -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957183-prepare/result.json - "run_id": "20260814T174153Z-1957183-prepare", - "status": "OK", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/task.json - "active_backup_restore_max": 0 - "$HOMELAB_RUN_DIR/preflight.json", - "$HOMELAB_RUN_DIR/prepare.json", - "$HOMELAB_RUN_DIR/dry-run.json", - "$HOMELAB_RUN_DIR/apply.json", - "$HOMELAB_RUN_DIR/verify.json", - "$HOMELAB_RUN_DIR/rollback.json", - "$HOMELAB_RUN_DIR/seal.json" - "path": "$HOMELAB_RUN_DIR/preflight.json", - "verification": "CR0072 is sealed; exact live monitor, service, timer and residue drop-in preimages are pinned; monthly reauth asset is unchanged." - "path": "$HOMELAB_RUN_DIR/prepare.json", - "path": "$HOMELAB_RUN_DIR/dry-run.json", - "producer": "phases/dry-run.sh", - "path": "$HOMELAB_RUN_DIR/apply.json", - "path": "$HOMELAB_RUN_DIR/verify.json", - "path": "$HOMELAB_RUN_DIR/rollback.json", - "path": "$HOMELAB_RUN_DIR/seal.json", - "verification": "canonical seal is atomically created or exact-existing seal is validated/reused; edge rollback snapshot cleanup is idempotent." - "runtime_matrix": [ - "runtime": "bash,jq,git,systemd,ssh,scp,python3,gzip", - "runtime": "bash,python3,systemd,sha256sum,awk", - "rollback_refuses_sealed": true, - "dry-run": "phases/dry-run.sh", - "assets/edge-dry-run.sh", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/dry-run.json - "status": "OK", - "dry_run_pyc_created": false, -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/stdout.log - .task-id: OK - EDGE_DRY_RUN_STATUS=OK - DRY_RUN_STATUS=OK - DRY_RUN_PYC_CREATED=NO -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T174153Z-1957291-dry-run/result.json - "run_id": "20260814T174153Z-1957291-dry-run", - "phase": "dry-run", - "status": "OK", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/task.json - "active_backup_restore_max": 0 - "$HOMELAB_RUN_DIR/preflight.json", - "$HOMELAB_RUN_DIR/prepare.json", - "$HOMELAB_RUN_DIR/dry-run.json", - "$HOMELAB_RUN_DIR/apply.json", - "$HOMELAB_RUN_DIR/verify.json", - "$HOMELAB_RUN_DIR/rollback.json", - "$HOMELAB_RUN_DIR/seal.json" - "path": "$HOMELAB_RUN_DIR/preflight.json", - "verification": "CR0072 is sealed; exact live monitor, service, timer and residue drop-in preimages are pinned; monthly reauth asset is unchanged." - "path": "$HOMELAB_RUN_DIR/prepare.json", - "path": "$HOMELAB_RUN_DIR/dry-run.json", - "producer": "phases/dry-run.sh", - "path": "$HOMELAB_RUN_DIR/apply.json", - "path": "$HOMELAB_RUN_DIR/verify.json", - "path": "$HOMELAB_RUN_DIR/rollback.json", - "path": "$HOMELAB_RUN_DIR/seal.json", - "verification": "canonical seal is atomically created or exact-existing seal is validated/reused; edge rollback snapshot cleanup is idempotent." - "runtime_matrix": [ - "runtime": "bash,jq,git,systemd,ssh,scp,python3,gzip", - "runtime": "bash,python3,systemd,sha256sum,awk", - "rollback_refuses_sealed": true, - "dry-run": "phases/dry-run.sh", - "assets/edge-dry-run.sh", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/apply.json - "status": "OK", - "probe_status": "OK", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/stdout.log - .task-id: OK - EDGE_APPLY_STATUS=OK - PROBE_STATUS=OK - APPLY_STATUS=OK -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175136Z-1996598-apply/result.json - "run_id": "20260814T175136Z-1996598-apply", - "status": "OK", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/task.json - "active_backup_restore_max": 0 - "$HOMELAB_RUN_DIR/preflight.json", - "$HOMELAB_RUN_DIR/prepare.json", - "$HOMELAB_RUN_DIR/dry-run.json", - "$HOMELAB_RUN_DIR/apply.json", - "$HOMELAB_RUN_DIR/verify.json", - "$HOMELAB_RUN_DIR/rollback.json", - "$HOMELAB_RUN_DIR/seal.json" - "path": "$HOMELAB_RUN_DIR/preflight.json", - "verification": "CR0072 is sealed; exact live monitor, service, timer and residue drop-in preimages are pinned; monthly reauth asset is unchanged." - "path": "$HOMELAB_RUN_DIR/prepare.json", - "path": "$HOMELAB_RUN_DIR/dry-run.json", - "producer": "phases/dry-run.sh", - "path": "$HOMELAB_RUN_DIR/apply.json", - "path": "$HOMELAB_RUN_DIR/verify.json", - "path": "$HOMELAB_RUN_DIR/rollback.json", - "path": "$HOMELAB_RUN_DIR/seal.json", - "verification": "canonical seal is atomically created or exact-existing seal is validated/reused; edge rollback snapshot cleanup is idempotent." - "runtime_matrix": [ - "runtime": "bash,jq,git,systemd,ssh,scp,python3,gzip", - "runtime": "bash,python3,systemd,sha256sum,awk", - "rollback_refuses_sealed": true, - "dry-run": "phases/dry-run.sh", - "assets/edge-dry-run.sh", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/stdout.log - EDGE_VERIFY_STATUS=OK - HEALTH_STATUS=OK - VERIFY_STATUS=OK -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/verify.json - "status": "OK", - "health_status": "OK", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175259Z-1998069-verify/result.json - "run_id": "20260814T175259Z-1998069-verify", - "status": "OK", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/task.json - "active_backup_restore_max": 0 - "$HOMELAB_RUN_DIR/preflight.json", - "$HOMELAB_RUN_DIR/prepare.json", - "$HOMELAB_RUN_DIR/dry-run.json", - "$HOMELAB_RUN_DIR/apply.json", - "$HOMELAB_RUN_DIR/verify.json", - "$HOMELAB_RUN_DIR/rollback.json", - "$HOMELAB_RUN_DIR/seal.json" - "path": "$HOMELAB_RUN_DIR/preflight.json", - "verification": "CR0072 is sealed; exact live monitor, service, timer and residue drop-in preimages are pinned; monthly reauth asset is unchanged." - "path": "$HOMELAB_RUN_DIR/prepare.json", - "path": "$HOMELAB_RUN_DIR/dry-run.json", - "producer": "phases/dry-run.sh", - "path": "$HOMELAB_RUN_DIR/apply.json", - "path": "$HOMELAB_RUN_DIR/verify.json", - "path": "$HOMELAB_RUN_DIR/rollback.json", - "path": "$HOMELAB_RUN_DIR/seal.json", - "verification": "canonical seal is atomically created or exact-existing seal is validated/reused; edge rollback snapshot cleanup is idempotent." - "runtime_matrix": [ - "runtime": "bash,jq,git,systemd,ssh,scp,python3,gzip", - "runtime": "bash,python3,systemd,sha256sum,awk", - "rollback_refuses_sealed": true, - "dry-run": "phases/dry-run.sh", - "assets/edge-dry-run.sh", -FILE=/var/lib/homelab-admin/seals/skladchik-reports-monitor-cookie-persistence-hotfix-v1.json - "status": "SEALED", - "sealed_at": "2026-08-14T17:53:00Z", -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/seal.json - "status": "OK", - "edge_rollback_stage_state": "YES" -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/stdout.log - .task-id: OK - EDGE_SEAL_CLEANUP_STATUS=OK - ROLLBACK_STAGE_REMOVED=YES - EDGE_SEAL_REUSED_ABSENT_STAGE=NO - SEAL_STATUS=OK -FILE=/var/lib/homelab-admin/runs/skladchik-reports-monitor-cookie-persistence-hotfix-v1/20260814T175300Z-1998179-seal/result.json - "run_id": "20260814T175300Z-1998179-seal", - "status": "OK", -SAFE_STATE_CONTENT_END -UNITS_BEGIN -UNIT=skladchik-reports-monitor-backup.service|active=inactive|enabled=not-found -UNIT=skladchik-reports-monitor-backup-restore-check.service|active=inactive|enabled=not-found -UNIT=skladchik-reports-monitor.timer|active=inactive|enabled=not-found -UNIT=skladchik-reports-monitor-supervisor.timer|active=active|enabled=enabled -UNITS_END -HEALTH_BEGIN -STATUS=FAIL -problems=monitor_status_not_ok,cookie_expiry_warn,netbird_route_not_wt0 -cookie_expiry_status=WARN -cookie_jar=yes -cookie_jar_bytes=364 -monitor_reports= -monitor_status=ERROR -netbird_route=1.1.1.1 via [PRIVATE_IP] dev eth0 src [PRIVATE_IP] uid 0 -session_keepalive=persistent_cookie_jar -HEALTH_END -RCA_CAPTURE_COMPLETE=true -CHANGES_MADE_BY_937=false -HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260923-SKLADCHIK-INITIAL-STATE-RCA-DIRECT-937R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null} -SKLADCHIK937_END=true +EXACT_SOURCE_0150_0175_END +CURRENT_FACTS_BEGIN +HOSTNAME_F=pve01.gram1.ru +HOSTNAME_EXPECTED=pve01.gram1.ru +HOSTNAME_MATCH=true +REPO_RESOLVED_PRESENT=true +REPO_EXISTS=true +REPO_BRANCH=main +REPO_BRANCH_MAIN=true +REPO_HEAD=d5e2ef5639398a762283e47143c17b494f8ed579 +REPO_PORCELAIN_COUNT=0 +TASK_ID=skladchik-reports-monitor-controlled-reauth-v1 +TASK_RESOLVED_PRESENT=true +TASK_EXISTS=true +TASK_META=mode=755|size=4096|mtime=1784373912|dir=true +SEAL_RESOLVED_PRESENT=true +SEAL_EXISTS=true +SEAL_META=mode=600|size=469|mtime=1784371982|dir=false +LOCAL_STAGE_RESOLVED_PRESENT=true +LOCAL_STAGE_EXISTS=false +TARGET_EDGE_SHA_PRESENT=false +KNOWN_HOSTS_PARSED=true +KNOWN_HOSTS_EXISTS=true +KNOWN_HOSTS_SHA256=ab01de61ca5030ad158f1aef377364100531473de1e10a529089174f6890d735 +EDGE_SHA_CHECK_RC=INPUT_UNRESOLVED +INITIAL_TEST_LINES_BEGIN +LINE_0157=test "$(hostname -f)" = pve01.gram1.ru +LINE_0158=test "$(git -C "$REPO" branch --show-current)" = main +LINE_0159=test "$(git -C "$REPO" rev-parse HEAD)" = "$(git -C "$REPO" rev-parse origin/main)" +LINE_0160=test -z "$(git -C "$REPO" status --porcelain)" +LINE_0161=test -z "$(git -C /srv/homelab-desired-state status --porcelain)" +LINE_0162=test "$(git -C "$REPO" remote get-url --push origin)" = DISABLED +LINE_0163=test -d "$TASK" +LINE_0164=test -s "$TASK/task.json" +LINE_0165=VM160_BEFORE="$(vm160_fingerprint)" +LINE_0166=KNOWN_HOSTS_BEFORE="$(sha256sum [SENSITIVE_PATH] | awk 'NR==1{print $1}')" +LINE_0168=TARGET_EDGE_SHA="$(jq -r '.source_of_truth.edge_target_sha256' "$TASK/task.json")" +LINE_0169=test "$TARGET_EDGE_SHA" != null +LINE_0170=test "${#TARGET_EDGE_SHA}" = 64 +LINE_0171=test "$(sha256sum "$TASK/assets/edge/skladchik-reports-monitor-cookie-update-edge" | awk 'NR==1{print $1}')" = "$TARGET_EDGE_SHA" +LINE_0172=test "$(ssh "${SSH[@]}" "$EDGE" sudo -n /usr/bin/sha256sum /usr/local/sbin/skladchik-reports-monitor-cookie-update-edge | awk 'NR==1{print $1}')" = "$TARGET_EDGE_SHA" +INITIAL_TEST_LINES_END +CHANGES_MADE_BY_938=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260923-SKLADCHIK-INITIAL-CHECK-EXACT-938R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null} +SKLADCHIK938_END=true OUTPUT_END CHAT_OUTPUT_END