From 4eb6a90fa497fb2baf7b406608527e4768990bab Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Mon, 21 Sep 2026 03:24:56 +0000 Subject: [PATCH] runtime: publish SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1 --- ...043-SOURCE-LAYOUT-RCA-READONLY-1044R1.json | 38 +++++++++++ ...1043-SOURCE-LAYOUT-RCA-READONLY-1044R1.txt | 63 +++++++++++++++++++ runtime/latest.json | 16 ++--- runtime/latest.txt | 44 ++++++++++--- 4 files changed, 145 insertions(+), 16 deletions(-) create mode 100644 runtime/history/SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1.json create mode 100644 runtime/history/SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1.txt diff --git a/runtime/history/SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1.json b/runtime/history/SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1.json new file mode 100644 index 00000000..4d16240a --- /dev/null +++ b/runtime/history/SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "read-only", + "component": "homelab-backup-post1043-source-layout-rca", + "started_at_utc": "2026-09-21T03:24:55Z", + "finished_at_utc": "2026-09-21T03:24:55Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "edf197cad57e54dbbd79ae1e96213fce205b6863e41cd0ae82b8ea1864e6990b", + "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": "c7f0cbb29355d72d3b37116f5372cc05299435f27e3e0dd05928c79095b37a4f", + "sanitized_output_sha256": "c7f0cbb29355d72d3b37116f5372cc05299435f27e3e0dd05928c79095b37a4f", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "WORKERS2_BACKUP_POST1043_SOURCE_LAYOUT_RCA_BEGIN=1\nCOMMAND_ID=SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1\nMODE=read-only\nCOMPONENT=homelab-backup-post1043-source-layout-rca\nMUTATION_BOUNDARY=READ_ONLY_NO_REPO_WRITE_NO_GIT_FETCH_NO_COMMIT_NO_PUSH_NO_SYSTEMD_ACTION_NO_BACKUP_NO_RESTORE_NO_RETENTION_NO_DELETE_NO_MAIL\nWORKTREE_HEAD=50bf24f8ee27f3d2e0d1cbc6c17b62c69ff06bae\nWORKTREE_HEAD_EXPECTED=true\nWORKTREE_CLEAN=true\nWORKTREE_STATUS_LINES=[]\nTRACKED_FILE_COUNT=555\nLIVE_TO_SOURCE_MATCH={\"app_queue\":{\"live_path\":\"/usr/local/sbin/homelab-app-cloud-quorum-queue\",\"live_sha256\":\"1f959049cca2710a2cb820cc1f6acab16399c6b6711b9e4522e0ecd49e0e4650\",\"same_basename_paths\":[],\"same_sha_paths\":[],\"tracked_details\":[]},\"app_service\":{\"live_path\":\"/etc/systemd/system/homelab-app-cloud-quorum-queue.service\",\"live_sha256\":\"70b78ba529c270ec61d26a123d656385a8b2e2e4206ccf623111fa6ed3854602\",\"same_basename_paths\":[],\"same_sha_paths\":[],\"tracked_details\":[]},\"audit\":{\"live_path\":\"/usr/local/sbin/homelab-backup-audit\",\"live_sha256\":\"1474c9ce58bbc1b3ae7437261d1bdb923232926fb2943c7c830253f8b284724c\",\"same_basename_paths\":[\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit\"],\"same_sha_paths\":[\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit\"],\"tracked_details\":[{\"bytes\":39160,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit\",\"sha256\":\"1474c9ce58bbc1b3ae7437261d1bdb923232926fb2943c7c830253f8b284724c\"}]},\"retention\":{\"live_path\":\"/usr/local/sbin/homelab-backup-retention-gc\",\"live_sha256\":\"8adb6c10f5911f39c53775b89eac3cd1823f1ed34b4caccade5279c213e998a3\",\"same_basename_paths\":[\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc\"],\"same_sha_paths\":[\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc\"],\"tracked_details\":[{\"bytes\":32975,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc\",\"sha256\":\"8adb6c10f5911f39c53775b89eac3cd1823f1ed34b4caccade5279c213e998a3\"}]}}\nMATCHED_SOURCE_DIR_SIBLINGS={\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline\":[\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/gfs-retention.json\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-alertmanager-backup-run\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.service\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.timer\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-gfs-policy\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.service\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.timer\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-target-registry\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.service\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.timer\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/targets.json\"]}\nTRACKED_APP_QUEUE_RELATED_FILES=[]\nTRACKED_APP_QUEUE_REFERENCES=[\"HEAD:tasks/backup-gfs-lifecycle-remediation-v1/assets/targets.json:184: \\\"unit\\\": \\\"homelab-app-cloud-quorum-queue.timer\\\",\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:19:APP_QUEUE=/usr/local/sbin/homelab-app-cloud-quorum-queue\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:29:APP_TIMER=/etc/systemd/system/homelab-app-cloud-quorum-queue.timer\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:31:APP_SERVICE=/etc/systemd/system/homelab-app-cloud-quorum-queue.service\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:54:APP_TIMER_SHA=af2eedce3df53029b591d31715a3f3e6688ddb997b4823f487e70c339ce88078\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:199:source_hash_local APP_TIMER \\\"$APP_TIMER\\\" \\\"$APP_TIMER_SHA\\\"\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:422:for lock in /run/homelab-backup-heavy.lock /run/lock/homelab-vm-cloud-quorum-queue.lock /run/lock/homelab-app-cloud-quorum-queue.lock /run/lock/homelab-backup-dispatcher.lock; do\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc:13:APP_LOCK=/run/lock/homelab-app-cloud-quorum-queue.lock\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/targets.json:184: \\\"unit\\\": \\\"homelab-app-cloud-quorum-queue.timer\\\",\"]\nSOURCE_LAYOUT_DECISION={\"new_relpath\":\"changes/CR-2026-1005/homelab-backup-v2-app-scheduled\",\"source_anchor\":\"changes/CR-2026-1005\",\"strategy\":\"USE_EXPLICIT_CR_CHANGE_SOURCE_PATH\"}\nPOST1043_UNIT_STATE={\"homelab-app-cloud-quorum-queue.service\":{\"ActiveState\":{\"rc\":0,\"value\":\"failed\"},\"ExecMainStatus\":{\"rc\":0,\"value\":\"65\"},\"Result\":{\"rc\":0,\"value\":\"exit-code\"},\"SubState\":{\"rc\":0,\"value\":\"failed\"},\"UnitFileState\":{\"rc\":0,\"value\":\"static\"}},\"homelab-app-cloud-quorum-queue.timer\":{\"ActiveState\":{\"rc\":0,\"value\":\"inactive\"},\"ExecMainStatus\":{\"rc\":0,\"value\":\"\"},\"Result\":{\"rc\":0,\"value\":\"success\"},\"SubState\":{\"rc\":0,\"value\":\"dead\"},\"UnitFileState\":{\"rc\":0,\"value\":\"disabled\"}},\"homelab-backup-retention-gc.service\":{\"ActiveState\":{\"rc\":0,\"value\":\"inactive\"},\"ExecMainStatus\":{\"rc\":0,\"value\":\"66\"},\"Result\":{\"rc\":0,\"value\":\"success\"},\"SubState\":{\"rc\":0,\"value\":\"dead\"},\"UnitFileState\":{\"rc\":0,\"value\":\"static\"}},\"homelab-backup-retention-gc.timer\":{\"ActiveState\":{\"rc\":0,\"value\":\"inactive\"},\"ExecMainStatus\":{\"rc\":0,\"value\":\"\"},\"Result\":{\"rc\":0,\"value\":\"success\"},\"SubState\":{\"rc\":0,\"value\":\"dead\"},\"UnitFileState\":{\"rc\":0,\"value\":\"disabled\"}}}\nPOST1043_NO_MUTATION_PROVEN=true\nNO_REPO_WRITE=true\nNO_GIT_FETCH=true\nNO_GIT_COMMIT=true\nNO_GIT_PUSH_UPDATE=true\nNO_SYSTEMD_ACTION=true\nNO_BACKUP_STARTED=true\nNO_RESTORE_STARTED=true\nNO_RETENTION_STARTED=true\nNO_DELETE=true\nNO_MAIL_SENT=true\nDURATION_SEC=0.169\nTASK_RESULT=PASS_HOMELAB_BACKUP_POST1043_SOURCE_LAYOUT_RCA_READONLY\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\nWORKERS2_BACKUP_POST1043_SOURCE_LAYOUT_RCA_END=1\n" +} diff --git a/runtime/history/SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1.txt b/runtime/history/SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1.txt new file mode 100644 index 00000000..54e882f6 --- /dev/null +++ b/runtime/history/SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1.txt @@ -0,0 +1,63 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1 +STATUS=OK +RC=0 +HOST=pve01 +MODE=read-only +COMPONENT=homelab-backup-post1043-source-layout-rca +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=edf197cad57e54dbbd79ae1e96213fce205b6863e41cd0ae82b8ea1864e6990b +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=c7f0cbb29355d72d3b37116f5372cc05299435f27e3e0dd05928c79095b37a4f +SANITIZED_OUTPUT_SHA256=c7f0cbb29355d72d3b37116f5372cc05299435f27e3e0dd05928c79095b37a4f +OUTPUT_BEGIN +WORKERS2_BACKUP_POST1043_SOURCE_LAYOUT_RCA_BEGIN=1 +COMMAND_ID=SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1 +MODE=read-only +COMPONENT=homelab-backup-post1043-source-layout-rca +MUTATION_BOUNDARY=READ_ONLY_NO_REPO_WRITE_NO_GIT_FETCH_NO_COMMIT_NO_PUSH_NO_SYSTEMD_ACTION_NO_BACKUP_NO_RESTORE_NO_RETENTION_NO_DELETE_NO_MAIL +WORKTREE_HEAD=50bf24f8ee27f3d2e0d1cbc6c17b62c69ff06bae +WORKTREE_HEAD_EXPECTED=true +WORKTREE_CLEAN=true +WORKTREE_STATUS_LINES=[] +TRACKED_FILE_COUNT=555 +LIVE_TO_SOURCE_MATCH={"app_queue":{"live_path":"/usr/local/sbin/homelab-app-cloud-quorum-queue","live_sha256":"1f959049cca2710a2cb820cc1f6acab16399c6b6711b9e4522e0ecd49e0e4650","same_basename_paths":[],"same_sha_paths":[],"tracked_details":[]},"app_service":{"live_path":"/etc/systemd/system/homelab-app-cloud-quorum-queue.service","live_sha256":"70b78ba529c270ec61d26a123d656385a8b2e2e4206ccf623111fa6ed3854602","same_basename_paths":[],"same_sha_paths":[],"tracked_details":[]},"audit":{"live_path":"/usr/local/sbin/homelab-backup-audit","live_sha256":"1474c9ce58bbc1b3ae7437261d1bdb923232926fb2943c7c830253f8b284724c","same_basename_paths":["tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit"],"same_sha_paths":["tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit"],"tracked_details":[{"bytes":39160,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit","sha256":"1474c9ce58bbc1b3ae7437261d1bdb923232926fb2943c7c830253f8b284724c"}]},"retention":{"live_path":"/usr/local/sbin/homelab-backup-retention-gc","live_sha256":"8adb6c10f5911f39c53775b89eac3cd1823f1ed34b4caccade5279c213e998a3","same_basename_paths":["tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc"],"same_sha_paths":["tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc"],"tracked_details":[{"bytes":32975,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc","sha256":"8adb6c10f5911f39c53775b89eac3cd1823f1ed34b4caccade5279c213e998a3"}]}} +MATCHED_SOURCE_DIR_SIBLINGS={"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline":["tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/gfs-retention.json","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-alertmanager-backup-run","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.service","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.timer","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-gfs-policy","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.service","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.timer","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-target-registry","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.service","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.timer","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/targets.json"]} +TRACKED_APP_QUEUE_RELATED_FILES=[] +TRACKED_APP_QUEUE_REFERENCES=["HEAD:tasks/backup-gfs-lifecycle-remediation-v1/assets/targets.json:184: \"unit\": \"homelab-app-cloud-quorum-queue.timer\",","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:19:APP_QUEUE=/usr/local/sbin/homelab-app-cloud-quorum-queue","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:29:APP_TIMER=/etc/systemd/system/homelab-app-cloud-quorum-queue.timer","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:31:APP_SERVICE=/etc/systemd/system/homelab-app-cloud-quorum-queue.service","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:54:APP_TIMER_SHA=af2eedce3df53029b591d31715a3f3e6688ddb997b4823f487e70c339ce88078","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:199:source_hash_local APP_TIMER \"$APP_TIMER\" \"$APP_TIMER_SHA\"","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:422:for lock in /run/homelab-backup-heavy.lock /run/lock/homelab-vm-cloud-quorum-queue.lock /run/lock/homelab-app-cloud-quorum-queue.lock /run/lock/homelab-backup-dispatcher.lock; do","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc:13:APP_LOCK=/run/lock/homelab-app-cloud-quorum-queue.lock","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/targets.json:184: \"unit\": \"homelab-app-cloud-quorum-queue.timer\","] +SOURCE_LAYOUT_DECISION={"new_relpath":"changes/CR-2026-1005/homelab-backup-v2-app-scheduled","source_anchor":"changes/CR-2026-1005","strategy":"USE_EXPLICIT_CR_CHANGE_SOURCE_PATH"} +POST1043_UNIT_STATE={"homelab-app-cloud-quorum-queue.service":{"ActiveState":{"rc":0,"value":"failed"},"ExecMainStatus":{"rc":0,"value":"65"},"Result":{"rc":0,"value":"exit-code"},"SubState":{"rc":0,"value":"failed"},"UnitFileState":{"rc":0,"value":"static"}},"homelab-app-cloud-quorum-queue.timer":{"ActiveState":{"rc":0,"value":"inactive"},"ExecMainStatus":{"rc":0,"value":""},"Result":{"rc":0,"value":"success"},"SubState":{"rc":0,"value":"dead"},"UnitFileState":{"rc":0,"value":"disabled"}},"homelab-backup-retention-gc.service":{"ActiveState":{"rc":0,"value":"inactive"},"ExecMainStatus":{"rc":0,"value":"66"},"Result":{"rc":0,"value":"success"},"SubState":{"rc":0,"value":"dead"},"UnitFileState":{"rc":0,"value":"static"}},"homelab-backup-retention-gc.timer":{"ActiveState":{"rc":0,"value":"inactive"},"ExecMainStatus":{"rc":0,"value":""},"Result":{"rc":0,"value":"success"},"SubState":{"rc":0,"value":"dead"},"UnitFileState":{"rc":0,"value":"disabled"}}} +POST1043_NO_MUTATION_PROVEN=true +NO_REPO_WRITE=true +NO_GIT_FETCH=true +NO_GIT_COMMIT=true +NO_GIT_PUSH_UPDATE=true +NO_SYSTEMD_ACTION=true +NO_BACKUP_STARTED=true +NO_RESTORE_STARTED=true +NO_RETENTION_STARTED=true +NO_DELETE=true +NO_MAIL_SENT=true +DURATION_SEC=0.169 +TASK_RESULT=PASS_HOMELAB_BACKUP_POST1043_SOURCE_LAYOUT_RCA_READONLY +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +WORKERS2_BACKUP_POST1043_SOURCE_LAYOUT_RCA_END=1 + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 596c50c8..4d16240a 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SIGNALBOT-260921-ORDER-NORMALIZATION-DURABLE-PREFLIGHT-052FIXPREP2", + "command_id": "SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", - "component": "signalbot-order-normalization-durable-preflight", - "started_at_utc": "2026-09-21T03:24:10Z", - "finished_at_utc": "2026-09-21T03:24:11Z", + "component": "homelab-backup-post1043-source-layout-rca", + "started_at_utc": "2026-09-21T03:24:55Z", + "finished_at_utc": "2026-09-21T03:24:55Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "740c67a5b9c05f3461a233f923b383796190f8829a7480988383cc0e5a5c49eb", + "command_sha256": "edf197cad57e54dbbd79ae1e96213fce205b6863e41cd0ae82b8ea1864e6990b", "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": "7126decea2df7f2ccaddca0e16e6968b918d52647144fcc0e5657fae62173de6", - "sanitized_output_sha256": "7126decea2df7f2ccaddca0e16e6968b918d52647144fcc0e5657fae62173de6", + "raw_evidence_sha256": "c7f0cbb29355d72d3b37116f5372cc05299435f27e3e0dd05928c79095b37a4f", + "sanitized_output_sha256": "c7f0cbb29355d72d3b37116f5372cc05299435f27e3e0dd05928c79095b37a4f", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "SIGNALBOT052FIXPREP2_RESULT={\"guest\":{\"exitcode\":0,\"outer_rc\":0,\"stderr_present\":false,\"stdout\":\"PWD=/opt/stacks/8020-demonov-shadow\\n---FILES---\\n-rw------- 1 root root 324 Sep 17 20:32 .env\\n-rw-r--r-- 1 root root 3243 Sep 6 21:33 compose.yaml\\n---HASHES---\\n6e0d68a9e92a8a5269e5206db653adde49db4cc5c05c3c39ae6e2f6e74f27556 .env\\n6461532b0a04decc60fe1d1885990020e886d40de40c0523e34e2849600af061 compose.yaml\\n---ENV---\\nAPP_IMAGE=8020-demonov-shadow:signalbot-050r6-749073ae0f89\\nCODE_IDENTITY=749073ae0f894debc06fb0ffbf7a84abf9da531f\\nEXPERIMENT_ID=4a78c74b381b0424ccd22fa5466526cb324dfbb6855ffb3de8f0c3ac29dac397\\nRUNTIME_MANIFEST_ID=927480bca5dccc11c8e605151db035b4d678f3adb63a0c4ec27544dca0e45d14\\nCOLLECTION_START_AT=2026-09-18T00:00:00+00:00\\n---SERVICES---\\nrelay\\nshadow\\nworker\\ncollector\\n---CONTAINERS---\\n/demonov-shadow-8020-collector-1|8a65d323beda0410f180baf1e11144aaf53bf00f3329d758623bb711c1959f1f|sha256:bc7fe43a1627532cf2ffbea2489352bb97c9a9e445e097cd5837b80a9e90cc60|8020-demonov-shadow:signalbot-050r6-749073ae0f89|0|true|false|false\\n/demonov-shadow-8020-worker-1|8677c7c7388e1f023ddc214a703de207085d21ceebca7565f673dd80b93c414d|sha256:bc7fe43a1627532cf2ffbea2489352bb97c9a9e445e097cd5837b80a9e90cc60|8020-demonov-shadow:signalbot-050r6-749073ae0f89|0|true|false|false\\n/demonov-shadow-8020-relay-1|8c7689a8e46e72f94747f002af43d3a3b68c75af81f92d9287f0828c60738e6a|sha256:bc7fe43a1627532cf2ffbea2489352bb97c9a9e445e097cd5837b80a9e90cc60|8020-demonov-shadow:signalbot-050r6-749073ae0f89|0|true|false|false\\n/demonov-shadow-8020-shadow-1|80ab5a8cad2b0eb99c4d0b86d66de1a673e4e40ff1fb7ac52b444d5a657bddb3|sha256:bc7fe43a1627532cf2ffbea2489352bb97c9a9e445e097cd5837b80a9e90cc60|8020-demonov-shadow:signalbot-050r6-749073ae0f89|0|true|false|false\\n\"},\"repos\":[{\"branch\":\"cr-2026-0116-reliability-finality\",\"clean\":true,\"deployer_hits\":[\"7:import argparse\",\"253:def verify_compose_no_source_bind(compose_text: str) -> None:\",\"254: for raw in compose_text.splitlines():\",\"273: \\\"docker compose stop collector worker relay shadow\\\"\",\"319: f\\\"cd {STACK} && C=$(docker compose ps -q {service}) && \\\"\",\"320: 'test -n \\\"$C\\\" && docker inspect \\\"$C\\\"'\",\"337: f\\\"cd {STACK} && C=$(docker compose ps -q {service}) && \\\"\",\"338: 'test -n \\\"$C\\\" && docker inspect -f \\\"{{.Image}}\\\" \\\"$C\\\"'\",\"369: f\\\"docker inspect -f '{{{{.State.Status}}}}' \\\"\",\"375: f\\\"docker inspect -f '{{{{range .Config.Env}}}}{{{{println .}}}}{{{{end}}}}' \\\"\",\"446: f\\\"cd {STACK} && docker compose exec -T shadow python -c \\\"\",\"481: compose_path = root / \\\"deploy/8020-shadow/compose.yaml\\\"\",\"483: compose_text = compose_path.read_text(encoding=\\\"utf-8\\\")\",\"484: verify_compose_no_source_bind(compose_text)\",\"510: f\\\"docker build --build-arg PYTHON_BASE='{base_lock}' \\\"\",\"511: \\\"-f deploy/8020-shadow/Dockerfile \\\"\",\"513: f\\\"docker image inspect '{image_tag}' -f '{{{{.Id}}}}'\\\"\",\"523: f\\\"APP_IMAGE='{image_tag}' \\\"\",\"524: f\\\"CODE_IDENTITY='{code_head}' \\\"\",\"526: f\\\"RUNTIME_MANIFEST_ID='{placeholder_runtime}' \\\"\",\"528: \\\"docker compose -f compose.yaml config -q\\\"\",\"534: \\\"docker run --rm --read-only --tmpfs /tmp \\\"\",\"549: \\\"docker run --rm --read-only --tmpfs /tmp \\\"\",\"573: f\\\"docker run --rm --read-only --tmpfs /tmp \\\"\",\"592: f\\\"docker run --rm --cap-drop ALL \\\"\",\"612: from demonov_forward_map.code_identity import (\",\"613: package_code_identity,\",\"616: RuntimeDeploymentManifestV1,\",\"620: package_identity = package_code_identity(\",\"623: compose_hash = _sha256_bytes(compose_path.read_bytes())\",\"624: manifest = RuntimeDeploymentManifestV1.build(\",\"625: code_identity=code_head,\",\"629: compose_hash=compose_hash,\",\"634: expected_code_identity=code_head,\",\"644: \\\"runtime_manifest_id\\\": manifest.runtime_manifest_id,\",\"680: compose_path = root / \\\"deploy/8020-shadow/compose.yaml\\\"\",\"682: compose_text = compose_path.read_text(encoding=\\\"utf-8\\\")\",\"683: verify_compose_no_source_bind(compose_text)\",\"707: f\\\"docker build --build-arg PYTHON_BASE='{base_lock}' \\\"\",\"708: \\\"-f deploy/8020-shadow/Dockerfile \\\"\",\"710: f\\\"docker image inspect '{image_tag}' -f '{{{{.Id}}}}'\\\"\",\"715: from demonov_forward_map.code_identity import (\",\"716: package_code_identity,\",\"736: RuntimeDeploymentManifestV1,\",\"740: package_identity = package_code_identity(\",\"743: compose_hash = _sha256_bytes(\",\"744: compose_path.read_bytes()\",\"746: runtime_manifest = RuntimeDeploymentManifestV1.build(\",\"747: code_identity=code_head,\",\"751: compose_hash=compose_hash,\",\"756: expected_code_identity=code_head,\",\"768: code_identity=code_head,\",\"777: runtime_manifest_id=runtime_manifest.runtime_manifest_id,\",\"796: f\\\"cp {BUILD_DIR}/deploy/8020-shadow/compose.yaml \\\"\",\"797: f\\\"{STACK}/compose.yaml\\\"\",\"820: f\\\"APP_IMAGE={image_tag}\\\\n\\\"\",\"821: f\\\"CODE_IDENTITY={code_head}\\\\n\\\"\",\"823: f\\\"RUNTIME_MANIFEST_ID={runtime_manifest.runtime_manifest_id}\\\\n\\\"\",\"831: \\\"docker compose config -q\\\"\",\"836: \\\"docker compose up -d collector worker relay shadow\\\"\",\"907: \\\"runtime_manifest_id\\\": runtime_manifest.runtime_manifest_id,\",\"926:def main(argv: list[str] | None = None) -> int:\",\"927: parser = argparse.ArgumentParser()\"],\"files\":{\"ops/cr0116_deploy.py\":{\"bytes\":31515,\"sha256\":\"3ca98e06c9ca24ed0e2e96a8b882a2f9c66451f31b7429faff56c241ec700a20\"}},\"git_rc\":0,\"head\":\"ac7094a76ddc06f376d71a76432af7c2dd10ec7d\",\"path\":\"/root/8020-demonov-shadow-bot-cr0116\"},{\"branch\":\"cr-2026-0105-demonov-shadow-orchestrator\",\"clean\":true,\"git_rc\":0,\"head\":\"559948bcb6baead49a47d9953b0cc0090e332fd7\",\"path\":\"/root/8020-demonov-shadow-bot\"}]}\nTASK_RESULT=PASS_SIGNALBOT_052FIXPREP2_EVIDENCE_CAPTURED\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SIGNALBOT-260921-ORDER-NORMALIZATION-DURABLE-PREFLIGHT-052FIXPREP2\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" + "output": "WORKERS2_BACKUP_POST1043_SOURCE_LAYOUT_RCA_BEGIN=1\nCOMMAND_ID=SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1\nMODE=read-only\nCOMPONENT=homelab-backup-post1043-source-layout-rca\nMUTATION_BOUNDARY=READ_ONLY_NO_REPO_WRITE_NO_GIT_FETCH_NO_COMMIT_NO_PUSH_NO_SYSTEMD_ACTION_NO_BACKUP_NO_RESTORE_NO_RETENTION_NO_DELETE_NO_MAIL\nWORKTREE_HEAD=50bf24f8ee27f3d2e0d1cbc6c17b62c69ff06bae\nWORKTREE_HEAD_EXPECTED=true\nWORKTREE_CLEAN=true\nWORKTREE_STATUS_LINES=[]\nTRACKED_FILE_COUNT=555\nLIVE_TO_SOURCE_MATCH={\"app_queue\":{\"live_path\":\"/usr/local/sbin/homelab-app-cloud-quorum-queue\",\"live_sha256\":\"1f959049cca2710a2cb820cc1f6acab16399c6b6711b9e4522e0ecd49e0e4650\",\"same_basename_paths\":[],\"same_sha_paths\":[],\"tracked_details\":[]},\"app_service\":{\"live_path\":\"/etc/systemd/system/homelab-app-cloud-quorum-queue.service\",\"live_sha256\":\"70b78ba529c270ec61d26a123d656385a8b2e2e4206ccf623111fa6ed3854602\",\"same_basename_paths\":[],\"same_sha_paths\":[],\"tracked_details\":[]},\"audit\":{\"live_path\":\"/usr/local/sbin/homelab-backup-audit\",\"live_sha256\":\"1474c9ce58bbc1b3ae7437261d1bdb923232926fb2943c7c830253f8b284724c\",\"same_basename_paths\":[\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit\"],\"same_sha_paths\":[\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit\"],\"tracked_details\":[{\"bytes\":39160,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit\",\"sha256\":\"1474c9ce58bbc1b3ae7437261d1bdb923232926fb2943c7c830253f8b284724c\"}]},\"retention\":{\"live_path\":\"/usr/local/sbin/homelab-backup-retention-gc\",\"live_sha256\":\"8adb6c10f5911f39c53775b89eac3cd1823f1ed34b4caccade5279c213e998a3\",\"same_basename_paths\":[\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc\"],\"same_sha_paths\":[\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc\"],\"tracked_details\":[{\"bytes\":32975,\"path\":\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc\",\"sha256\":\"8adb6c10f5911f39c53775b89eac3cd1823f1ed34b4caccade5279c213e998a3\"}]}}\nMATCHED_SOURCE_DIR_SIBLINGS={\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline\":[\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/gfs-retention.json\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-alertmanager-backup-run\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.service\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.timer\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-gfs-policy\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.service\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.timer\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-target-registry\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.service\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.timer\",\"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/targets.json\"]}\nTRACKED_APP_QUEUE_RELATED_FILES=[]\nTRACKED_APP_QUEUE_REFERENCES=[\"HEAD:tasks/backup-gfs-lifecycle-remediation-v1/assets/targets.json:184: \\\"unit\\\": \\\"homelab-app-cloud-quorum-queue.timer\\\",\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:19:APP_QUEUE=/usr/local/sbin/homelab-app-cloud-quorum-queue\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:29:APP_TIMER=/etc/systemd/system/homelab-app-cloud-quorum-queue.timer\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:31:APP_SERVICE=/etc/systemd/system/homelab-app-cloud-quorum-queue.service\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:54:APP_TIMER_SHA=af2eedce3df53029b591d31715a3f3e6688ddb997b4823f487e70c339ce88078\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:199:source_hash_local APP_TIMER \\\"$APP_TIMER\\\" \\\"$APP_TIMER_SHA\\\"\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:422:for lock in /run/homelab-backup-heavy.lock /run/lock/homelab-vm-cloud-quorum-queue.lock /run/lock/homelab-app-cloud-quorum-queue.lock /run/lock/homelab-backup-dispatcher.lock; do\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc:13:APP_LOCK=/run/lock/homelab-app-cloud-quorum-queue.lock\",\"HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/targets.json:184: \\\"unit\\\": \\\"homelab-app-cloud-quorum-queue.timer\\\",\"]\nSOURCE_LAYOUT_DECISION={\"new_relpath\":\"changes/CR-2026-1005/homelab-backup-v2-app-scheduled\",\"source_anchor\":\"changes/CR-2026-1005\",\"strategy\":\"USE_EXPLICIT_CR_CHANGE_SOURCE_PATH\"}\nPOST1043_UNIT_STATE={\"homelab-app-cloud-quorum-queue.service\":{\"ActiveState\":{\"rc\":0,\"value\":\"failed\"},\"ExecMainStatus\":{\"rc\":0,\"value\":\"65\"},\"Result\":{\"rc\":0,\"value\":\"exit-code\"},\"SubState\":{\"rc\":0,\"value\":\"failed\"},\"UnitFileState\":{\"rc\":0,\"value\":\"static\"}},\"homelab-app-cloud-quorum-queue.timer\":{\"ActiveState\":{\"rc\":0,\"value\":\"inactive\"},\"ExecMainStatus\":{\"rc\":0,\"value\":\"\"},\"Result\":{\"rc\":0,\"value\":\"success\"},\"SubState\":{\"rc\":0,\"value\":\"dead\"},\"UnitFileState\":{\"rc\":0,\"value\":\"disabled\"}},\"homelab-backup-retention-gc.service\":{\"ActiveState\":{\"rc\":0,\"value\":\"inactive\"},\"ExecMainStatus\":{\"rc\":0,\"value\":\"66\"},\"Result\":{\"rc\":0,\"value\":\"success\"},\"SubState\":{\"rc\":0,\"value\":\"dead\"},\"UnitFileState\":{\"rc\":0,\"value\":\"static\"}},\"homelab-backup-retention-gc.timer\":{\"ActiveState\":{\"rc\":0,\"value\":\"inactive\"},\"ExecMainStatus\":{\"rc\":0,\"value\":\"\"},\"Result\":{\"rc\":0,\"value\":\"success\"},\"SubState\":{\"rc\":0,\"value\":\"dead\"},\"UnitFileState\":{\"rc\":0,\"value\":\"disabled\"}}}\nPOST1043_NO_MUTATION_PROVEN=true\nNO_REPO_WRITE=true\nNO_GIT_FETCH=true\nNO_GIT_COMMIT=true\nNO_GIT_PUSH_UPDATE=true\nNO_SYSTEMD_ACTION=true\nNO_BACKUP_STARTED=true\nNO_RESTORE_STARTED=true\nNO_RETENTION_STARTED=true\nNO_DELETE=true\nNO_MAIL_SENT=true\nDURATION_SEC=0.169\nTASK_RESULT=PASS_HOMELAB_BACKUP_POST1043_SOURCE_LAYOUT_RCA_READONLY\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\nWORKERS2_BACKUP_POST1043_SOURCE_LAYOUT_RCA_END=1\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 665f902a..54e882f6 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,15 +1,15 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SIGNALBOT-260921-ORDER-NORMALIZATION-DURABLE-PREFLIGHT-052FIXPREP2 +COMMAND_ID=SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1 STATUS=OK RC=0 HOST=pve01 MODE=read-only -COMPONENT=signalbot-order-normalization-durable-preflight +COMPONENT=homelab-backup-post1043-source-layout-rca REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=740c67a5b9c05f3461a233f923b383796190f8829a7480988383cc0e5a5c49eb +COMMAND_SHA256=edf197cad57e54dbbd79ae1e96213fce205b6863e41cd0ae82b8ea1864e6990b DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false @@ -24,12 +24,40 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=7126decea2df7f2ccaddca0e16e6968b918d52647144fcc0e5657fae62173de6 -SANITIZED_OUTPUT_SHA256=7126decea2df7f2ccaddca0e16e6968b918d52647144fcc0e5657fae62173de6 +RAW_EVIDENCE_SHA256=c7f0cbb29355d72d3b37116f5372cc05299435f27e3e0dd05928c79095b37a4f +SANITIZED_OUTPUT_SHA256=c7f0cbb29355d72d3b37116f5372cc05299435f27e3e0dd05928c79095b37a4f OUTPUT_BEGIN -SIGNALBOT052FIXPREP2_RESULT={"guest":{"exitcode":0,"outer_rc":0,"stderr_present":false,"stdout":"PWD=/opt/stacks/8020-demonov-shadow\n---FILES---\n-rw------- 1 root root 324 Sep 17 20:32 .env\n-rw-r--r-- 1 root root 3243 Sep 6 21:33 compose.yaml\n---HASHES---\n6e0d68a9e92a8a5269e5206db653adde49db4cc5c05c3c39ae6e2f6e74f27556 .env\n6461532b0a04decc60fe1d1885990020e886d40de40c0523e34e2849600af061 compose.yaml\n---ENV---\nAPP_IMAGE=8020-demonov-shadow:signalbot-050r6-749073ae0f89\nCODE_IDENTITY=749073ae0f894debc06fb0ffbf7a84abf9da531f\nEXPERIMENT_ID=4a78c74b381b0424ccd22fa5466526cb324dfbb6855ffb3de8f0c3ac29dac397\nRUNTIME_MANIFEST_ID=927480bca5dccc11c8e605151db035b4d678f3adb63a0c4ec27544dca0e45d14\nCOLLECTION_START_AT=2026-09-18T00:00:00+00:00\n---SERVICES---\nrelay\nshadow\nworker\ncollector\n---CONTAINERS---\n/demonov-shadow-8020-collector-1|8a65d323beda0410f180baf1e11144aaf53bf00f3329d758623bb711c1959f1f|sha256:bc7fe43a1627532cf2ffbea2489352bb97c9a9e445e097cd5837b80a9e90cc60|8020-demonov-shadow:signalbot-050r6-749073ae0f89|0|true|false|false\n/demonov-shadow-8020-worker-1|8677c7c7388e1f023ddc214a703de207085d21ceebca7565f673dd80b93c414d|sha256:bc7fe43a1627532cf2ffbea2489352bb97c9a9e445e097cd5837b80a9e90cc60|8020-demonov-shadow:signalbot-050r6-749073ae0f89|0|true|false|false\n/demonov-shadow-8020-relay-1|8c7689a8e46e72f94747f002af43d3a3b68c75af81f92d9287f0828c60738e6a|sha256:bc7fe43a1627532cf2ffbea2489352bb97c9a9e445e097cd5837b80a9e90cc60|8020-demonov-shadow:signalbot-050r6-749073ae0f89|0|true|false|false\n/demonov-shadow-8020-shadow-1|80ab5a8cad2b0eb99c4d0b86d66de1a673e4e40ff1fb7ac52b444d5a657bddb3|sha256:bc7fe43a1627532cf2ffbea2489352bb97c9a9e445e097cd5837b80a9e90cc60|8020-demonov-shadow:signalbot-050r6-749073ae0f89|0|true|false|false\n"},"repos":[{"branch":"cr-2026-0116-reliability-finality","clean":true,"deployer_hits":["7:import argparse","253:def verify_compose_no_source_bind(compose_text: str) -> None:","254: for raw in compose_text.splitlines():","273: \"docker compose stop collector worker relay shadow\"","319: f\"cd {STACK} && C=$(docker compose ps -q {service}) && \"","320: 'test -n \"$C\" && docker inspect \"$C\"'","337: f\"cd {STACK} && C=$(docker compose ps -q {service}) && \"","338: 'test -n \"$C\" && docker inspect -f \"{{.Image}}\" \"$C\"'","369: f\"docker inspect -f '{{{{.State.Status}}}}' \"","375: f\"docker inspect -f '{{{{range .Config.Env}}}}{{{{println .}}}}{{{{end}}}}' \"","446: f\"cd {STACK} && docker compose exec -T shadow python -c \"","481: compose_path = root / \"deploy/8020-shadow/compose.yaml\"","483: compose_text = compose_path.read_text(encoding=\"utf-8\")","484: verify_compose_no_source_bind(compose_text)","510: f\"docker build --build-arg PYTHON_BASE='{base_lock}' \"","511: \"-f deploy/8020-shadow/Dockerfile \"","513: f\"docker image inspect '{image_tag}' -f '{{{{.Id}}}}'\"","523: f\"APP_IMAGE='{image_tag}' \"","524: f\"CODE_IDENTITY='{code_head}' \"","526: f\"RUNTIME_MANIFEST_ID='{placeholder_runtime}' \"","528: \"docker compose -f compose.yaml config -q\"","534: \"docker run --rm --read-only --tmpfs /tmp \"","549: \"docker run --rm --read-only --tmpfs /tmp \"","573: f\"docker run --rm --read-only --tmpfs /tmp \"","592: f\"docker run --rm --cap-drop ALL \"","612: from demonov_forward_map.code_identity import (","613: package_code_identity,","616: RuntimeDeploymentManifestV1,","620: package_identity = package_code_identity(","623: compose_hash = _sha256_bytes(compose_path.read_bytes())","624: manifest = RuntimeDeploymentManifestV1.build(","625: code_identity=code_head,","629: compose_hash=compose_hash,","634: expected_code_identity=code_head,","644: \"runtime_manifest_id\": manifest.runtime_manifest_id,","680: compose_path = root / \"deploy/8020-shadow/compose.yaml\"","682: compose_text = compose_path.read_text(encoding=\"utf-8\")","683: verify_compose_no_source_bind(compose_text)","707: f\"docker build --build-arg PYTHON_BASE='{base_lock}' \"","708: \"-f deploy/8020-shadow/Dockerfile \"","710: f\"docker image inspect '{image_tag}' -f '{{{{.Id}}}}'\"","715: from demonov_forward_map.code_identity import (","716: package_code_identity,","736: RuntimeDeploymentManifestV1,","740: package_identity = package_code_identity(","743: compose_hash = _sha256_bytes(","744: compose_path.read_bytes()","746: runtime_manifest = RuntimeDeploymentManifestV1.build(","747: code_identity=code_head,","751: compose_hash=compose_hash,","756: expected_code_identity=code_head,","768: code_identity=code_head,","777: runtime_manifest_id=runtime_manifest.runtime_manifest_id,","796: f\"cp {BUILD_DIR}/deploy/8020-shadow/compose.yaml \"","797: f\"{STACK}/compose.yaml\"","820: f\"APP_IMAGE={image_tag}\\n\"","821: f\"CODE_IDENTITY={code_head}\\n\"","823: f\"RUNTIME_MANIFEST_ID={runtime_manifest.runtime_manifest_id}\\n\"","831: \"docker compose config -q\"","836: \"docker compose up -d collector worker relay shadow\"","907: \"runtime_manifest_id\": runtime_manifest.runtime_manifest_id,","926:def main(argv: list[str] | None = None) -> int:","927: parser = argparse.ArgumentParser()"],"files":{"ops/cr0116_deploy.py":{"bytes":31515,"sha256":"3ca98e06c9ca24ed0e2e96a8b882a2f9c66451f31b7429faff56c241ec700a20"}},"git_rc":0,"head":"ac7094a76ddc06f376d71a76432af7c2dd10ec7d","path":"/root/8020-demonov-shadow-bot-cr0116"},{"branch":"cr-2026-0105-demonov-shadow-orchestrator","clean":true,"git_rc":0,"head":"559948bcb6baead49a47d9953b0cc0090e332fd7","path":"/root/8020-demonov-shadow-bot"}]} -TASK_RESULT=PASS_SIGNALBOT_052FIXPREP2_EVIDENCE_CAPTURED -HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SIGNALBOT-260921-ORDER-NORMALIZATION-DURABLE-PREFLIGHT-052FIXPREP2","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null} +WORKERS2_BACKUP_POST1043_SOURCE_LAYOUT_RCA_BEGIN=1 +COMMAND_ID=SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1 +MODE=read-only +COMPONENT=homelab-backup-post1043-source-layout-rca +MUTATION_BOUNDARY=READ_ONLY_NO_REPO_WRITE_NO_GIT_FETCH_NO_COMMIT_NO_PUSH_NO_SYSTEMD_ACTION_NO_BACKUP_NO_RESTORE_NO_RETENTION_NO_DELETE_NO_MAIL +WORKTREE_HEAD=50bf24f8ee27f3d2e0d1cbc6c17b62c69ff06bae +WORKTREE_HEAD_EXPECTED=true +WORKTREE_CLEAN=true +WORKTREE_STATUS_LINES=[] +TRACKED_FILE_COUNT=555 +LIVE_TO_SOURCE_MATCH={"app_queue":{"live_path":"/usr/local/sbin/homelab-app-cloud-quorum-queue","live_sha256":"1f959049cca2710a2cb820cc1f6acab16399c6b6711b9e4522e0ecd49e0e4650","same_basename_paths":[],"same_sha_paths":[],"tracked_details":[]},"app_service":{"live_path":"/etc/systemd/system/homelab-app-cloud-quorum-queue.service","live_sha256":"70b78ba529c270ec61d26a123d656385a8b2e2e4206ccf623111fa6ed3854602","same_basename_paths":[],"same_sha_paths":[],"tracked_details":[]},"audit":{"live_path":"/usr/local/sbin/homelab-backup-audit","live_sha256":"1474c9ce58bbc1b3ae7437261d1bdb923232926fb2943c7c830253f8b284724c","same_basename_paths":["tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit"],"same_sha_paths":["tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit"],"tracked_details":[{"bytes":39160,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit","sha256":"1474c9ce58bbc1b3ae7437261d1bdb923232926fb2943c7c830253f8b284724c"}]},"retention":{"live_path":"/usr/local/sbin/homelab-backup-retention-gc","live_sha256":"8adb6c10f5911f39c53775b89eac3cd1823f1ed34b4caccade5279c213e998a3","same_basename_paths":["tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc"],"same_sha_paths":["tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc"],"tracked_details":[{"bytes":32975,"path":"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc","sha256":"8adb6c10f5911f39c53775b89eac3cd1823f1ed34b4caccade5279c213e998a3"}]}} +MATCHED_SOURCE_DIR_SIBLINGS={"tasks/backup-v2-health-alerting-remediation-v1/assets/baseline":["tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/gfs-retention.json","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-alertmanager-backup-run","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.service","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit.timer","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-gfs-policy","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.service","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc.timer","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-target-registry","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.service","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-v2.timer","tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/targets.json"]} +TRACKED_APP_QUEUE_RELATED_FILES=[] +TRACKED_APP_QUEUE_REFERENCES=["HEAD:tasks/backup-gfs-lifecycle-remediation-v1/assets/targets.json:184: \"unit\": \"homelab-app-cloud-quorum-queue.timer\",","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:19:APP_QUEUE=/usr/local/sbin/homelab-app-cloud-quorum-queue","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:29:APP_TIMER=/etc/systemd/system/homelab-app-cloud-quorum-queue.timer","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:31:APP_SERVICE=/etc/systemd/system/homelab-app-cloud-quorum-queue.service","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:54:APP_TIMER_SHA=af2eedce3df53029b591d31715a3f3e6688ddb997b4823f487e70c339ce88078","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:199:source_hash_local APP_TIMER \"$APP_TIMER\" \"$APP_TIMER_SHA\"","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-audit:422:for lock in /run/homelab-backup-heavy.lock /run/lock/homelab-vm-cloud-quorum-queue.lock /run/lock/homelab-app-cloud-quorum-queue.lock /run/lock/homelab-backup-dispatcher.lock; do","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/homelab-backup-retention-gc:13:APP_LOCK=/run/lock/homelab-app-cloud-quorum-queue.lock","HEAD:tasks/backup-v2-health-alerting-remediation-v1/assets/baseline/targets.json:184: \"unit\": \"homelab-app-cloud-quorum-queue.timer\","] +SOURCE_LAYOUT_DECISION={"new_relpath":"changes/CR-2026-1005/homelab-backup-v2-app-scheduled","source_anchor":"changes/CR-2026-1005","strategy":"USE_EXPLICIT_CR_CHANGE_SOURCE_PATH"} +POST1043_UNIT_STATE={"homelab-app-cloud-quorum-queue.service":{"ActiveState":{"rc":0,"value":"failed"},"ExecMainStatus":{"rc":0,"value":"65"},"Result":{"rc":0,"value":"exit-code"},"SubState":{"rc":0,"value":"failed"},"UnitFileState":{"rc":0,"value":"static"}},"homelab-app-cloud-quorum-queue.timer":{"ActiveState":{"rc":0,"value":"inactive"},"ExecMainStatus":{"rc":0,"value":""},"Result":{"rc":0,"value":"success"},"SubState":{"rc":0,"value":"dead"},"UnitFileState":{"rc":0,"value":"disabled"}},"homelab-backup-retention-gc.service":{"ActiveState":{"rc":0,"value":"inactive"},"ExecMainStatus":{"rc":0,"value":"66"},"Result":{"rc":0,"value":"success"},"SubState":{"rc":0,"value":"dead"},"UnitFileState":{"rc":0,"value":"static"}},"homelab-backup-retention-gc.timer":{"ActiveState":{"rc":0,"value":"inactive"},"ExecMainStatus":{"rc":0,"value":""},"Result":{"rc":0,"value":"success"},"SubState":{"rc":0,"value":"dead"},"UnitFileState":{"rc":0,"value":"disabled"}}} +POST1043_NO_MUTATION_PROVEN=true +NO_REPO_WRITE=true +NO_GIT_FETCH=true +NO_GIT_COMMIT=true +NO_GIT_PUSH_UPDATE=true +NO_SYSTEMD_ACTION=true +NO_BACKUP_STARTED=true +NO_RESTORE_STARTED=true +NO_RETENTION_STARTED=true +NO_DELETE=true +NO_MAIL_SENT=true +DURATION_SEC=0.169 +TASK_RESULT=PASS_HOMELAB_BACKUP_POST1043_SOURCE_LAYOUT_RCA_READONLY +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260921-HOMELAB-BACKUP-POST1043-SOURCE-LAYOUT-RCA-READONLY-1044R1","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +WORKERS2_BACKUP_POST1043_SOURCE_LAYOUT_RCA_END=1 OUTPUT_END CHAT_OUTPUT_END