{ "schema_version": 1, "channel": "homelab-runtime", "command_id": "SUPPORT-261002-SKLADCHIK-COMPLAINTS-RESTORE-CHECK-COMMANDMAP-99359R1", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", "component": "skladchik-complaints-restore-check-commandmap", "started_at_utc": "2026-10-02T05:54:16Z", "finished_at_utc": "2026-10-02T05:54:18Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", "command_sha256": "bcaf683dc48c5238422fa7f9c060a6170d1b08c2a28967b3cc76e842ce9e5ed1", "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": "0ba14584449f6575ed6d84dd298c362f1ad8059af3259fe0df62d4dc0c105fd4", "sanitized_output_sha256": "0ba14584449f6575ed6d84dd298c362f1ad8059af3259fe0df62d4dc0c105fd4", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", "output": "SKLADCHIK_COMPLAINTS_RESTORE_CHECK_COMMANDMAP=V1\nINGRESS_HOSTKEY_SELF_BOUND=true\nVM170_RUNNING=true\nGUEST_OUTPUT_PASS=true\nGUEST_MONITOR_SHA_MATCH=true\nGUEST_TIMER_ACTIVE=inactive\nGUEST_TIMER_ENABLED=disabled\nGUEST_SERVICE_ACTIVE=inactive\nGUEST_SERVICE_RESULT=success\nGUEST_SERVICE_EXEC_MAIN_STATUS=0\nRESTORE_CHECK_DEPLOYED_EXACT=true\nSHELL_FLAG_COUNT=3\nSHELL_FLAG_01=ERREXIT\nSHELL_FLAG_02=NOUNSET\nSHELL_FLAG_03=PIPEFAIL\nERR_TRAP_COUNT=1\nFD9_LOCK_USAGE_COUNT=2\nFUNCTION_START=36\nFUNCTION_END=95\nLINE_037_CLASS=COMMAND\nLINE_037_COMMANDS=NONE\nLINE_037_GUARDED=false\nLINE_037_SANITIZED=local_label=_$1__remote=_$2__rbase_latest_archive_name_remote_archive_outdir_archive_sha_remote_expected_actual_list_extract_sqlite_status_py_status\nLINE_038_CLASS=ASSIGN\nLINE_038_COMMANDS=NONE\nLINE_038_GUARDED=false\nLINE_038_SANITIZED=rbase=STR\nLINE_039_CLASS=ASSIGN_CMD_SUB\nLINE_039_COMMANDS=sort,tail,grep,sed\nLINE_039_GUARDED=false\nLINE_039_SANITIZED=latest=STR${rbase}/STR\nLINE_040_CLASS=OR_GUARDED\nLINE_040_COMMANDS=NONE\nLINE_040_GUARDED=true\nLINE_040_SANITIZED=[_-n__$latest__]_||_{_echo_STR_>>__$WORK/result.env___return_20__}\nLINE_041_CLASS=ASSIGN\nLINE_041_COMMANDS=NONE\nLINE_041_GUARDED=false\nLINE_041_SANITIZED=archive_name=STR\nLINE_042_CLASS=ASSIGN\nLINE_042_COMMANDS=NONE\nLINE_042_GUARDED=false\nLINE_042_SANITIZED=remote_archive=STR\nLINE_043_CLASS=ASSIGN\nLINE_043_COMMANDS=NONE\nLINE_043_GUARDED=false\nLINE_043_SANITIZED=outdir=STR\nLINE_044_CLASS=COMMAND\nLINE_044_COMMANDS=mkdir\nLINE_044_GUARDED=false\nLINE_044_SANITIZED=mkdir_-p__$outdir_\nLINE_045_CLASS=ASSIGN\nLINE_045_COMMANDS=NONE\nLINE_045_GUARDED=false\nLINE_045_SANITIZED=archive=STR\nLINE_046_CLASS=COMMAND\nLINE_046_COMMANDS=NONE\nLINE_046_GUARDED=false\nLINE_046_SANITIZED=log_STR\nLINE_047_CLASS=CAT_CHUNKED\nLINE_047_COMMANDS=NONE\nLINE_047_GUARDED=false\nLINE_047_SANITIZED=cat_chunked__$remote_archive___$archive_\nLINE_048_CLASS=CAT_CHUNKED\nLINE_048_COMMANDS=NONE\nLINE_048_GUARDED=false\nLINE_048_SANITIZED=cat_chunked_STR_STR\nLINE_049_CLASS=ASSIGN_CMD_SUB\nLINE_049_COMMANDS=awk\nLINE_049_GUARDED=false\nLINE_049_SANITIZED=expected=STR${archive}.sha256.remote_)_\nLINE_050_CLASS=ASSIGN_CMD_SUB\nLINE_050_COMMANDS=sha256sum,awk\nLINE_050_GUARDED=false\nLINE_050_SANITIZED=actual=_$(sha256sum__$archiveSTR\nLINE_051_CLASS=AND_CHAIN\nLINE_051_COMMANDS=NONE\nLINE_051_GUARDED=true\nLINE_051_SANITIZED=[_-n__$expected__]_&&_[__$expected__=__$actual__]\nLINE_052_CLASS=ASSIGN\nLINE_052_COMMANDS=NONE\nLINE_052_GUARDED=false\nLINE_052_SANITIZED=list=STR\nLINE_053_CLASS=TAR\nLINE_053_COMMANDS=tar\nLINE_053_GUARDED=false\nLINE_053_SANITIZED=tar_-tzf__$archive__>__$list_\nLINE_054_CLASS=COMMAND\nLINE_054_COMMANDS=grep\nLINE_054_GUARDED=false\nLINE_054_SANITIZED=grep_-Eq_STR__$list_\nLINE_055_CLASS=COMMAND\nLINE_055_COMMANDS=grep\nLINE_055_GUARDED=false\nLINE_055_SANITIZED=grep_-Eq_STR__$list_\nLINE_056_CLASS=COMMAND\nLINE_056_COMMANDS=grep\nLINE_056_GUARDED=false\nLINE_056_SANITIZED=grep_-Eq_STR__$list_\nLINE_057_CLASS=COMMAND\nLINE_057_COMMANDS=grep\nLINE_057_GUARDED=false\nLINE_057_SANITIZED=grep_-Eq__(_|/)TOKEN_.py$___$list_\nLINE_058_CLASS=COMMAND\nLINE_058_COMMANDS=grep\nLINE_058_GUARDED=false\nLINE_058_SANITIZED=grep_-Eq_STR__$list_\nLINE_059_CLASS=COMMAND\nLINE_059_COMMANDS=grep\nLINE_059_GUARDED=false\nLINE_059_SANITIZED=grep_-Eq__(_|/)TOKEN_.txt$___$list_\nLINE_060_CLASS=COMMAND\nLINE_060_COMMANDS=grep\nLINE_060_GUARDED=false\nLINE_060_SANITIZED=grep_-Eq__(_|/)TOKEN_.txt$___$list_\nLINE_061_CLASS=COMMAND\nLINE_061_COMMANDS=grep\nLINE_061_GUARDED=false\nLINE_061_SANITIZED=grep_-Eq__(_|/)TOKEN_.jar$___$list_\nLINE_062_CLASS=COMMAND\nLINE_062_COMMANDS=grep\nLINE_062_GUARDED=false\nLINE_062_SANITIZED=grep_-Eq_STR__$list_\nLINE_063_CLASS=COMMAND\nLINE_063_COMMANDS=grep\nLINE_063_GUARDED=false\nLINE_063_SANITIZED=grep_-Eq_STR__$list_\nLINE_064_CLASS=COMMAND\nLINE_064_COMMANDS=grep\nLINE_064_GUARDED=false\nLINE_064_SANITIZED=grep_-Eq_STR__$list_\nLINE_065_CLASS=COMMAND\nLINE_065_COMMANDS=grep\nLINE_065_GUARDED=false\nLINE_065_SANITIZED=grep_-Eq__(_|/)TOKEN_.timer$___$list_\nLINE_066_CLASS=COMMAND\nLINE_066_COMMANDS=grep\nLINE_066_GUARDED=false\nLINE_066_SANITIZED=grep_-Eq_STR__$list_\nLINE_067_CLASS=COMMAND\nLINE_067_COMMANDS=grep\nLINE_067_GUARDED=false\nLINE_067_SANITIZED=grep_-Eq__(_|/)TOKEN_.timer$___$list_\nLINE_068_CLASS=COMMAND\nLINE_068_COMMANDS=grep\nLINE_068_GUARDED=false\nLINE_068_SANITIZED=grep_-Eq__(_|/)TOKEN_.py$___$list_\nLINE_069_CLASS=COMMAND\nLINE_069_COMMANDS=grep\nLINE_069_GUARDED=false\nLINE_069_SANITIZED=grep_-Eq__(_|/)TOKEN_.py$___$list_\nLINE_070_CLASS=COMMAND\nLINE_070_COMMANDS=grep\nLINE_070_GUARDED=false\nLINE_070_SANITIZED=grep_-Eq__(_|/)TOKEN$___$list_\nLINE_071_CLASS=COMMAND\nLINE_071_COMMANDS=grep\nLINE_071_GUARDED=false\nLINE_071_SANITIZED=grep_-Eq__(_|/)TOKEN_.txt$___$list_\nLINE_072_CLASS=COMMAND\nLINE_072_COMMANDS=grep\nLINE_072_GUARDED=false\nLINE_072_SANITIZED=grep_-Eq__(_|/)TOKEN_.txt$___$list_\nLINE_073_CLASS=COMMAND\nLINE_073_COMMANDS=grep\nLINE_073_GUARDED=false\nLINE_073_SANITIZED=grep_-Eq__(_|/)TOKEN_.txt$___$list_\nLINE_074_CLASS=COMMAND\nLINE_074_COMMANDS=grep\nLINE_074_GUARDED=false\nLINE_074_SANITIZED=grep_-Eq_STR__$list_\nLINE_075_CLASS=COMMAND\nLINE_075_COMMANDS=grep\nLINE_075_GUARDED=false\nLINE_075_SANITIZED=grep_-Eq__(_|/)TOKEN_.timer$___$list_\nLINE_076_CLASS=COMMAND\nLINE_076_COMMANDS=grep\nLINE_076_GUARDED=false\nLINE_076_SANITIZED=grep_-Eq_STR__$list_\nLINE_077_CLASS=COMMAND\nLINE_077_COMMANDS=grep\nLINE_077_GUARDED=false\nLINE_077_SANITIZED=grep_-Eq__(_|/)TOKEN_.timer$___$list_\nLINE_078_CLASS=COMMAND\nLINE_078_COMMANDS=grep\nLINE_078_GUARDED=false\nLINE_078_SANITIZED=grep_-Eq_STR__$list_\nLINE_079_CLASS=COMMAND\nLINE_079_COMMANDS=grep\nLINE_079_GUARDED=false\nLINE_079_SANITIZED=grep_-Eq__(_|/)TOKEN_.timer$___$list_\nLINE_080_CLASS=ASSIGN\nLINE_080_COMMANDS=NONE\nLINE_080_GUARDED=false\nLINE_080_SANITIZED=extract=_${outdir}/extract_\nLINE_081_CLASS=COMMAND\nLINE_081_COMMANDS=mkdir\nLINE_081_GUARDED=false\nLINE_081_SANITIZED=mkdir_-p__$extract_\nLINE_082_CLASS=TAR\nLINE_082_COMMANDS=tar\nLINE_082_GUARDED=false\nLINE_082_SANITIZED=tar_-xzf__$archive__-C__$extract_\nLINE_083_CLASS=ASSIGN\nLINE_083_COMMANDS=NONE\nLINE_083_GUARDED=false\nLINE_083_SANITIZED=sqlite_status=skipped\nLINE_084_CLASS=CONDITION\nLINE_084_COMMANDS=NONE\nLINE_084_GUARDED=true\nLINE_084_SANITIZED=if_command_-v_sqlite3_>PATH_&&_[_-s__$extractPATH__]__then\nLINE_085_CLASS=COMMAND\nLINE_085_COMMANDS=tail\nLINE_085_GUARDED=false\nLINE_085_SANITIZED=[__$(sqlite3__$extractPATHSTR_=__ok__]\nLINE_086_CLASS=ASSIGN\nLINE_086_COMMANDS=NONE\nLINE_086_GUARDED=false\nLINE_086_SANITIZED=sqlite_status=ok\nLINE_087_CLASS=CONTROL\nLINE_087_COMMANDS=NONE\nLINE_087_GUARDED=false\nLINE_087_SANITIZED=fi\nLINE_088_CLASS=ASSIGN\nLINE_088_COMMANDS=NONE\nLINE_088_GUARDED=false\nLINE_088_SANITIZED=py_status=skipped\nLINE_089_CLASS=CONDITION\nLINE_089_COMMANDS=python3\nLINE_089_GUARDED=true\nLINE_089_SANITIZED=if_command_-v_python3_>PATH__then\nLINE_090_CLASS=PYTHON\nLINE_090_COMMANDS=python3\nLINE_090_GUARDED=false\nLINE_090_SANITIZED=python3_-m_py_compile__$extractPATH___$extractPATH___$extractPATH___$extractPATH___$extractPATH_\nLINE_091_CLASS=ASSIGN\nLINE_091_COMMANDS=NONE\nLINE_091_GUARDED=false\nLINE_091_SANITIZED=py_status=ok\nLINE_092_CLASS=CONTROL\nLINE_092_COMMANDS=NONE\nLINE_092_GUARDED=false\nLINE_092_SANITIZED=fi\nLINE_093_CLASS=COMMAND\nLINE_093_COMMANDS=stat,printf\nLINE_093_GUARDED=false\nLINE_093_SANITIZED=printf_STR__$label___$label___$latest___$label___$(stat_-c_%s__$archive_)___$label___$label___$label___$label___$label___$label___$label___$sqlite_status___$label___$py_status__>>__$WORK/result.env_\nLINE_094_CLASS=COMMAND\nLINE_094_COMMANDS=stat\nLINE_094_GUARDED=false\nLINE_094_SANITIZED=log_STR$archiveSTR\nERREXIT_CANDIDATE_COUNT=37\nCAND_01_LINE=39\nCAND_01_CLASS=ASSIGN_CMD_SUB\nCAND_01_COMMANDS=sort,tail,grep,sed\nCAND_01_SANITIZED=latest=STR${rbase}/STR\nCAND_02_LINE=44\nCAND_02_CLASS=COMMAND\nCAND_02_COMMANDS=mkdir\nCAND_02_SANITIZED=mkdir_-p__$outdir_\nCAND_03_LINE=49\nCAND_03_CLASS=ASSIGN_CMD_SUB\nCAND_03_COMMANDS=awk\nCAND_03_SANITIZED=expected=STR${archive}.sha256.remote_)_\nCAND_04_LINE=50\nCAND_04_CLASS=ASSIGN_CMD_SUB\nCAND_04_COMMANDS=sha256sum,awk\nCAND_04_SANITIZED=actual=_$(sha256sum__$archiveSTR\nCAND_05_LINE=53\nCAND_05_CLASS=TAR\nCAND_05_COMMANDS=tar\nCAND_05_SANITIZED=tar_-tzf__$archive__>__$list_\nCAND_06_LINE=54\nCAND_06_CLASS=COMMAND\nCAND_06_COMMANDS=grep\nCAND_06_SANITIZED=grep_-Eq_STR__$list_\nCAND_07_LINE=55\nCAND_07_CLASS=COMMAND\nCAND_07_COMMANDS=grep\nCAND_07_SANITIZED=grep_-Eq_STR__$list_\nCAND_08_LINE=56\nCAND_08_CLASS=COMMAND\nCAND_08_COMMANDS=grep\nCAND_08_SANITIZED=grep_-Eq_STR__$list_\nCAND_09_LINE=57\nCAND_09_CLASS=COMMAND\nCAND_09_COMMANDS=grep\nCAND_09_SANITIZED=grep_-Eq__(_|/)TOKEN_.py$___$list_\nCAND_10_LINE=58\nCAND_10_CLASS=COMMAND\nCAND_10_COMMANDS=grep\nCAND_10_SANITIZED=grep_-Eq_STR__$list_\nCAND_11_LINE=59\nCAND_11_CLASS=COMMAND\nCAND_11_COMMANDS=grep\nCAND_11_SANITIZED=grep_-Eq__(_|/)TOKEN_.txt$___$list_\nCAND_12_LINE=60\nCAND_12_CLASS=COMMAND\nCAND_12_COMMANDS=grep\nCAND_12_SANITIZED=grep_-Eq__(_|/)TOKEN_.txt$___$list_\nCAND_13_LINE=61\nCAND_13_CLASS=COMMAND\nCAND_13_COMMANDS=grep\nCAND_13_SANITIZED=grep_-Eq__(_|/)TOKEN_.jar$___$list_\nCAND_14_LINE=62\nCAND_14_CLASS=COMMAND\nCAND_14_COMMANDS=grep\nCAND_14_SANITIZED=grep_-Eq_STR__$list_\nCAND_15_LINE=63\nCAND_15_CLASS=COMMAND\nCAND_15_COMMANDS=grep\nCAND_15_SANITIZED=grep_-Eq_STR__$list_\nCAND_16_LINE=64\nCAND_16_CLASS=COMMAND\nCAND_16_COMMANDS=grep\nCAND_16_SANITIZED=grep_-Eq_STR__$list_\nCAND_17_LINE=65\nCAND_17_CLASS=COMMAND\nCAND_17_COMMANDS=grep\nCAND_17_SANITIZED=grep_-Eq__(_|/)TOKEN_.timer$___$list_\nCAND_18_LINE=66\nCAND_18_CLASS=COMMAND\nCAND_18_COMMANDS=grep\nCAND_18_SANITIZED=grep_-Eq_STR__$list_\nCAND_19_LINE=67\nCAND_19_CLASS=COMMAND\nCAND_19_COMMANDS=grep\nCAND_19_SANITIZED=grep_-Eq__(_|/)TOKEN_.timer$___$list_\nCAND_20_LINE=68\nCAND_20_CLASS=COMMAND\nCAND_20_COMMANDS=grep\nCAND_20_SANITIZED=grep_-Eq__(_|/)TOKEN_.py$___$list_\nREFERENCED_COMMAND_COUNT=11\nCOMMAND_01_NAME=awk\nCOMMAND_02_NAME=grep\nCOMMAND_03_NAME=mkdir\nCOMMAND_04_NAME=printf\nCOMMAND_05_NAME=python3\nCOMMAND_06_NAME=sed\nCOMMAND_07_NAME=sha256sum\nCOMMAND_08_NAME=sort\nCOMMAND_09_NAME=stat\nCOMMAND_10_NAME=tail\nCOMMAND_11_NAME=tar\nREFERENCED_COMMAND_RUNTIME_COUNT=11\nREFERENCED_COMMAND_MISSING_COUNT=0\nDECISION=RCA_COMPLAINTS_RESTORE_CHECK_COMMANDMAP_READY\nNEXT_GATE=FIX_EXACT_ERREXIT_POINT\nTASK_RESULT=SKLADCHIK_COMPLAINTS_RESTORE_CHECK_COMMANDMAP\nCHANGES_MADE=false\nROLLBACK_STARTED=false\nROLLBACK_RESTORED=null\nMUTATION_OUTCOME=NO_MUTATION\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-261002-SKLADCHIK-COMPLAINTS-RESTORE-CHECK-COMMANDMAP-99359R1\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" }