diff --git a/runtime/history/MINIMAL-RESULT-FEED-PLAN-20260727T084859Z.json b/runtime/history/MINIMAL-RESULT-FEED-PLAN-20260727T084859Z.json new file mode 100644 index 0000000..8a99dbc --- /dev/null +++ b/runtime/history/MINIMAL-RESULT-FEED-PLAN-20260727T084859Z.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "MINIMAL-RESULT-FEED-PLAN-20260727T084859Z", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "verify", + "component": "result-integration", + "started_at_utc": "2026-07-27T08:50:53Z", + "finished_at_utc": "2026-07-27T08:50:53Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", + "command_sha256": "681260cb555ddf0930b26fb4aea15a10d5e8c9e6834e30754cb9eaecf659948a", + "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": "9a09864d952dce1a9f67544e66c2c6f7b4ca54664fd3045c6210922293b1c16f", + "sanitized_output_sha256": "9a09864d952dce1a9f67544e66c2c6f7b4ca54664fd3045c6210922293b1c16f", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "{\"PLAN_SHA256\":\"7635b754e1881b6dc050f462a36662f9334dea3f2cbc13459376f6e64d4b7c2e\",\"backup_changed\":false,\"changes_made\":false,\"cluster_changed\":false,\"functional_tests\":{\"adapter_compile\":true,\"adapter_function_added\":true,\"adapter_terminal_builder_added\":true,\"exact_two_terminal_results\":true,\"fail_result_complete\":true,\"forbidden_scan_clean\":true,\"free_text_not_published\":true,\"invalid_identity_excluded\":true,\"no_cryptographic_key_code\":true,\"no_new_public_route\":true,\"ok_result_complete\":true,\"portal_compile\":true,\"portal_health_version_3\":true,\"portal_recent_operation\":true,\"portal_recent_results_field\":true,\"runner_unchanged\":true,\"running_excluded\":true,\"sequence_is_sha256\":true,\"sequence_stable\":true},\"gitea_changed\":false,\"plan\":{\"anti_regression\":[\"adapter_compile\",\"adapter_function_added\",\"adapter_terminal_builder_added\",\"exact_two_terminal_results\",\"fail_result_complete\",\"forbidden_scan_clean\",\"free_text_not_published\",\"invalid_identity_excluded\",\"no_cryptographic_key_code\",\"no_new_public_route\",\"ok_result_complete\",\"portal_compile\",\"portal_health_version_3\",\"portal_recent_operation\",\"portal_recent_results_field\",\"runner_unchanged\",\"running_excluded\",\"sequence_is_sha256\",\"sequence_stable\"],\"apply_sequence\":[\"verify exact source SHA and no other RUNNING state\",\"create fresh rollback copies\",\"write candidate files to same-filesystem temporary paths\",\"compile candidates before service stop\",\"stop Portal\",\"stop Adapter\",\"atomically replace Adapter and Portal\",\"start Adapter and verify stable health\",\"start Portal and verify healthz version 3\",\"verify current APPLY result appears by exact identity\"],\"change_flags\":{\"backup\":false,\"cluster\":false,\"gitea\":false,\"production\":true},\"operation\":\"INSTALL_MINIMAL_RECENT_RESULT_FEED\",\"postconditions\":[\"Adapter and Portal target SHA installed\",\"Runner SHA unchanged\",\"no files or keys created\",\"Adapter and Portal active with NRestarts=0\",\"healthz version is 3\",\"recent_results contains exact APPLY identity\",\"terminal states only\",\"free-text error message is absent\",\"sanitized flags are fixed safe values\",\"backup, cluster and Gitea unchanged\"],\"public_contract\":{\"cache_policy\":\"existing Portal no-store policy\",\"free_text_published\":false,\"identity\":[\"command_id\",\"capsule_sha256\"],\"max_results\":32,\"new_public_routes\":false,\"signing_keys\":false,\"terminal_statuses\":[\"OK\",\"FAIL\",\"BLOCKED\"],\"url\":\"https://run.vpn.gram1.ru/healthz\",\"version\":3},\"risk\":\"REVERSIBLE\",\"rollback\":{\"diagnostics_before_rollback\":[\"installed SHA and file metadata\",\"systemd show for Adapter and Portal\",\"journals since APPLY start\",\"local Adapter socket response\",\"public healthz response\",\"process tree\",\"state summary\"],\"fresh_directory\":\"/var/lib/homelab-change-rollback/MINIMAL-RESULT-FEED-APPLY-20260727\",\"restore_only\":[\"/usr/local/sbin/homelab-command-adapter\",\"/usr/local/sbin/homelab-command-portal\"]},\"schema\":1,\"scope\":{\"backup\":false,\"cluster\":false,\"create\":[],\"gitea\":false,\"modify\":[\"/usr/local/sbin/homelab-command-adapter\",\"/usr/local/sbin/homelab-command-portal\"],\"preserve\":[\"/usr/local/sbin/homelab-chat-run\",\"Adapter state files\",\"evidence objects\",\"Gitea runtime publication\",\"backup\",\"cluster\"],\"production\":true},\"source_lock\":{\"/usr/local/sbin/homelab-chat-run\":\"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\",\"/usr/local/sbin/homelab-command-adapter\":\"8d0af84dcfcf6ddbfd1c4e6cbb059cef66b4cfc6c75bfd66da649acc229c7f5e\",\"/usr/local/sbin/homelab-command-portal\":\"8056faf4ef6348f0b06319ad3c49fbfeeadf25b6370f857ea19569bd27652ee2\"},\"target\":\"pve01\",\"target_lock\":{\"/usr/local/sbin/homelab-chat-run\":\"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\",\"/usr/local/sbin/homelab-command-adapter\":\"a1a7a615c99568bf915d084cc476f0ebf54ab0eedf3ecd578c4b0e072f58c43d\",\"/usr/local/sbin/homelab-command-portal\":\"493eed48b5ed23b77ea3f554e8264438c0aea91744efb98363a325b4548b179b\"}},\"preconditions\":{\"adapter_healthy\":true,\"adapter_source_lock\":true,\"current_running_once\":true,\"host_pve01\":true,\"no_invalid_states\":true,\"no_other_running\":true,\"portal_healthy\":true,\"portal_source_lock\":true,\"root\":true,\"runner_source_lock\":true},\"rollback_started\":false,\"runner_sha256\":\"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\",\"source_adapter_sha256\":\"8d0af84dcfcf6ddbfd1c4e6cbb059cef66b4cfc6c75bfd66da649acc229c7f5e\",\"source_portal_sha256\":\"8056faf4ef6348f0b06319ad3c49fbfeeadf25b6370f857ea19569bd27652ee2\",\"status\":\"PASS\",\"target_adapter_sha256\":\"a1a7a615c99568bf915d084cc476f0ebf54ab0eedf3ecd578c4b0e072f58c43d\",\"target_portal_sha256\":\"493eed48b5ed23b77ea3f554e8264438c0aea91744efb98363a325b4548b179b\"}\n" +} diff --git a/runtime/history/MINIMAL-RESULT-FEED-PLAN-20260727T084859Z.txt b/runtime/history/MINIMAL-RESULT-FEED-PLAN-20260727T084859Z.txt new file mode 100644 index 0000000..bec5b09 --- /dev/null +++ b/runtime/history/MINIMAL-RESULT-FEED-PLAN-20260727T084859Z.txt @@ -0,0 +1,33 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=MINIMAL-RESULT-FEED-PLAN-20260727T084859Z +STATUS=OK +RC=0 +HOST=pve01 +MODE=verify +COMPONENT=result-integration +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 +COMMAND_SHA256=681260cb555ddf0930b26fb4aea15a10d5e8c9e6834e30754cb9eaecf659948a +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=9a09864d952dce1a9f67544e66c2c6f7b4ca54664fd3045c6210922293b1c16f +SANITIZED_OUTPUT_SHA256=9a09864d952dce1a9f67544e66c2c6f7b4ca54664fd3045c6210922293b1c16f +OUTPUT_BEGIN +{"PLAN_SHA256":"7635b754e1881b6dc050f462a36662f9334dea3f2cbc13459376f6e64d4b7c2e","backup_changed":false,"changes_made":false,"cluster_changed":false,"functional_tests":{"adapter_compile":true,"adapter_function_added":true,"adapter_terminal_builder_added":true,"exact_two_terminal_results":true,"fail_result_complete":true,"forbidden_scan_clean":true,"free_text_not_published":true,"invalid_identity_excluded":true,"no_cryptographic_key_code":true,"no_new_public_route":true,"ok_result_complete":true,"portal_compile":true,"portal_health_version_3":true,"portal_recent_operation":true,"portal_recent_results_field":true,"runner_unchanged":true,"running_excluded":true,"sequence_is_sha256":true,"sequence_stable":true},"gitea_changed":false,"plan":{"anti_regression":["adapter_compile","adapter_function_added","adapter_terminal_builder_added","exact_two_terminal_results","fail_result_complete","forbidden_scan_clean","free_text_not_published","invalid_identity_excluded","no_cryptographic_key_code","no_new_public_route","ok_result_complete","portal_compile","portal_health_version_3","portal_recent_operation","portal_recent_results_field","runner_unchanged","running_excluded","sequence_is_sha256","sequence_stable"],"apply_sequence":["verify exact source SHA and no other RUNNING state","create fresh rollback copies","write candidate files to same-filesystem temporary paths","compile candidates before service stop","stop Portal","stop Adapter","atomically replace Adapter and Portal","start Adapter and verify stable health","start Portal and verify healthz version 3","verify current APPLY result appears by exact identity"],"change_flags":{"backup":false,"cluster":false,"gitea":false,"production":true},"operation":"INSTALL_MINIMAL_RECENT_RESULT_FEED","postconditions":["Adapter and Portal target SHA installed","Runner SHA unchanged","no files or keys created","Adapter and Portal active with NRestarts=0","healthz version is 3","recent_results contains exact APPLY identity","terminal states only","free-text error message is absent","sanitized flags are fixed safe values","backup, cluster and Gitea unchanged"],"public_contract":{"cache_policy":"existing Portal no-store policy","free_text_published":false,"identity":["command_id","capsule_sha256"],"max_results":32,"new_public_routes":false,"signing_keys":false,"terminal_statuses":["OK","FAIL","BLOCKED"],"url":"https://run.vpn.gram1.ru/healthz","version":3},"risk":"REVERSIBLE","rollback":{"diagnostics_before_rollback":["installed SHA and file metadata","systemd show for Adapter and Portal","journals since APPLY start","local Adapter socket response","public healthz response","process tree","state summary"],"fresh_directory":"/var/lib/homelab-change-rollback/MINIMAL-RESULT-FEED-APPLY-20260727","restore_only":["/usr/local/sbin/homelab-command-adapter","/usr/local/sbin/homelab-command-portal"]},"schema":1,"scope":{"backup":false,"cluster":false,"create":[],"gitea":false,"modify":["/usr/local/sbin/homelab-command-adapter","/usr/local/sbin/homelab-command-portal"],"preserve":["/usr/local/sbin/homelab-chat-run","Adapter state files","evidence objects","Gitea runtime publication","backup","cluster"],"production":true},"source_lock":{"/usr/local/sbin/homelab-chat-run":"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d","/usr/local/sbin/homelab-command-adapter":"8d0af84dcfcf6ddbfd1c4e6cbb059cef66b4cfc6c75bfd66da649acc229c7f5e","/usr/local/sbin/homelab-command-portal":"8056faf4ef6348f0b06319ad3c49fbfeeadf25b6370f857ea19569bd27652ee2"},"target":"pve01","target_lock":{"/usr/local/sbin/homelab-chat-run":"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d","/usr/local/sbin/homelab-command-adapter":"a1a7a615c99568bf915d084cc476f0ebf54ab0eedf3ecd578c4b0e072f58c43d","/usr/local/sbin/homelab-command-portal":"493eed48b5ed23b77ea3f554e8264438c0aea91744efb98363a325b4548b179b"}},"preconditions":{"adapter_healthy":true,"adapter_source_lock":true,"current_running_once":true,"host_pve01":true,"no_invalid_states":true,"no_other_running":true,"portal_healthy":true,"portal_source_lock":true,"root":true,"runner_source_lock":true},"rollback_started":false,"runner_sha256":"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d","source_adapter_sha256":"8d0af84dcfcf6ddbfd1c4e6cbb059cef66b4cfc6c75bfd66da649acc229c7f5e","source_portal_sha256":"8056faf4ef6348f0b06319ad3c49fbfeeadf25b6370f857ea19569bd27652ee2","status":"PASS","target_adapter_sha256":"a1a7a615c99568bf915d084cc476f0ebf54ab0eedf3ecd578c4b0e072f58c43d","target_portal_sha256":"493eed48b5ed23b77ea3f554e8264438c0aea91744efb98363a325b4548b179b"} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index cf56aa9..8a99dbc 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1 +1,38 @@ -{"schema_version":1,"channel":"homelab-runtime","command_id":"CONTEXT-AUTO-20260727T081701Z","status":"OK","rc":0,"host":"pve01","mode":"read-only","component":"cluster-context","started_at_utc":"2026-07-27T08:17:01Z","finished_at_utc":"2026-07-27T08:17:03Z","reference_register_checked":true,"reference_sha256":"5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e","error_register_checked":true,"error_register_sha256":"24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83","changes_made":false,"sanitized":true,"secrets_included":false,"private_addresses_included":false,"output":"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK"} +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "MINIMAL-RESULT-FEED-PLAN-20260727T084859Z", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "verify", + "component": "result-integration", + "started_at_utc": "2026-07-27T08:50:53Z", + "finished_at_utc": "2026-07-27T08:50:53Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", + "command_sha256": "681260cb555ddf0930b26fb4aea15a10d5e8c9e6834e30754cb9eaecf659948a", + "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": "9a09864d952dce1a9f67544e66c2c6f7b4ca54664fd3045c6210922293b1c16f", + "sanitized_output_sha256": "9a09864d952dce1a9f67544e66c2c6f7b4ca54664fd3045c6210922293b1c16f", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "{\"PLAN_SHA256\":\"7635b754e1881b6dc050f462a36662f9334dea3f2cbc13459376f6e64d4b7c2e\",\"backup_changed\":false,\"changes_made\":false,\"cluster_changed\":false,\"functional_tests\":{\"adapter_compile\":true,\"adapter_function_added\":true,\"adapter_terminal_builder_added\":true,\"exact_two_terminal_results\":true,\"fail_result_complete\":true,\"forbidden_scan_clean\":true,\"free_text_not_published\":true,\"invalid_identity_excluded\":true,\"no_cryptographic_key_code\":true,\"no_new_public_route\":true,\"ok_result_complete\":true,\"portal_compile\":true,\"portal_health_version_3\":true,\"portal_recent_operation\":true,\"portal_recent_results_field\":true,\"runner_unchanged\":true,\"running_excluded\":true,\"sequence_is_sha256\":true,\"sequence_stable\":true},\"gitea_changed\":false,\"plan\":{\"anti_regression\":[\"adapter_compile\",\"adapter_function_added\",\"adapter_terminal_builder_added\",\"exact_two_terminal_results\",\"fail_result_complete\",\"forbidden_scan_clean\",\"free_text_not_published\",\"invalid_identity_excluded\",\"no_cryptographic_key_code\",\"no_new_public_route\",\"ok_result_complete\",\"portal_compile\",\"portal_health_version_3\",\"portal_recent_operation\",\"portal_recent_results_field\",\"runner_unchanged\",\"running_excluded\",\"sequence_is_sha256\",\"sequence_stable\"],\"apply_sequence\":[\"verify exact source SHA and no other RUNNING state\",\"create fresh rollback copies\",\"write candidate files to same-filesystem temporary paths\",\"compile candidates before service stop\",\"stop Portal\",\"stop Adapter\",\"atomically replace Adapter and Portal\",\"start Adapter and verify stable health\",\"start Portal and verify healthz version 3\",\"verify current APPLY result appears by exact identity\"],\"change_flags\":{\"backup\":false,\"cluster\":false,\"gitea\":false,\"production\":true},\"operation\":\"INSTALL_MINIMAL_RECENT_RESULT_FEED\",\"postconditions\":[\"Adapter and Portal target SHA installed\",\"Runner SHA unchanged\",\"no files or keys created\",\"Adapter and Portal active with NRestarts=0\",\"healthz version is 3\",\"recent_results contains exact APPLY identity\",\"terminal states only\",\"free-text error message is absent\",\"sanitized flags are fixed safe values\",\"backup, cluster and Gitea unchanged\"],\"public_contract\":{\"cache_policy\":\"existing Portal no-store policy\",\"free_text_published\":false,\"identity\":[\"command_id\",\"capsule_sha256\"],\"max_results\":32,\"new_public_routes\":false,\"signing_keys\":false,\"terminal_statuses\":[\"OK\",\"FAIL\",\"BLOCKED\"],\"url\":\"https://run.vpn.gram1.ru/healthz\",\"version\":3},\"risk\":\"REVERSIBLE\",\"rollback\":{\"diagnostics_before_rollback\":[\"installed SHA and file metadata\",\"systemd show for Adapter and Portal\",\"journals since APPLY start\",\"local Adapter socket response\",\"public healthz response\",\"process tree\",\"state summary\"],\"fresh_directory\":\"/var/lib/homelab-change-rollback/MINIMAL-RESULT-FEED-APPLY-20260727\",\"restore_only\":[\"/usr/local/sbin/homelab-command-adapter\",\"/usr/local/sbin/homelab-command-portal\"]},\"schema\":1,\"scope\":{\"backup\":false,\"cluster\":false,\"create\":[],\"gitea\":false,\"modify\":[\"/usr/local/sbin/homelab-command-adapter\",\"/usr/local/sbin/homelab-command-portal\"],\"preserve\":[\"/usr/local/sbin/homelab-chat-run\",\"Adapter state files\",\"evidence objects\",\"Gitea runtime publication\",\"backup\",\"cluster\"],\"production\":true},\"source_lock\":{\"/usr/local/sbin/homelab-chat-run\":\"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\",\"/usr/local/sbin/homelab-command-adapter\":\"8d0af84dcfcf6ddbfd1c4e6cbb059cef66b4cfc6c75bfd66da649acc229c7f5e\",\"/usr/local/sbin/homelab-command-portal\":\"8056faf4ef6348f0b06319ad3c49fbfeeadf25b6370f857ea19569bd27652ee2\"},\"target\":\"pve01\",\"target_lock\":{\"/usr/local/sbin/homelab-chat-run\":\"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\",\"/usr/local/sbin/homelab-command-adapter\":\"a1a7a615c99568bf915d084cc476f0ebf54ab0eedf3ecd578c4b0e072f58c43d\",\"/usr/local/sbin/homelab-command-portal\":\"493eed48b5ed23b77ea3f554e8264438c0aea91744efb98363a325b4548b179b\"}},\"preconditions\":{\"adapter_healthy\":true,\"adapter_source_lock\":true,\"current_running_once\":true,\"host_pve01\":true,\"no_invalid_states\":true,\"no_other_running\":true,\"portal_healthy\":true,\"portal_source_lock\":true,\"root\":true,\"runner_source_lock\":true},\"rollback_started\":false,\"runner_sha256\":\"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\",\"source_adapter_sha256\":\"8d0af84dcfcf6ddbfd1c4e6cbb059cef66b4cfc6c75bfd66da649acc229c7f5e\",\"source_portal_sha256\":\"8056faf4ef6348f0b06319ad3c49fbfeeadf25b6370f857ea19569bd27652ee2\",\"status\":\"PASS\",\"target_adapter_sha256\":\"a1a7a615c99568bf915d084cc476f0ebf54ab0eedf3ecd578c4b0e072f58c43d\",\"target_portal_sha256\":\"493eed48b5ed23b77ea3f554e8264438c0aea91744efb98363a325b4548b179b\"}\n" +} diff --git a/runtime/latest.txt b/runtime/latest.txt index 1b37995..bec5b09 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,163 +1,33 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=CONTEXT-AUTO-[PRIVATE_IP]701Z +COMMAND_ID=MINIMAL-RESULT-FEED-PLAN-20260727T084859Z STATUS=OK RC=0 HOST=pve01 -COMPONENT=cluster-context -REFERENCE_SHA[PRIVATE_IP]f8edc75fcf[PRIVATE_IP]c[PRIVATE_IP]cc112ceccb6cf[PRIVATE_IP]a4deb8e -ERROR_REGISTER_SHA[PRIVATE_IP]c7fa[PRIVATE_IP]583c4aefac[PRIVATE_IP]1736ed[PRIVATE_IP]ab83 +MODE=verify +COMPONENT=result-integration +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 +COMMAND_SHA256=681260cb555ddf0930b26fb4aea15a10d5e8c9e6834e30754cb9eaecf659948a +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=9a09864d952dce1a9f67544e66c2c6f7b4ca54664fd3045c6210922293b1c16f +SANITIZED_OUTPUT_SHA256=9a09864d952dce1a9f67544e66c2c6f7b4ca54664fd3045c6210922293b1c16f OUTPUT_BEGIN -GENERATED_AT_UTC=[PRIVATE_IP]T08:17:01Z -Cluster information -------------------- -Name: homelab -Config Version: 3 -Transport: knet -Secure auth: on +{"PLAN_SHA256":"7635b754e1881b6dc050f462a36662f9334dea3f2cbc13459376f6e64d4b7c2e","backup_changed":false,"changes_made":false,"cluster_changed":false,"functional_tests":{"adapter_compile":true,"adapter_function_added":true,"adapter_terminal_builder_added":true,"exact_two_terminal_results":true,"fail_result_complete":true,"forbidden_scan_clean":true,"free_text_not_published":true,"invalid_identity_excluded":true,"no_cryptographic_key_code":true,"no_new_public_route":true,"ok_result_complete":true,"portal_compile":true,"portal_health_version_3":true,"portal_recent_operation":true,"portal_recent_results_field":true,"runner_unchanged":true,"running_excluded":true,"sequence_is_sha256":true,"sequence_stable":true},"gitea_changed":false,"plan":{"anti_regression":["adapter_compile","adapter_function_added","adapter_terminal_builder_added","exact_two_terminal_results","fail_result_complete","forbidden_scan_clean","free_text_not_published","invalid_identity_excluded","no_cryptographic_key_code","no_new_public_route","ok_result_complete","portal_compile","portal_health_version_3","portal_recent_operation","portal_recent_results_field","runner_unchanged","running_excluded","sequence_is_sha256","sequence_stable"],"apply_sequence":["verify exact source SHA and no other RUNNING state","create fresh rollback copies","write candidate files to same-filesystem temporary paths","compile candidates before service stop","stop Portal","stop Adapter","atomically replace Adapter and Portal","start Adapter and verify stable health","start Portal and verify healthz version 3","verify current APPLY result appears by exact identity"],"change_flags":{"backup":false,"cluster":false,"gitea":false,"production":true},"operation":"INSTALL_MINIMAL_RECENT_RESULT_FEED","postconditions":["Adapter and Portal target SHA installed","Runner SHA unchanged","no files or keys created","Adapter and Portal active with NRestarts=0","healthz version is 3","recent_results contains exact APPLY identity","terminal states only","free-text error message is absent","sanitized flags are fixed safe values","backup, cluster and Gitea unchanged"],"public_contract":{"cache_policy":"existing Portal no-store policy","free_text_published":false,"identity":["command_id","capsule_sha256"],"max_results":32,"new_public_routes":false,"signing_keys":false,"terminal_statuses":["OK","FAIL","BLOCKED"],"url":"https://run.vpn.gram1.ru/healthz","version":3},"risk":"REVERSIBLE","rollback":{"diagnostics_before_rollback":["installed SHA and file metadata","systemd show for Adapter and Portal","journals since APPLY start","local Adapter socket response","public healthz response","process tree","state summary"],"fresh_directory":"/var/lib/homelab-change-rollback/MINIMAL-RESULT-FEED-APPLY-20260727","restore_only":["/usr/local/sbin/homelab-command-adapter","/usr/local/sbin/homelab-command-portal"]},"schema":1,"scope":{"backup":false,"cluster":false,"create":[],"gitea":false,"modify":["/usr/local/sbin/homelab-command-adapter","/usr/local/sbin/homelab-command-portal"],"preserve":["/usr/local/sbin/homelab-chat-run","Adapter state files","evidence objects","Gitea runtime publication","backup","cluster"],"production":true},"source_lock":{"/usr/local/sbin/homelab-chat-run":"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d","/usr/local/sbin/homelab-command-adapter":"8d0af84dcfcf6ddbfd1c4e6cbb059cef66b4cfc6c75bfd66da649acc229c7f5e","/usr/local/sbin/homelab-command-portal":"8056faf4ef6348f0b06319ad3c49fbfeeadf25b6370f857ea19569bd27652ee2"},"target":"pve01","target_lock":{"/usr/local/sbin/homelab-chat-run":"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d","/usr/local/sbin/homelab-command-adapter":"a1a7a615c99568bf915d084cc476f0ebf54ab0eedf3ecd578c4b0e072f58c43d","/usr/local/sbin/homelab-command-portal":"493eed48b5ed23b77ea3f554e8264438c0aea91744efb98363a325b4548b179b"}},"preconditions":{"adapter_healthy":true,"adapter_source_lock":true,"current_running_once":true,"host_pve01":true,"no_invalid_states":true,"no_other_running":true,"portal_healthy":true,"portal_source_lock":true,"root":true,"runner_source_lock":true},"rollback_started":false,"runner_sha256":"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d","source_adapter_sha256":"8d0af84dcfcf6ddbfd1c4e6cbb059cef66b4cfc6c75bfd66da649acc229c7f5e","source_portal_sha256":"8056faf4ef6348f0b06319ad3c49fbfeeadf25b6370f857ea19569bd27652ee2","status":"PASS","target_adapter_sha256":"a1a7a615c99568bf915d084cc476f0ebf54ab0eedf3ecd578c4b0e072f58c43d","target_portal_sha256":"493eed48b5ed23b77ea3f554e8264438c0aea91744efb98363a325b4548b179b"} -Quorum information ------------------- -Date: Mon Jul [PRIVATE_IP] 2026 -Quorum provider: corosync_votequorum -Nodes: 3 -Node ID: [PRIVATE_IP] -Ring ID: 1.c6 -Quorate: Yes - -Votequorum information ----------------------- -Expected votes: 3 -Highest expected: 3 -Total votes: 3 -Quorum: 2 -Flags: Quorate - -Membership information ----------------------- - Nodeid Votes Name -[PRIVATE_IP] [PRIVATE_IP].11 (local) -[PRIVATE_IP] [PRIVATE_IP].13 -[PRIVATE_IP] [PRIVATE_IP].12 - -Membership information ----------------------- - Nodeid Votes Name - 1 1 pve01 (local) - 2 1 pve03 - 3 1 pve02 -[{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/110","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":327354,"vmid":110},{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/111","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":327193,"vmid":111},{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/112","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":327357,"vmid":112},{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/113","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":327196,"vmid":113},{"cpu":[PRIVATE_IP]65197,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"edge-vm","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":327291,"vmid":130},{"cpu":[PRIVATE_IP]20308,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/150","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"nextcloud","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":327351,"vmid":150},{"cpu":[PRIVATE_IP]85985,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/160","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"forum-prod","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":327190,"vmid":160},{"cpu":[PRIVATE_IP]88785,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/170","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"core-apps","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":327347,"vmid":170},{"cpu":[PRIVATE_IP]37803,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/171","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"monitoring","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":327344,"vmid":171},{"cpu":[PRIVATE_IP]09546,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/180","maxcpu":2,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"cluster-admin","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":327187,"vmid":180},{"cpu":[PRIVATE_IP]369554,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/190","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"homelab-ops-worker","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":327287,"vmid":190},{"cpu":0,"disk":0,"diskread":0,"diskwrite":0,"id":"qemu/9130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":0,"memhost":0,"name":"edge-cold-standby","netin":0,"netout":0,"node":"pve02","status":"stopped","template":0,"type":"qemu","uptime":0,"vmid":9130},{"cgroup-mode":2,"cpu":[PRIVATE_IP]80549,"disk":[PRIVATE_IP],"id":"node/pve01","level":"","maxcpu":24,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve01","status":"online","type":"node","uptime":327384},{"cgroup-mode":2,"cpu":[PRIVATE_IP]21696,"disk":[PRIVATE_IP],"id":"node/pve02","level":"","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve02","status":"online","type":"node","uptime":327257},{"cgroup-mode":2,"cpu":[PRIVATE_IP]00797,"disk":[PRIVATE_IP],"id":"node/pve03","level":"","maxcpu":8,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve03","status":"online","type":"node","uptime":327308},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve01/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve02/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve03/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"iso,backup,import,vztmpl","disk":[PRIVATE_IP],"id":"storage/pve01/local","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"iso,backup,import,vztmpl","disk":[PRIVATE_IP],"id":"storage/pve02/local","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"iso,backup,import,vztmpl","disk":[PRIVATE_IP],"id":"storage/pve03/local","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"id":"network/pve01/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve01","status":"ok","type":"network"},{"id":"network/pve02/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve02","status":"ok","type":"network"},{"id":"network/pve03/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve03","status":"ok","type":"network"}] -Name Type Status Total (KiB) Used (KiB) Available (KiB) % -local dir active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 12.80% -local-lvm lvmthin active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 27.22% - UNIT LOAD ACTIVE SUB DESCRIPTION -● homelab-backup-matrix-refresh.service loaded failed failed Generate unified homelab backup matrix state -● skladchik-reports-monitor-supervisor.service loaded failed failed Skladchik reports monitor full supervisor - -Legend: LOAD → Reflects whether the unit definition was properly loaded. - ACTIVE → The high-level unit activation state, i.e. generalization of SUB. - SUB → The low-level unit activation state, values depend on unit type. - -2 loaded units listed. -NEXT LEFT LAST PASSED UNIT ACTIVATES -Mon [PRIVATE_IP] 11:17:19 MSK 16s Mon [PRIVATE_IP] 11:15:10 MSK 1min 52s ago homelab-cluster-admin-inventory-sync.timer homelab-cluster-admin-inventory-sync.service -Mon [PRIVATE_IP] 11:17:21 MSK 18s Mon [PRIVATE_IP] 11:16:18 MSK 44s ago homelab-router-watchdog.timer homelab-router-watchdog.service -Mon [PRIVATE_IP] 11:17:29 MSK 26s Mon [PRIVATE_IP] 11:16:29 MSK 33s ago homelab-cluster-admin-webpanel-sync.timer homelab-cluster-admin-webpanel-sync.service -Mon [PRIVATE_IP] 11:17:29 MSK 26s Mon [PRIVATE_IP] 11:16:29 MSK 33s ago homelab-private-vpn-hosts-health.timer homelab-private-vpn-hosts-health.service -Mon [PRIVATE_IP] 11:18:11 MSK 1min 8s Mon [PRIVATE_IP] 11:12:58 MSK 4min 4s ago homelab-health-metrics.timer homelab-health-metrics.service -Mon [PRIVATE_IP] 11:18:29 MSK 1min 26s Mon [PRIVATE_IP] 11:13:29 MSK 3min 33s ago homelab-smartctl-textfile.timer homelab-smartctl-textfile.service -Mon [PRIVATE_IP] 11:18:29 MSK 1min 26s Mon [PRIVATE_IP] 11:13:29 MSK 3min 33s ago netbird-peers-health.timer netbird-peers-health.service -Mon [PRIVATE_IP] 11:18:59 MSK 1min 56s Mon [PRIVATE_IP] 11:13:40 MSK 3min 22s ago homelab-crypto-portfolio-chart-health.timer homelab-crypto-portfolio-chart-health.service -Mon [PRIVATE_IP] 11:20:15 MSK 3min 12s Mon [PRIVATE_IP] 11:10:15 MSK 6min ago skladchik-reports-monitor-supervisor.timer skladchik-reports-monitor-supervisor.service -Mon [PRIVATE_IP] 11:29:29 MSK 12min Mon [PRIVATE_IP] 11:14:29 MSK 2min 33s ago homelab-disk-space-health.timer homelab-disk-space-health.service -Mon [PRIVATE_IP] 11:29:29 MSK 12min Mon [PRIVATE_IP] 11:14:29 MSK 2min 33s ago homelab-pve03-staging-capacity-health.timer homelab-pve03-staging-capacity-health.service -Mon [PRIVATE_IP] 11:29:29 MSK 12min Mon [PRIVATE_IP] 11:14:29 MSK 2min 33s ago prometheus-node-exporter-apt.timer prometheus-node-exporter-apt.service -Mon [PRIVATE_IP] 11:29:30 MSK 12min Mon [PRIVATE_IP] 11:14:30 MSK 2min 32s ago prometheus-node-exporter-nvme.timer prometheus-node-exporter-nvme.service -Mon [PRIVATE_IP] 11:30:00 MSK 12min Mon [PRIVATE_IP] 11:15:00 MSK 2min 2s ago homelab-incident-journal.timer homelab-incident-journal.service -Mon [PRIVATE_IP] 11:30:02 MSK 12min Mon [PRIVATE_IP] 11:15:28 MSK 1min 34s ago homelab-forum-snuffleupagus-health.timer homelab-forum-snuffleupagus-health.service -Mon [PRIVATE_IP] 11:30:17 MSK 13min Mon [PRIVATE_IP] 11:15:32 MSK 1min 30s ago homelab-duty-admin-v2.timer homelab-duty-admin-v2.service -Mon [PRIVATE_IP] 11:31:20 MSK 14min Mon [PRIVATE_IP] 11:15:35 MSK 1min 27s ago homelab-external-probe-vps-health.timer homelab-external-probe-vps-health.service -Mon [PRIVATE_IP] 11:32:02 MSK 14min Mon [PRIVATE_IP] 11:03:58 MSK 13min ago homelab-mkdocs-auto-refresh.timer homelab-mkdocs-auto-refresh.service -Mon [PRIVATE_IP] 11:32:07 MSK 15min Mon [PRIVATE_IP] 10:57:29 MSK 19min ago homelab-reference-refresh.timer homelab-reference-refresh.service -Mon [PRIVATE_IP] 16:24:29 MSK 5h 7min Mon [PRIVATE_IP] 10:24:29 MSK 52min ago homelab-vps-identity-audit.timer homelab-vps-identity-audit.service -Mon [PRIVATE_IP] 16:35:54 MSK 5h 18min Sun [PRIVATE_IP] 16:35:54 MSK 18h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service -Mon [PRIVATE_IP] 20:12:14 MSK 8h Mon [PRIVATE_IP] 07:44:04 MSK 3h 32min ago apt-daily.timer apt-daily.service -Tue [PRIVATE_IP] 00:00:00 MSK 12h Mon [PRIVATE_IP] 00:00:04 MSK 11h ago dpkg-db-backup.timer dpkg-db-backup.service -Tue [PRIVATE_IP] 00:02:35 MSK 12h Mon [PRIVATE_IP] 00:02:04 MSK 11h ago homelab-docker-health.timer homelab-docker-health.service -Tue [PRIVATE_IP] 00:08:18 MSK 12h Mon [PRIVATE_IP] 00:11:39 MSK 11h ago homelab-evidence-catalog.timer homelab-evidence-catalog.service -Tue [PRIVATE_IP] 00:09:25 MSK 12h Mon [PRIVATE_IP] 00:04:04 MSK 11h ago homelab-storage-capacity.timer homelab-storage-capacity.service -Tue [PRIVATE_IP] 00:16:07 MSK 12h Mon [PRIVATE_IP] 00:15:19 MSK 11h ago homelab-quality-gate.timer homelab-quality-gate.service -Tue [PRIVATE_IP] 00:43:23 MSK 13h Mon [PRIVATE_IP] 00:04:04 MSK 11h ago logrotate.timer logrotate.service -Tue [PRIVATE_IP] 03:50:00 MSK 16h Mon [PRIVATE_IP] 03:50:04 MSK 7h ago filebrowser-offhost-sync.timer filebrowser-offhost-sync.service -Tue [PRIVATE_IP] 04:43:08 MSK 17h Mon [PRIVATE_IP] 04:52:04 MSK 6h ago homelab-edge-vm-offhost-freshness.timer homelab-edge-vm-offhost-freshness.service -Tue [PRIVATE_IP] 04:54:11 MSK 17h Mon [PRIVATE_IP] 05:04:49 MSK 6h ago homelab-sops-edge-secret-coverage.timer homelab-sops-edge-secret-coverage.service -Tue [PRIVATE_IP] 05:23:26 MSK 18h Mon [PRIVATE_IP] 02:36:58 MSK 8h ago pve-daily-update.timer pve-daily-update.service -Tue [PRIVATE_IP] 06:49:37 MSK 19h Mon [PRIVATE_IP] 06:01:15 MSK 5h 15min ago apt-daily-upgrade.timer apt-daily-upgrade.service -Tue [PRIVATE_IP] 07:10:18 MSK 19h Mon [PRIVATE_IP] 07:10:07 MSK 4h 6min ago homelab-drift-check.timer homelab-drift-check.service -Tue [PRIVATE_IP] 07:20:37 MSK 20h Mon [PRIVATE_IP] 07:39:15 MSK 3h 37min ago homelab-service-registry-check.timer homelab-service-registry-check.service -Tue [PRIVATE_IP] 07:47:08 MSK 20h Mon [PRIVATE_IP] 07:59:29 MSK 3h 17min ago homelab-runbook-generate.timer homelab-runbook-generate.service -Tue [PRIVATE_IP] 07:48:17 MSK 20h Mon [PRIVATE_IP] 07:57:57 MSK 3h 19min ago homelab-dependency-map-check.timer homelab-dependency-map-check.service -Tue [PRIVATE_IP] 07:51:53 MSK 20h Mon [PRIVATE_IP] 07:53:04 MSK 3h 23min ago homelab-alerting-health.timer homelab-alerting-health.service -Tue [PRIVATE_IP] 08:01:12 MSK 20h Mon [PRIVATE_IP] 08:01:04 MSK 3h 15min ago homelab-duty-admin-report.timer homelab-duty-admin-report.service -Tue [PRIVATE_IP] 08:01:26 MSK 20h Mon [PRIVATE_IP] 08:08:04 MSK 3h 8min ago homelab-desired-state-sync.timer homelab-desired-state-sync.service -Tue [PRIVATE_IP] 08:08:19 MSK 20h Mon [PRIVATE_IP] 08:03:38 MSK 3h 13min ago homelab-overall-health.timer homelab-overall-health.service -Tue [PRIVATE_IP] 08:11:56 MSK 20h Mon [PRIVATE_IP] 08:09:50 MSK 3h 7min ago homelab-kuma-monitor-policy.timer homelab-kuma-monitor-policy.service -Tue [PRIVATE_IP] 08:15:29 MSK 20h Mon [PRIVATE_IP] 08:18:04 MSK 2h 58min ago homelab-final-readiness-gate.timer homelab-final-readiness-gate.service -Tue [PRIVATE_IP] 08:34:11 MSK 21h Mon [PRIVATE_IP] 08:27:04 MSK 2h 49min ago homelab-capacity-risk.timer homelab-capacity-risk.service -Tue [PRIVATE_IP] 08:44:09 MSK 21h Mon [PRIVATE_IP] 08:47:15 MSK 2h 29min ago homelab-cluster-passport.timer homelab-cluster-passport.service -Tue [PRIVATE_IP] 08:44:30 MSK 21h Mon [PRIVATE_IP] 08:39:38 MSK 2h 37min ago homelab-secret-exposure-guard.timer homelab-secret-exposure-guard.service -Tue [PRIVATE_IP] 08:45:49 MSK 21h Mon [PRIVATE_IP] 09:01:45 MSK 2h 15min ago homelab-golden-state-index.timer homelab-golden-state-index.service -Tue [PRIVATE_IP] 08:49:07 MSK 21h Mon [PRIVATE_IP] 08:53:04 MSK 2h 23min ago immich-media-offhost-sync.timer immich-media-offhost-sync.service -Tue [PRIVATE_IP] 09:17:13 MSK 22h Mon [PRIVATE_IP] 09:16:04 MSK 2h 0min ago memos-offhost-sync.timer memos-offhost-sync.service -Tue [PRIVATE_IP] 10:15:00 MSK 22h Mon [PRIVATE_IP] 10:15:04 MSK 1h 1min ago skladchik-reports-monitor-monthly-selftest-watch.timer skladchik-reports-monitor-monthly-selftest-watch.service -Tue [PRIVATE_IP] 10:20:26 MSK 23h Mon [PRIVATE_IP] 05:04:49 MSK 6h ago man-db.timer man-db.service -Sun [PRIVATE_IP] 03:10:03 MSK 5 days Sun [PRIVATE_IP] 03:10:15 MSK 1 day 8h ago e2scrub_all.timer e2scrub_all.service -Sun [PRIVATE_IP] 03:10:09 MSK 5 days Sun [PRIVATE_IP] 03:10:15 MSK 1 day 8h ago xfs_scrub_all.timer xfs_scrub_all.service -Mon [PRIVATE_IP] 00:10:14 MSK 6 days Mon [PRIVATE_IP] 00:13:29 MSK 11h ago homelab-secret-sanity.timer homelab-secret-sanity.service -Mon [PRIVATE_IP] 00:24:11 MSK 6 days Mon [PRIVATE_IP] 01:18:15 MSK 9h ago fstrim.timer fstrim.service -- - - - prometheus-node-exporter-ipmitool-sensor.timer prometheus-node-exporter-ipmitool-sensor.service -- - - - prometheus-node-exporter-mellanox-hca-temp.timer prometheus-node-exporter-mellanox-hca-temp.service -- - - - prometheus-node-exporter-smartmon.timer prometheus-node-exporter-smartmon.service - -58 timers listed. -- Обрезанная, повреждённая или частично вставленная команда считается невыполненной; сначала проводится side-effect audit. -- Хвост parse-ошибки закрывается только после доказательства отсутствия изменений и временных артефактов. -- Proof: /var/lib/homelab-change-sets/operator-command-size-guard-v[PRIVATE_IP]T182653Z/report.txt - -## HOMELAB_ADMIN_CLI_CONTRACT_[PRIVATE_IP] -- Поддерживаемые команды: version, status, lint TASK_DIR, validate TASK_DIR, run TASK_DIR PHASE. -- Отдельная команда --help отсутствует. Неизвестный аргумент печатает usage и штатно возвращает RC=64. -- Нельзя трактовать RC=64 от --help как неисправность runner. -- Для проверки доступности runner использовать homelab-admin version; для структуры CLI использовать зафиксированную usage-строку. -- Proof: /var/lib/homelab-change-sets/homelab-admin-cli-contract-fix-v[PRIVATE_IP]T183338Z/report.txt - -AUTOMATIC_CLUSTER_CONTEXT_REFRESH_[PRIVATE_IP] -Collector: /usr/local/sbin/homelab-context-collect -Scheduler: hourly at minute 17 via /etc/cron.d/homelab-context-refresh -Destination: immutable Gitea runtime history with CONTEXT-AUTO UTC command IDs. - -AUTOMATIC_CLUSTER_CONTEXT_REFRESH_DIRECT_[PRIVATE_IP] -Publisher: /usr/local/sbin/homelab-context-refresh-direct -Schedule: hourly at minute 17. -Destination: immutable assistant-runtime history with CONTEXT-AUTO UTC IDs. -ANTI_REGRESSION_TOKEN=HOMELAB_VM_2CLOUD_444_OUTER_LAUNCHER_BOUNDARY_REQUIRED -- Anti-regression: validate the complete outer launcher with a shell syntax check and verify the wrapper argument boundary before issuing it. -- Infrastructure action executed: none. -- Backup payload impact: none. -- Production impact: none. -- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. -- Registered at: [PRIVATE_IP]T11:20:32Z - -## ERROR_[PRIVATE_IP]_HOMELAB_VM_2CLOUD_DRAIN_CLOSURE_PREFLIGHT_446 -COMMAND_ID=HOMELAB-VM-2CLOUD-DRAIN-CLOSURE-PREFLIGHT-446 -- Symptom: homelab-chat-run-linked printed Usage and skipped result-feed publication as invalid input. -- Root cause: the diagnostic script was piped to wrapper stdin and the mandatory double-dash command separator was omitted. -- Correction: invoke homelab-chat-run-linked as COMMAND_ID MODE COMPONENT -- command arguments; stdin is not its command interface. -ANTI_REGRESSION_TOKEN=HOMELAB_CHAT_RUN_COMMAND_REQUIRES_DOUBLE_DASH -- Anti-regression: treat wrapper Usage as the authoritative CLI contract and syntax-check the complete launcher, not only its inner payload. -- Infrastructure action executed: none. -- Backup payload impact: none. -- Production impact: none. -- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. -- Registered at: [PRIVATE_IP]T11:20:32Z OUTPUT_END CHAT_OUTPUT_END