diff --git a/runtime/history/HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z.json b/runtime/history/HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z.json new file mode 100644 index 0000000..58d70a4 --- /dev/null +++ b/runtime/history/HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "verify", + "component": "skladchik-moderator-core-v2-result-summary", + "started_at_utc": "2026-08-05T16:31:56Z", + "finished_at_utc": "2026-08-05T16:31:56Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", + "command_sha256": "d2fdf8c127eb6a57b9579d6af26a7af82f9a5bd2f79baaf6436e81b45f086a22", + "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": "039f9379763e3bd739daf552ec72ed34d369414b9d480c57905e2de07d981cdc", + "sanitized_output_sha256": "039f9379763e3bd739daf552ec72ed34d369414b9d480c57905e2de07d981cdc", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z\",\"command_rc\":0,\"mutation_outcome\":\"NO_MUTATION\",\"output_truncated_in_json\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"changes_made\":false,\"command_id\":\"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z\",\"command_rc\":0,\"lookup_lane_http_status\":409,\"mutation_outcome\":\"NO_MUTATION\",\"next_action\":\"USE_THIS_SHA_VERIFIED_TARGET_RESULT; DO_NOT_USE_LATEST; DO_NOT_REPAIR_LOOKUP_FOR_READING\",\"output_truncated_in_json\":false,\"rc\":0,\"read_only\":true,\"rollback_restored\":null,\"rollback_started\":false,\"schema\":1,\"status\":\"OK\",\"target_execution\":{\"changes_made\":null,\"command_rc\":null,\"control_plane_error\":null,\"mutation_outcome\":null,\"output_truncated_in_json\":false,\"rollback_restored\":null,\"rollback_started\":null,\"runner_document_rc\":76,\"runner_rc\":76,\"runner_status\":\"FAIL\",\"runner_wrapper_matches_document\":true},\"target_identity\":{\"capsule_sha256\":\"0300643299c86635061bf0cbbca202f90aeb5a92c77b8c3de2ec43caddfa600f\",\"command_id\":\"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\",\"full_output_bytes\":1507,\"full_output_lines\":1,\"full_output_read\":true,\"output_expected_sha256\":[],\"output_sha256\":\"db4ba1f9c2fb8dbb2eae330663a8ffdad1f118db7cea408eb775d1fb77ae9730\",\"runner_examined_values\":111,\"runner_json_expected_sha256\":[\"4222d82581430ee7ee20e7cd43b339d5a7c072c97f1eaea41e1f8e360f6dc0ed\"],\"runner_json_roots\":1,\"runner_json_sha256\":\"4222d82581430ee7ee20e7cd43b339d5a7c072c97f1eaea41e1f8e360f6dc0ed\",\"runner_text_expected_sha256\":[\"070abb9446abf0bdbef81c7f5aacbdaf956ef3b4133200341f535488ee1b55da\"],\"runner_text_sha256\":\"070abb9446abf0bdbef81c7f5aacbdaf956ef3b4133200341f535488ee1b55da\",\"state_file\":\"AMAGIMUZZB.json\",\"state_file_sha256\":\"174595d59e98ceb9180f48d6d2a77c53f7135a3bd8e4d7086fef71ffcc84b548\"},\"target_output_sanitized\":\"{\\\"analysis_ready\\\": true, \\\"backup_manifest_sha256\\\": \\\"9ebc6eedf2fd573ef088723e84a694bed56eb1006e2903f9b22fe59173ff7355\\\", \\\"candidate_self_test\\\": {\\\"complaints_immutable\\\": true, \\\"status\\\": \\\"OK\\\", \\\"version\\\": \\\"2026.08.05-mvp1\\\"}, \\\"changes_made\\\": true, \\\"command_id\\\": \\\"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\\\", \\\"command_rc\\\": 0, \\\"complaints_guardrail\\\": {\\\"immutable\\\": true, \\\"mutation_allowed\\\": false, \\\"service_content_read\\\": false, \\\"source_content_read\\\": false, \\\"storage_read\\\": false}, \\\"installed_sha256\\\": {\\\"app.py\\\": \\\"2110f1ba63ba80592d7fb898e18611772069f07605ed04a379e08e86fcab89b6\\\", \\\"rules.json\\\": \\\"a704bd1708e5bbcd4db98735b692ec4dfcff80cc33e98fd17dda6ae0f5a4d653\\\", \\\"skladchik-moderator-assistant.service\\\": \\\"fd68b1ddb7b2da28da403d93b83af323157c1f7e05a92df2e4221a893f8ef0f4\\\"}, \\\"mutation_outcome\\\": \\\"APPLIED\\\", \\\"next_action\\\": \\\"MAP_REVERSE_PROXY_AND_PUBLISH_ASSISTANT_UI_WITHOUT_TOUCHING_COMPLAINTS\\\", \\\"output_truncated_in_json\\\": false, \\\"protected_guard_mode\\\": \\\"LOCAL_EXACT_ABSENCE\\\", \\\"protected_units_verified\\\": 6, \\\"rc\\\": 0, \\\"rollback_restored\\\": null, \\\"rollback_started\\\": false, \\\"root_cause_classification\\\": \\\"SEPARATE_NON_COMPLAINT_MODERATOR_ASSISTANT_INSTALLED\\\", \\\"service\\\": {\\\"bind\\\": \\\"127.0.0.1:18787\\\", \\\"health\\\": {\\\"complaints_immutable\\\": true, \\\"ruleset_version\\\": \\\"admin-courses-2026-08-05\\\", \\\"status\\\": \\\"ok\\\", \\\"version\\\": \\\"2026.08.05-mvp1\\\"}, \\\"name\\\": \\\"skladchik-moderator-assistant.service\\\"}, \\\"status\\\": \\\"OK\\\", \\\"storage\\\": {\\\"raw_requests_stored\\\": false, \\\"request_hash_only\\\": true, \\\"separate\\\": true}, \\\"version\\\": 1}\\n\",\"target_payload_documents\":[{\"analysis_ready\":true,\"changes_made\":true,\"command_rc\":0,\"mutation_outcome\":\"APPLIED\",\"next_action\":\"MAP_REVERSE_PROXY_AND_PUBLISH_ASSISTANT_UI_WITHOUT_TOUCHING_COMPLAINTS\",\"output_truncated_in_json\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"root_cause_classification\":\"SEPARATE_NON_COMPLAINT_MODERATOR_ASSISTANT_INSTALLED\",\"status\":\"OK\"}],\"target_runner\":{\"changes_made\":null,\"command_rc\":0,\"mutation_outcome\":\"UNKNOWN\",\"output_truncated_in_json\":false,\"rc\":76,\"rollback_restored\":null,\"rollback_started\":null,\"status\":\"FAIL\"},\"target_runner_document\":{},\"target_runner_text_sanitized\":\"CHAT_OUTPUT_BEGIN\\nCOMMAND_ID=HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\\nSTATUS=FAIL\\nRC=76\\nHOST=pve01\\nMODE=change\\nCOMPONENT=skladchik-moderator-core-install-v2\\nREFERENCE_REGISTER_CHECK=OK\\nREFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e\\nERROR_REGISTER_CHECK=OK\\nERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83\\nCOMMAND_SHA256=ce33944c79a14f3e34c5bef3910cdb2154df9551c3cea68c6a56c455843c4a8d\\nDUPLICATE_FAILED_COMMAND_BLOCKED=false\\nEXECUTION_STARTED=true\\nCHANGE_DECLARED=true\\nRESULT_CONTRACT_VALID=false\\nRESULT_CONTRACT_STATUS=UNKNOWN\\nRESULT_CONTRACT_ERROR=MISSING_CONTRACT\\nCOMMAND_RC=0\\nCHANGES_MADE=unknown\\nROLLBACK_STARTED=unknown\\nROLLBACK_RESTORED=null\\nMUTATION_OUTCOME=UNKNOWN\\nSANITIZED=yes\\nSECRETS_INCLUDED=no\\nPRIVATE_ADDRESSES_INCLUDED=no\\nRAW_EVIDENCE_SHA256=db4ba1f9c2fb8dbb2eae330663a8ffdad1f118db7cea408eb775d1fb77ae9730\\nSANITIZED_OUTPUT_SHA256=db4ba1f9c2fb8dbb2eae330663a8ffdad1f118db7cea408eb775d1fb77ae9730\\nOUTPUT_BEGIN\\n{\\\"analysis_ready\\\": true, \\\"backup_manifest_sha256\\\": \\\"9ebc6eedf2fd573ef088723e84a694bed56eb1006e2903f9b22fe59173ff7355\\\", \\\"candidate_self_test\\\": {\\\"complaints_immutable\\\": true, \\\"status\\\": \\\"OK\\\", \\\"version\\\": \\\"2026.08.05-mvp1\\\"}, \\\"changes_made\\\": true, \\\"command_id\\\": \\\"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\\\", \\\"command_rc\\\": 0, \\\"complaints_guardrail\\\": {\\\"immutable\\\": true, \\\"mutation_allowed\\\": false, \\\"service_content_read\\\": false, \\\"source_content_read\\\": false, \\\"storage_read\\\": false}, \\\"installed_sha256\\\": {\\\"app.py\\\": \\\"2110f1ba63ba80592d7fb898e18611772069f07605ed04a379e08e86fcab89b6\\\", \\\"rules.json\\\": \\\"a704bd1708e5bbcd4db98735b692ec4dfcff80cc33e98fd17dda6ae0f5a4d653\\\", \\\"skladchik-moderator-assistant.service\\\": \\\"fd68b1ddb7b2da28da403d93b83af323157c1f7e05a92df2e4221a893f8ef0f4\\\"}, \\\"mutation_outcome\\\": \\\"APPLIED\\\", \\\"next_action\\\": \\\"MAP_REVERSE_PROXY_AND_PUBLISH_ASSISTANT_UI_WITHOUT_TOUCHING_COMPLAINTS\\\", \\\"output_truncated_in_json\\\": false, \\\"protected_guard_mode\\\": \\\"LOCAL_EXACT_ABSENCE\\\", \\\"protected_units_verified\\\": 6, \\\"rc\\\": 0, \\\"rollback_restored\\\": null, \\\"rollback_started\\\": false, \\\"root_cause_classification\\\": \\\"SEPARATE_NON_COMPLAINT_MODERATOR_ASSISTANT_INSTALLED\\\", \\\"service\\\": {\\\"bind\\\": \\\"127.0.0.1:18787\\\", \\\"health\\\": {\\\"complaints_immutable\\\": true, \\\"ruleset_version\\\": \\\"admin-courses-2026-08-05\\\", \\\"status\\\": \\\"ok\\\", \\\"version\\\": \\\"2026.08.05-mvp1\\\"}, \\\"name\\\": \\\"skladchik-moderator-assistant.service\\\"}, \\\"status\\\": \\\"OK\\\", \\\"storage\\\": {\\\"raw_requests_stored\\\": false, \\\"request_hash_only\\\": true, \\\"separate\\\": true}, \\\"version\\\": 1}\\n\\nOUTPUT_END\\nCHAT_OUTPUT_END\\n\",\"target_state\":{\"control_plane_error\":null,\"error\":null,\"status\":\"FAIL\"}}\n" +} diff --git a/runtime/history/HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z.txt b/runtime/history/HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z.txt new file mode 100644 index 0000000..46a96d6 --- /dev/null +++ b/runtime/history/HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z.txt @@ -0,0 +1,34 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z +STATUS=OK +RC=0 +HOST=pve01 +MODE=verify +COMPONENT=skladchik-moderator-core-v2-result-summary +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 +COMMAND_SHA256=d2fdf8c127eb6a57b9579d6af26a7af82f9a5bd2f79baaf6436e81b45f086a22 +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=039f9379763e3bd739daf552ec72ed34d369414b9d480c57905e2de07d981cdc +SANITIZED_OUTPUT_SHA256=039f9379763e3bd739daf552ec72ed34d369414b9d480c57905e2de07d981cdc +OUTPUT_BEGIN +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z","command_rc":0,"mutation_outcome":"NO_MUTATION","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +{"changes_made":false,"command_id":"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z","command_rc":0,"lookup_lane_http_status":409,"mutation_outcome":"NO_MUTATION","next_action":"USE_THIS_SHA_VERIFIED_TARGET_RESULT; DO_NOT_USE_LATEST; DO_NOT_REPAIR_LOOKUP_FOR_READING","output_truncated_in_json":false,"rc":0,"read_only":true,"rollback_restored":null,"rollback_started":false,"schema":1,"status":"OK","target_execution":{"changes_made":null,"command_rc":null,"control_plane_error":null,"mutation_outcome":null,"output_truncated_in_json":false,"rollback_restored":null,"rollback_started":null,"runner_document_rc":76,"runner_rc":76,"runner_status":"FAIL","runner_wrapper_matches_document":true},"target_identity":{"capsule_sha256":"0300643299c86635061bf0cbbca202f90aeb5a92c77b8c3de2ec43caddfa600f","command_id":"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z","full_output_bytes":1507,"full_output_lines":1,"full_output_read":true,"output_expected_sha256":[],"output_sha256":"db4ba1f9c2fb8dbb2eae330663a8ffdad1f118db7cea408eb775d1fb77ae9730","runner_examined_values":111,"runner_json_expected_sha256":["4222d82581430ee7ee20e7cd43b339d5a7c072c97f1eaea41e1f8e360f6dc0ed"],"runner_json_roots":1,"runner_json_sha256":"4222d82581430ee7ee20e7cd43b339d5a7c072c97f1eaea41e1f8e360f6dc0ed","runner_text_expected_sha256":["070abb9446abf0bdbef81c7f5aacbdaf956ef3b4133200341f535488ee1b55da"],"runner_text_sha256":"070abb9446abf0bdbef81c7f5aacbdaf956ef3b4133200341f535488ee1b55da","state_file":"AMAGIMUZZB.json","state_file_sha256":"174595d59e98ceb9180f48d6d2a77c53f7135a3bd8e4d7086fef71ffcc84b548"},"target_output_sanitized":"{\"analysis_ready\": true, \"backup_manifest_sha256\": \"9ebc6eedf2fd573ef088723e84a694bed56eb1006e2903f9b22fe59173ff7355\", \"candidate_self_test\": {\"complaints_immutable\": true, \"status\": \"OK\", \"version\": \"2026.08.05-mvp1\"}, \"changes_made\": true, \"command_id\": \"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\", \"command_rc\": 0, \"complaints_guardrail\": {\"immutable\": true, \"mutation_allowed\": false, \"service_content_read\": false, \"source_content_read\": false, \"storage_read\": false}, \"installed_sha256\": {\"app.py\": \"2110f1ba63ba80592d7fb898e18611772069f07605ed04a379e08e86fcab89b6\", \"rules.json\": \"a704bd1708e5bbcd4db98735b692ec4dfcff80cc33e98fd17dda6ae0f5a4d653\", \"skladchik-moderator-assistant.service\": \"fd68b1ddb7b2da28da403d93b83af323157c1f7e05a92df2e4221a893f8ef0f4\"}, \"mutation_outcome\": \"APPLIED\", \"next_action\": \"MAP_REVERSE_PROXY_AND_PUBLISH_ASSISTANT_UI_WITHOUT_TOUCHING_COMPLAINTS\", \"output_truncated_in_json\": false, \"protected_guard_mode\": \"LOCAL_EXACT_ABSENCE\", \"protected_units_verified\": 6, \"rc\": 0, \"rollback_restored\": null, \"rollback_started\": false, \"root_cause_classification\": \"SEPARATE_NON_COMPLAINT_MODERATOR_ASSISTANT_INSTALLED\", \"service\": {\"bind\": \"127.0.0.1:18787\", \"health\": {\"complaints_immutable\": true, \"ruleset_version\": \"admin-courses-2026-08-05\", \"status\": \"ok\", \"version\": \"2026.08.05-mvp1\"}, \"name\": \"skladchik-moderator-assistant.service\"}, \"status\": \"OK\", \"storage\": {\"raw_requests_stored\": false, \"request_hash_only\": true, \"separate\": true}, \"version\": 1}\n","target_payload_documents":[{"analysis_ready":true,"changes_made":true,"command_rc":0,"mutation_outcome":"APPLIED","next_action":"MAP_REVERSE_PROXY_AND_PUBLISH_ASSISTANT_UI_WITHOUT_TOUCHING_COMPLAINTS","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"root_cause_classification":"SEPARATE_NON_COMPLAINT_MODERATOR_ASSISTANT_INSTALLED","status":"OK"}],"target_runner":{"changes_made":null,"command_rc":0,"mutation_outcome":"UNKNOWN","output_truncated_in_json":false,"rc":76,"rollback_restored":null,"rollback_started":null,"status":"FAIL"},"target_runner_document":{},"target_runner_text_sanitized":"CHAT_OUTPUT_BEGIN\nCOMMAND_ID=HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\nSTATUS=FAIL\nRC=76\nHOST=pve01\nMODE=change\nCOMPONENT=skladchik-moderator-core-install-v2\nREFERENCE_REGISTER_CHECK=OK\nREFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e\nERROR_REGISTER_CHECK=OK\nERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83\nCOMMAND_SHA256=ce33944c79a14f3e34c5bef3910cdb2154df9551c3cea68c6a56c455843c4a8d\nDUPLICATE_FAILED_COMMAND_BLOCKED=false\nEXECUTION_STARTED=true\nCHANGE_DECLARED=true\nRESULT_CONTRACT_VALID=false\nRESULT_CONTRACT_STATUS=UNKNOWN\nRESULT_CONTRACT_ERROR=MISSING_CONTRACT\nCOMMAND_RC=0\nCHANGES_MADE=unknown\nROLLBACK_STARTED=unknown\nROLLBACK_RESTORED=null\nMUTATION_OUTCOME=UNKNOWN\nSANITIZED=yes\nSECRETS_INCLUDED=no\nPRIVATE_ADDRESSES_INCLUDED=no\nRAW_EVIDENCE_SHA256=db4ba1f9c2fb8dbb2eae330663a8ffdad1f118db7cea408eb775d1fb77ae9730\nSANITIZED_OUTPUT_SHA256=db4ba1f9c2fb8dbb2eae330663a8ffdad1f118db7cea408eb775d1fb77ae9730\nOUTPUT_BEGIN\n{\"analysis_ready\": true, \"backup_manifest_sha256\": \"9ebc6eedf2fd573ef088723e84a694bed56eb1006e2903f9b22fe59173ff7355\", \"candidate_self_test\": {\"complaints_immutable\": true, \"status\": \"OK\", \"version\": \"2026.08.05-mvp1\"}, \"changes_made\": true, \"command_id\": \"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\", \"command_rc\": 0, \"complaints_guardrail\": {\"immutable\": true, \"mutation_allowed\": false, \"service_content_read\": false, \"source_content_read\": false, \"storage_read\": false}, \"installed_sha256\": {\"app.py\": \"2110f1ba63ba80592d7fb898e18611772069f07605ed04a379e08e86fcab89b6\", \"rules.json\": \"a704bd1708e5bbcd4db98735b692ec4dfcff80cc33e98fd17dda6ae0f5a4d653\", \"skladchik-moderator-assistant.service\": \"fd68b1ddb7b2da28da403d93b83af323157c1f7e05a92df2e4221a893f8ef0f4\"}, \"mutation_outcome\": \"APPLIED\", \"next_action\": \"MAP_REVERSE_PROXY_AND_PUBLISH_ASSISTANT_UI_WITHOUT_TOUCHING_COMPLAINTS\", \"output_truncated_in_json\": false, \"protected_guard_mode\": \"LOCAL_EXACT_ABSENCE\", \"protected_units_verified\": 6, \"rc\": 0, \"rollback_restored\": null, \"rollback_started\": false, \"root_cause_classification\": \"SEPARATE_NON_COMPLAINT_MODERATOR_ASSISTANT_INSTALLED\", \"service\": {\"bind\": \"127.0.0.1:18787\", \"health\": {\"complaints_immutable\": true, \"ruleset_version\": \"admin-courses-2026-08-05\", \"status\": \"ok\", \"version\": \"2026.08.05-mvp1\"}, \"name\": \"skladchik-moderator-assistant.service\"}, \"status\": \"OK\", \"storage\": {\"raw_requests_stored\": false, \"request_hash_only\": true, \"separate\": true}, \"version\": 1}\n\nOUTPUT_END\nCHAT_OUTPUT_END\n","target_state":{"control_plane_error":null,"error":null,"status":"FAIL"}} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 8bb8726..58d70a4 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "HOMELAB-CLUSTER-ADMIN-UPDATES-V35-ACTUAL-UI-ROUTE-READ-ONLY-20260805T163000Z", + "command_id": "HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z", "status": "OK", "rc": 0, "host": "pve01", "mode": "verify", - "component": "homelab-cluster-admin-update-visibility", - "started_at_utc": "2026-08-05T16:29:21Z", - "finished_at_utc": "2026-08-05T16:30:14Z", + "component": "skladchik-moderator-core-v2-result-summary", + "started_at_utc": "2026-08-05T16:31:56Z", + "finished_at_utc": "2026-08-05T16:31:56Z", "reference_register_checked": true, "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", "error_register_checked": true, "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", - "command_sha256": "82f5d85404b8419244364987a5ca91796759e162a7a118f96f6f4396befe5198", + "command_sha256": "d2fdf8c127eb6a57b9579d6af26a7af82f9a5bd2f79baaf6436e81b45f086a22", "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": "27b6cb0b8eb8288db3fbf28a4fe5d03d7c8d88f79b464cef2a261ccd0811e876", - "sanitized_output_sha256": "db4f6d44451f8920c1e8ffc0966413765f623391053e3dac989965f3de9b4eaf", + "raw_evidence_sha256": "039f9379763e3bd739daf552ec72ed34d369414b9d480c57905e2de07d981cdc", + "sanitized_output_sha256": "039f9379763e3bd739daf552ec72ed34d369414b9d480c57905e2de07d981cdc", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "HOMELAB_RESULT_CONTRACT={\"actual_ui_contains_updates_card\":false,\"actual_ui_route_count\":0,\"actual_ui_route_found\":false,\"actual_ui_source_found\":true,\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-ADMIN-UPDATES-V35-ACTUAL-UI-ROUTE-READ-ONLY-20260805T163000Z\",\"command_rc\":0,\"control_plane_error\":null,\"mutation_outcome\":\"NO_MUTATION\",\"next_action\":\"resolve only the remaining route/source ambiguity\",\"rc\":0,\"ready_for_actual_ui_patch_design\":false,\"report_bytes\":46770,\"report_sha256\":\"afeebf586fd9522757518ef90118630b9a0cf105a6c1c84085e1915888a73ea8\",\"rollback_restored\":false,\"rollback_started\":false,\"same_route_as_updates_card\":false,\"screenshot_contradiction_confirmed\":true,\"status\":\"OK\",\"updates_card_route_count\":2,\"v34_exact_result_identity_confirmed\":true,\"version\":1}\n{\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-ADMIN-UPDATES-V35-ACTUAL-UI-ROUTE-READ-ONLY-20260805T163000Z\",\"diagnosis\":{\"actual_ui_contains_updates_card\":false,\"actual_ui_route\":null,\"actual_ui_route_count\":0,\"actual_ui_route_found\":false,\"actual_ui_source\":{\"bytes\":28599,\"contexts\":[{\"line\":73,\"matched\":[\"observe/notify\"],\"text\":\" return f\\\"\\\"\\\"\"},{\"line\":208,\"matched\":[\"VM и CT\",\"Инциденты\"],\"text\":\" cards = \\\"\\\".join([summary_card(\\\"Ноды\\\", counts[\\\"nodes\\\"], \\\"OK\\\" if counts[\\\"nodes\\\"] > 0 else \\\"ERROR\\\"), summary_card(\\\"VM и CT\\\", counts[\\\"guests\\\"], \\\"OK\\\" if counts[\\\"guests\\\"] > 0 else \\\"ERROR\\\"), summary_card(\\\"Сервисы\\\", counts[\\\"services\\\"], \\\"OK\\\" if counts[\\\"services\\\"] > 0 else \\\"ERROR\\\"), summary_card(\\\"Инциденты\\\", counts[\\\"incidents\\\"], \\\"ERROR\\\" if counts[\\\"incidents\\\"] > 0 else \\\"OK\\\")])\"},{\"line\":217,\"matched\":[\"Активные инциденты\"],\"text\":\" incidents_html = health_section(\\\"Активные инциденты\\\", len(incidents), incidents_state, incidents_table)\"},{\"line\":220,\"matched\":[\"Cluster Admin Incident Engine\",\"observe/notify\",\"auto-heal отключён\"],\"text\":\" page = f\\\"\\\"\\\"Cluster Admin Incident Engine
Cluster Admin Incident Engine {engine_badge}
observe/notify · auto-heal отключён
{cards}
{nodes_html}{incidents_html}{services_html}
\\\"\\\"\\\"\"},{\"line\":243,\"matched\":[\"Cluster Admin Incident Engine\"],\"text\":\" \\\"# HELP cluster_admin_up Cluster Admin Incident Engine availability\\\",\"}],\"matched_signatures\":[\"Cluster Admin Incident Engine\",\"observe/notify\",\"auto-heal отключён\",\"Активные инциденты\",\"VM и CT\",\"Инциденты\"],\"mode\":\"0o750\",\"path\":\"/opt/cluster-admin-incident-engine/app.py\",\"sha256\":\"17d95ebfc28cef34846a8999664019d5d032ee8176b7fedd9ceeebfc5c97e3b6\",\"signature_count\":6},\"actual_ui_source_found\":true,\"next_action\":\"resolve only the remaining route/source ambiguity\",\"ready_for_actual_ui_patch_design\":false,\"same_route_as_updates_card\":false,\"updates_card_route_count\":2},\"mutation_outcome\":\"NO_MUTATION\",\"read_only\":true,\"remote_actual_ui_analysis\":{\"diagnosis\":{\"actual_ui_contains_updates_card\":false,\"actual_ui_route\":null,\"actual_ui_route_count\":0,\"actual_ui_route_found\":false,\"actual_ui_source\":{\"bytes\":28599,\"contexts\":[{\"line\":73,\"matched\":[\"observe/notify\"],\"text\":\" return f\\\"\\\"\\\"\"},{\"line\":208,\"matched\":[\"VM и CT\",\"Инциденты\"],\"text\":\" cards = \\\"\\\".join([summary_card(\\\"Ноды\\\", counts[\\\"nodes\\\"], \\\"OK\\\" if counts[\\\"nodes\\\"] > 0 else \\\"ERROR\\\"), summary_card(\\\"VM и CT\\\", counts[\\\"guests\\\"], \\\"OK\\\" if counts[\\\"guests\\\"] > 0 else \\\"ERROR\\\"), summary_card(\\\"Сервисы\\\", counts[\\\"services\\\"], \\\"OK\\\" if counts[\\\"services\\\"] > 0 else \\\"ERROR\\\"), summary_card(\\\"Инциденты\\\", counts[\\\"incidents\\\"], \\\"ERROR\\\" if counts[\\\"incidents\\\"] > 0 else \\\"OK\\\")])\"},{\"line\":217,\"matched\":[\"Активные инциденты\"],\"text\":\" incidents_html = health_section(\\\"Активные инциденты\\\", len(incidents), incidents_state, incidents_table)\"},{\"line\":220,\"matched\":[\"Cluster Admin Incident Engine\",\"observe/notify\",\"auto-heal отключён\"],\"text\":\" page = f\\\"\\\"\\\"Cluster Admin Incident Engine
Cluster Admin Incident Engine {engine_badge}
observe/notify · auto-heal отключён
{cards}
{nodes_html}{incidents_html}{services_html}
\\\"\\\"\\\"\"},{\"line\":243,\"matched\":[\"Cluster Admin Incident Engine\"],\"text\":\" \\\"# HELP cluster_admin_up Cluster Admin Incident Engine availability\\\",\"}],\"matched_signatures\":[\"Cluster Admin Incident Engine\",\"observe/notify\",\"auto-heal отключён\",\"Активные инциденты\",\"VM и CT\",\"Инциденты\"],\"mode\":\"0o750\",\"path\":\"/opt/cluster-admin-incident-engine/app.py\",\"sha256\":\"17d95ebfc28cef34846a8999664019d5d032ee8176b7fedd9ceeebfc5c97e3b6\",\"signature_count\":6},\"actual_ui_source_found\":true,\"next_action\":\"resolve only the remaining route/source ambiguity\",\"ready_for_actual_ui_patch_design\":false,\"same_route_as_updates_card\":false,\"updates_card_route_count\":2},\"euid\":0,\"hostname\":\"cluster-admin\",\"http_probes\":[{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/\",\"port\":22,\"rc\":1,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (1) Received HTTP/0.9 when not allowed\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/index.html\",\"port\":22,\"rc\":1,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (1) Received HTTP/0.9 when not allowed\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/dashboard\",\"port\":22,\"rc\":1,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (1) Received HTTP/0.9 when not allowed\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/admin\",\"port\":22,\"rc\":1,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (1) Received HTTP/0.9 when not allowed\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/cluster-admin\",\"port\":22,\"rc\":1,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (1) Received HTTP/0.9 when not allowed\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/cluster-admin/\",\"port\":22,\"rc\":1,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (1) Received HTTP/0.9 when not allowed\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/\",\"port\":53,\"rc\":7,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (7) Failed to connect to port 53 after 0 ms: Couldn't connect to server\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/index.html\",\"port\":53,\"rc\":7,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (7) Failed to connect to port 53 after 0 ms: Couldn't connect to server\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/dashboard\",\"port\":53,\"rc\":7,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (7) Failed to connect to port 53 after 0 ms: Couldn't connect to server\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/admin\",\"port\":53,\"rc\":7,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (7) Failed to connect to port 53 after 0 ms: Couldn't connect to server\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/cluster-admin\",\"port\":53,\"rc\":7,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (7) Failed to connect to port 53 after 0 ms: Couldn't connect to server\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/cluster-admin/\",\"port\":53,\"rc\":7,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (7) Failed to connect to port 53 after 0 ms: Couldn't connect to server\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/\",\"port\":5355,\"rc\":28,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (28) Operation timed out after 8001 milliseconds with 0 bytes received\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/index.html\",\"port\":5355,\"rc\":28,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (28) Operation timed out after 8001 milliseconds with 0 bytes received\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/dashboard\",\"port\":5355,\"rc\":28,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (28) Operation timed out after 8001 milliseconds with 0 bytes received\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/admin\",\"port\":5355,\"rc\":28,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (28) Operation timed out after 8001 milliseconds with 0 bytes received\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/cluster-admin\",\"port\":5355,\"rc\":28,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (28) Operation timed out after 8001 milliseconds with 0 bytes received\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/cluster-admin/\",\"port\":5355,\"rc\":28,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (28) Operation timed out after 8001 milliseconds with 0 bytes received\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/\",\"port\":5432,\"rc\":52,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (52) Empty reply from server\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/index.html\",\"port\":5432,\"rc\":52,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (52) Empty reply from server\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/dashboard\",\"port\":5432,\"rc\":52,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (52) Empty reply from server\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/admin\",\"port\":5432,\"rc\":52,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (52) Empty reply from server\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/cluster-admin\",\"port\":5432,\"rc\":52,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (52) Empty reply from server\\n\",\"title\":null},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":null,\"matched_signatures\":[],\"path\":\"/cluster-admin/\",\"port\":5432,\"rc\":52,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"curl: (52) Empty reply from server\\n\",\"title\":null},{\"body_bytes\":11619,\"body_sha256\":\"b5decba483998cb4a7132f6a2498231619f11457d2974461f0c3a1e07320d03c\",\"contains_updates_card\":true,\"http_status\":200,\"matched_signatures\":[],\"path\":\"/\",\"port\":8080,\"rc\":0,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"\",\"title\":\"Homelab Cluster Admin\"},{\"body_bytes\":11619,\"body_sha256\":\"b5decba483998cb4a7132f6a2498231619f11457d2974461f0c3a1e07320d03c\",\"contains_updates_card\":true,\"http_status\":200,\"matched_signatures\":[],\"path\":\"/index.html\",\"port\":8080,\"rc\":0,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"\",\"title\":\"Homelab Cluster Admin\"},{\"body_bytes\":335,\"body_sha256\":\"860b53ed6ea6a0cf602fae632cfcd28dbcf637f85a8bee28d2ee9c6cc9081669\",\"contains_updates_card\":false,\"http_status\":404,\"matched_signatures\":[],\"path\":\"/dashboard\",\"port\":8080,\"rc\":0,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"\",\"title\":\"Error response\"},{\"body_bytes\":335,\"body_sha256\":\"860b53ed6ea6a0cf602fae632cfcd28dbcf637f85a8bee28d2ee9c6cc9081669\",\"contains_updates_card\":false,\"http_status\":404,\"matched_signatures\":[],\"path\":\"/admin\",\"port\":8080,\"rc\":0,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"\",\"title\":\"Error response\"},{\"body_bytes\":335,\"body_sha256\":\"860b53ed6ea6a0cf602fae632cfcd28dbcf637f85a8bee28d2ee9c6cc9081669\",\"contains_updates_card\":false,\"http_status\":404,\"matched_signatures\":[],\"path\":\"/cluster-admin\",\"port\":8080,\"rc\":0,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"\",\"title\":\"Error response\"},{\"body_bytes\":335,\"body_sha256\":\"860b53ed6ea6a0cf602fae632cfcd28dbcf637f85a8bee28d2ee9c6cc9081669\",\"contains_updates_card\":false,\"http_status\":404,\"matched_signatures\":[],\"path\":\"/cluster-admin/\",\"port\":8080,\"rc\":0,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"\",\"title\":\"Error response\"},{\"body_bytes\":0,\"body_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"contains_updates_card\":false,\"http_status\":303,\"matched_signatures\":[],\"path\":\"/\",\"port\":8081,\"rc\":0,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"\",\"title\":null},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"contains_updates_card\":false,\"http_status\":404,\"matched_signatures\":[],\"path\":\"/index.html\",\"port\":8081,\"rc\":0,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"\",\"title\":null},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"contains_updates_card\":false,\"http_status\":404,\"matched_signatures\":[],\"path\":\"/dashboard\",\"port\":8081,\"rc\":0,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"\",\"title\":null},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"contains_updates_card\":false,\"http_status\":404,\"matched_signatures\":[],\"path\":\"/admin\",\"port\":8081,\"rc\":0,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"\",\"title\":null},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"contains_updates_card\":false,\"http_status\":404,\"matched_signatures\":[],\"path\":\"/cluster-admin\",\"port\":8081,\"rc\":0,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"\",\"title\":null},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"contains_updates_card\":false,\"http_status\":404,\"matched_signatures\":[],\"path\":\"/cluster-admin/\",\"port\":8081,\"rc\":0,\"scheme\":\"http\",\"signature_count\":0,\"stderr\":\"\",\"title\":null}],\"listeners\":[{\"line\":\"LISTEN 0 5 0.0.0.0:8080 0.0.0.0:* users:((\\\"python3\\\",pid=439,fd=3)) \",\"pids\":[439],\"port\":8080},{\"line\":\"LISTEN 0 2048 0.0.0.0:8081 0.0.0.0:* users:((\\\"python3\\\",pid=487,fd=6)) \",\"pids\":[487],\"port\":8081},{\"line\":\"LISTEN 0 244 :5432 0.0.0.0:* users:((\\\"postgres\\\",pid=469,fd=6)) \",\"pids\":[469],\"port\":5432},{\"line\":\"LISTEN 0 4096 %lo:53 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=380,fd=18))\",\"pids\":[380],\"port\":53},{\"line\":\"LISTEN 0 4096 0.0.0.0:5355 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=380,fd=12))\",\"pids\":[380],\"port\":5355},{\"line\":\"LISTEN 0 4096 :53 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=380,fd=20))\",\"pids\":[380],\"port\":53},{\"line\":\"LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((\\\"sshd\\\",pid=457,fd=3)) \",\"pids\":[457],\"port\":22},{\"line\":\"LISTEN 0 244 [::1]:5432 [::]:* users:((\\\"postgres\\\",pid=469,fd=5)) \",\"pids\":[469],\"port\":5432},{\"line\":\"LISTEN 0 4096 [::]:5355 [::]:* users:((\\\"systemd-resolve\\\",pid=380,fd=14))\",\"pids\":[380],\"port\":5355},{\"line\":\"LISTEN 0 128 [::]:22 [::]:* users:((\\\"sshd\\\",pid=457,fd=4)) \",\"pids\":[457],\"port\":22}],\"processes\":[{\"cmdline\":\"/lib/systemd/systemd-resolved\",\"cwd\":\"/\",\"exe\":\"/usr/lib/systemd/systemd-resolved\",\"pid\":380,\"status_rc\":0,\"systemd_unit\":\"systemd-resolved.service\"},{\"cmdline\":\"/usr/bin/python3 -m http.server 8080 --bind 0.0.0.0 --directory /var/www/homelab-cluster-admin\",\"cwd\":\"/\",\"exe\":\"/usr/bin/python3.11\",\"pid\":439,\"status_rc\":0,\"systemd_unit\":\"homelab-cluster-admin-webpanel.service\"},{\"cmdline\":\"sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups\",\"cwd\":\"/\",\"exe\":\"/usr/sbin/sshd\",\"pid\":457,\"status_rc\":0,\"systemd_unit\":\"ssh.service\"},{\"cmdline\":\"/usr/lib/postgresql/15/bin/postgres -D /var/lib/postgresql/15/main -c config_file=/etc/postgresql/15/main/postgresql.conf\",\"cwd\":\"/var/lib/postgresql/15/main\",\"exe\":\"/usr/lib/postgresql/15/bin/postgres\",\"pid\":469,\"status_rc\":0,\"systemd_unit\":\"postgresql@15-main.service\"},{\"cmdline\":\"/usr/bin/python3 -m uvicorn app:app --host 0.0.0.0 --port 8081 --proxy-headers --forwarded-allow-ips=,\",\"cwd\":\"/opt/cluster-admin-incident-engine\",\"exe\":\"/usr/bin/python3.11\",\"pid\":487,\"status_rc\":0,\"systemd_unit\":\"cluster-admin-incident-engine.service\"}],\"scan\":{\"directories_scanned\":66,\"files_scanned\":395,\"matching_source_count\":3},\"signatures\":[\"Cluster Admin Incident Engine\",\"observe/notify\",\"auto-heal отключён\",\"Активные инциденты\",\"VM и CT\",\"Инциденты\"],\"source_matches\":[{\"bytes\":28599,\"contexts\":[{\"line\":73,\"matched\":[\"observe/notify\"],\"text\":\" return f\\\"\\\"\\\"\"},{\"line\":208,\"matched\":[\"VM и CT\",\"Инциденты\"],\"text\":\" cards = \\\"\\\".join([summary_card(\\\"Ноды\\\", counts[\\\"nodes\\\"], \\\"OK\\\" if counts[\\\"nodes\\\"] > 0 else \\\"ERROR\\\"), summary_card(\\\"VM и CT\\\", counts[\\\"guests\\\"], \\\"OK\\\" if counts[\\\"guests\\\"] > 0 else \\\"ERROR\\\"), summary_card(\\\"Сервисы\\\", counts[\\\"services\\\"], \\\"OK\\\" if counts[\\\"services\\\"] > 0 else \\\"ERROR\\\"), summary_card(\\\"Инциденты\\\", counts[\\\"incidents\\\"], \\\"ERROR\\\" if counts[\\\"incidents\\\"] > 0 else \\\"OK\\\")])\"},{\"line\":217,\"matched\":[\"Активные инциденты\"],\"text\":\" incidents_html = health_section(\\\"Активные инциденты\\\", len(incidents), incidents_state, incidents_table)\"},{\"line\":220,\"matched\":[\"Cluster Admin Incident Engine\",\"observe/notify\",\"auto-heal отключён\"],\"text\":\" page = f\\\"\\\"\\\"Cluster Admin Incident Engine
Cluster Admin Incident Engine {engine_badge}
observe/notify · auto-heal отключён
{cards}
{nodes_html}{incidents_html}{services_html}
\\\"\\\"\\\"\"},{\"line\":243,\"matched\":[\"Cluster Admin Incident Engine\"],\"text\":\" \\\"# HELP cluster_admin_up Cluster Admin Incident Engine availability\\\",\"}],\"matched_signatures\":[\"Cluster Admin Incident Engine\",\"observe/notify\",\"auto-heal отключён\",\"Активные инциденты\",\"VM и CT\",\"Инциденты\"],\"mode\":\"0o750\",\"path\":\"/opt/cluster-admin-incident-engine/app.py\",\"sha256\":\"17d95ebfc28cef34846a8999664019d5d032ee8176b7fedd9ceeebfc5c97e3b6\",\"signature_count\":6},{\"bytes\":803,\"contexts\":[{\"line\":2,\"matched\":[\"Cluster Admin Incident Engine\"],\"text\":\"Description=Cluster Admin Incident Engine web application\"}],\"matched_signatures\":[\"Cluster Admin Incident Engine\"],\"mode\":\"0o644\",\"path\":\"/etc/systemd/system/cluster-admin-incident-engine.service\",\"sha256\":\"1892e494de5caab11100d5ea9257b82857fd6138d73cfae91e888759321745ea\",\"signature_count\":1},{\"bytes\":803,\"contexts\":[{\"line\":2,\"matched\":[\"Cluster Admin Incident Engine\"],\"text\":\"Description=Cluster Admin Incident Engine web application\"}],\"matched_signatures\":[\"Cluster Admin Incident Engine\"],\"mode\":\"0o644\",\"path\":\"/etc/systemd/system/cluster-admin-incident-engine.service\",\"sha256\":\"1892e494de5caab11100d5ea9257b82857fd6138d73cfae91e888759321745ea\",\"signature_count\":1}],\"units\":[{\"cat_rc\":0,\"show\":{\"ActiveState\":\"inactive\",\"ExecStart\":\"{ path=/usr/bin/python3 ; argv[]=/usr/bin/python3 /opt/cluster-admin-incident-engine/collector.py ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:28:53 UTC] ; stop_time=[Wed 2026-08-05 16:28:53 UTC] ; pid=2039685 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/cluster-admin-incident-engine-collector.service\",\"LoadState\":\"loaded\",\"SubState\":\"dead\",\"TriggeredBy\":\"cluster-admin-incident-engine-collector.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"/opt/cluster-admin-incident-engine\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"cluster-admin-incident-engine-collector.service\",\"unit_text\":\"# /etc/systemd/system/cluster-admin-incident-engine-collector.service\\n[Unit]\\nDescription=Cluster Admin inventory metrics and incident collector\\nAfter=network-online.target postgresql.service cluster-admin-incident-engine.service\\nWants=network-online.target\\nRequires=postgresql.service\\n\\n[Service]\\nType=oneshot\\nUser=clusteradmin\\nGroup=clusteradmin\\nWorkingDirectory=/opt/cluster-admin-incident-engine\\nExecStart=/usr/bin/python3 /opt/cluster-admin-incident-engine/collector.py\\nUMask=0027\\nNoNewPrivileges=true\\nPrivateTmp=true\\nProtectSystem=strict\\nProtectHome=true\\nReadOnlyPaths=/etc/cluster-admin-incident-engine\\nReadWritePaths=/var/lib/cluster-admin-incident-engine /var/lib/homelab-health\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/cluster-admin-incident-engine-collector.timer\",\"LoadState\":\"loaded\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"cluster-admin-incident-engine-collector.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"cluster-admin-incident-engine-collector.timer\",\"unit_text\":\"# /etc/systemd/system/cluster-admin-incident-engine-collector.timer\\n[Unit]\\nDescription=Run Cluster Admin incident collector every minute\\n\\n[Timer]\\nOnBootSec=30s\\nOnUnitActiveSec=60s\\nAccuracySec=10s\\nPersistent=true\\nUnit=cluster-admin-incident-engine-collector.service\\n\\n[Install]\\nWantedBy=timers.target\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"active\",\"EnvironmentFiles\":\"/etc/cluster-admin-incident-engine/runtime.conf (ignore_errors=no)\",\"ExecStart\":\"{ path=/usr/bin/python3 ; argv[]=/usr/bin/python3 -m uvicorn app:app --host 0.0.0.0 --port 8081 --proxy-headers --forwarded-allow-ips=[PRIVATE_IP],127.0.0.1 ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\",\"FragmentPath\":\"/etc/systemd/system/cluster-admin-incident-engine.service\",\"LoadState\":\"loaded\",\"SubState\":\"running\",\"TriggeredBy\":\"\",\"Triggers\":\"\",\"UnitFileState\":\"enabled\",\"WorkingDirectory\":\"/opt/cluster-admin-incident-engine\"},\"show_rc\":0,\"signature_hits\":[\"Cluster Admin Incident Engine\"],\"source_path_hits\":[\"/etc/systemd/system/cluster-admin-incident-engine.service\"],\"unit\":\"cluster-admin-incident-engine.service\",\"unit_text\":\"# /etc/systemd/system/cluster-admin-incident-engine.service\\n[Unit]\\nDescription=Cluster Admin Incident Engine web application\\nAfter=network-online.target postgresql.service\\nWants=network-online.target\\nRequires=postgresql.service\\n\\n[Service]\\nType=simple\\nUser=clusteradmin\\nGroup=clusteradmin\\nWorkingDirectory=/opt/cluster-admin-incident-engine\\nEnvironmentFile=/etc/cluster-admin-incident-engine/runtime.conf\\nExecStart=/usr/bin/python3 -m uvicorn app:app --host 0.0.0.0 --port 8081 --proxy-headers --forwarded-allow-ips=,\\nRestart=on-failure\\nRestartSec=5\\nUMask=0027\\nNoNewPrivileges=true\\nPrivateTmp=true\\nProtectSystem=strict\\nProtectHome=true\\nReadOnlyPaths=/etc/cluster-admin-incident-engine\\nReadWritePaths=/var/lib/cluster-admin-incident-engine\\nRestrictSUIDSGID=true\\nLockPersonality=true\\nRestrictRealtime=true\\n\\n[Install]\\nWantedBy=multi-user.target\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"inactive\",\"ExecStart\":\"{ path=/usr/bin/python3 ; argv[]=/usr/bin/python3 /opt/cluster-admin-probe-agent/controller.py --run ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:29:22 UTC] ; stop_time=[Wed 2026-08-05 16:29:23 UTC] ; pid=2040010 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/cluster-admin-probe-agent.service\",\"LoadState\":\"loaded\",\"SubState\":\"dead\",\"TriggeredBy\":\"cluster-admin-probe-agent.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"cluster-admin-probe-agent.service\",\"unit_text\":\"# /etc/systemd/system/cluster-admin-probe-agent.service\\n[Unit]\\nDescription=Cluster Admin restricted read-only probe controller\\nAfter=network-online.target\\nWants=network-online.target\\n\\n[Service]\\nType=oneshot\\nUser=clusteradmin\\nGroup=clusteradmin\\nEnvironment=CLUSTER_ADMIN_PROBE_HEALTH=/var/lib/cluster-admin-probe-agent/cluster-admin-probe-agent.txt\\nExecStart=/usr/bin/python3 /opt/cluster-admin-probe-agent/controller.py --run\\nUMask=0077\\nNoNewPrivileges=yes\\nPrivateTmp=yes\\nPrivateDevices=yes\\nProtectSystem=strict\\nProtectHome=yes\\nProtectKernelTunables=yes\\nProtectKernelModules=yes\\nProtectKernelLogs=yes\\nProtectControlGroups=yes\\nProtectClock=yes\\nProtectHostname=yes\\nLockPersonality=yes\\nMemoryDenyWriteExecute=yes\\nRestrictSUIDSGID=yes\\nRestrictRealtime=yes\\nRemoveIPC=yes\\nCapabilityBoundingSet=\\nAmbientCapabilities=\\nRestrictAddressFamilies=AF_UNIX AF_INET AF_INET6\\nIPAddressDeny=any\\nIPAddressAllow=\\nIPAddressAllow=\\nIPAddressAllow=\\nIPAddressAllow=\\nReadOnlyPaths=/etc/cluster-admin-probe-agent /opt/cluster-admin-probe-agent\\nReadWritePaths=/var/lib/cluster-admin-probe-agent\\nStateDirectory=cluster-admin-probe-agent\\nStateDirectoryMode=0750\\nRuntimeDirectory=cluster-admin-probe-agent\\nTimeoutStartSec=70\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/cluster-admin-probe-agent.timer\",\"LoadState\":\"loaded\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"cluster-admin-probe-agent.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"cluster-admin-probe-agent.timer\",\"unit_text\":\"# /etc/systemd/system/cluster-admin-probe-agent.timer\\n[Unit]\\nDescription=Run Cluster Admin restricted probes every minute\\n\\n[Timer]\\nOnBootSec=2min\\nOnUnitActiveSec=60s\\nRandomizedDelaySec=5s\\nPersistent=true\\nUnit=cluster-admin-probe-agent.service\\n\\n[Install]\\nWantedBy=timers.target\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"inactive\",\"ExecStart\":\"{ path=/opt/homelab-cluster-admin/full-observer.sh ; argv[]=/opt/homelab-cluster-admin/full-observer.sh ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:29:08 UTC] ; stop_time=[Wed 2026-08-05 16:29:14 UTC] ; pid=2039783 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-full-observer.service\",\"LoadState\":\"loaded\",\"SubState\":\"dead\",\"TriggeredBy\":\"homelab-cluster-admin-full-observer.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"homelab-cluster-admin-full-observer.service\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-full-observer.service\\n[Unit]\\nDescription=Homelab cluster-admin full observer\\n\\n[Service]\\nType=oneshot\\nExecStart=/opt/homelab-cluster-admin/full-observer.sh\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-full-observer.timer\",\"LoadState\":\"loaded\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"homelab-cluster-admin-full-observer.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"homelab-cluster-admin-full-observer.timer\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-full-observer.timer\\n[Unit]\\nDescription=Run homelab cluster-admin full observer\\n\\n[Timer]\\nOnBootSec=5min\\nOnUnitActiveSec=5min\\nPersistent=true\\n\\n[Install]\\nWantedBy=timers.target\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"inactive\",\"ExecStart\":\"{ path=/opt/homelab-cluster-admin/cluster-observer.sh ; argv[]=/opt/homelab-cluster-admin/cluster-observer.sh ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:29:08 UTC] ; stop_time=[Wed 2026-08-05 16:29:08 UTC] ; pid=2039784 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-observer.service\",\"LoadState\":\"loaded\",\"SubState\":\"dead\",\"TriggeredBy\":\"homelab-cluster-admin-observer.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"homelab-cluster-admin-observer.service\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-observer.service\\n[Unit]\\nDescription=Homelab cluster-admin observer\\n\\n[Service]\\nType=oneshot\\nExecStart=/opt/homelab-cluster-admin/cluster-observer.sh\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-observer.timer\",\"LoadState\":\"loaded\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"homelab-cluster-admin-observer.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"homelab-cluster-admin-observer.timer\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-observer.timer\\n[Unit]\\nDescription=Run homelab cluster-admin observer\\n\\n[Timer]\\nOnBootSec=3min\\nOnUnitActiveSec=5min\\nPersistent=true\\n\\n[Install]\\nWantedBy=timers.target\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"inactive\",\"ExecStart\":\"{ path=/opt/homelab-cluster-admin/self-check.sh ; argv[]=/opt/homelab-cluster-admin/self-check.sh ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:29:08 UTC] ; stop_time=[Wed 2026-08-05 16:29:08 UTC] ; pid=2039785 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-self-check.service\",\"LoadState\":\"loaded\",\"SubState\":\"dead\",\"TriggeredBy\":\"homelab-cluster-admin-self-check.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"homelab-cluster-admin-self-check.service\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-self-check.service\\n[Unit]\\nDescription=Homelab cluster-admin self check\\n\\n[Service]\\nType=oneshot\\nExecStart=/opt/homelab-cluster-admin/self-check.sh\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-self-check.timer\",\"LoadState\":\"loaded\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"homelab-cluster-admin-self-check.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"homelab-cluster-admin-self-check.timer\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-self-check.timer\\n[Unit]\\nDescription=Run homelab cluster-admin self check\\n\\n[Timer]\\nOnBootSec=2min\\nOnUnitActiveSec=5min\\nPersistent=true\\n\\n[Install]\\nWantedBy=timers.target\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-update-visibility-index.path\",\"LoadState\":\"loaded\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"homelab-cluster-admin-update-visibility-index.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"homelab-cluster-admin-update-visibility-index.path\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-update-visibility-index.path\\n[Unit]\\nDescription=Reapply Cluster Admin update visibility after index regeneration\\nStartLimitIntervalSec=0\\n\\n[Path]\\nPathChanged=/var/www/homelab-cluster-admin/index.html\\nPathModified=/var/www/homelab-cluster-admin/index.html\\nPathChanged=/var/www/homelab-cluster-admin\\nUnit=homelab-cluster-admin-update-visibility-index.service\\nTriggerLimitIntervalSec=0\\n\\n[Install]\\nWantedBy=multi-user.target\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"inactive\",\"ExecStart\":\"{ path=/usr/local/sbin/homelab-cluster-admin-update-visibility-index-patcher ; argv[]=/usr/local/sbin/homelab-cluster-admin-update-visibility-index-patcher --config /etc/homelab-cluster-admin-update-visibility-index.json ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:29:23 UTC] ; stop_time=[Wed 2026-08-05 16:29:23 UTC] ; pid=2040044 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-update-visibility-index.service\",\"LoadState\":\"loaded\",\"SubState\":\"dead\",\"TriggeredBy\":\"homelab-cluster-admin-update-visibility-index.path homelab-cluster-admin-update-visibility-index.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"homelab-cluster-admin-update-visibility-index.service\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-update-visibility-index.service\\n[Unit]\\nDescription=Maintain Cluster Admin update visibility card\\nAfter=local-fs.target\\nStartLimitIntervalSec=0\\n\\n[Service]\\nType=oneshot\\nUser=root\\nGroup=root\\nExecStart=/usr/local/sbin/homelab-cluster-admin-update-visibility-index-patcher --config /etc/homelab-cluster-admin-update-visibility-index.json\\nUMask=0022\\nNoNewPrivileges=true\\nPrivateTmp=true\\nProtectHome=read-only\\nProtectSystem=full\\nReadWritePaths=/var/www/homelab-cluster-admin\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-update-visibility-index.timer\",\"LoadState\":\"loaded\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"homelab-cluster-admin-update-visibility-index.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"homelab-cluster-admin-update-visibility-index.timer\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-update-visibility-index.timer\\n[Unit]\\nDescription=Periodic Cluster Admin update visibility repair\\n\\n[Timer]\\nOnBootSec=20s\\nOnUnitActiveSec=30s\\nAccuracySec=5s\\nRandomizedDelaySec=0\\nPersistent=true\\nUnit=homelab-cluster-admin-update-visibility-index.service\\n\\n[Install]\\nWantedBy=timers.target\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"inactive\",\"ExecStart\":\"{ path=/opt/homelab-cluster-admin/render-webpanel-cycle-break.sh ; argv[]=/opt/homelab-cluster-admin/render-webpanel-cycle-break.sh ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:28:53 UTC] ; stop_time=[Wed 2026-08-05 16:28:53 UTC] ; pid=2039687 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-webpanel-render.service\",\"LoadState\":\"loaded\",\"SubState\":\"dead\",\"TriggeredBy\":\"homelab-cluster-admin-webpanel-render.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"homelab-cluster-admin-webpanel-render.service\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-webpanel-render.service\\n[Unit]\\nDescription=Render Homelab cluster-admin web panel\\n\\n[Service]\\nType=oneshot\\nExecStart=/opt/homelab-cluster-admin/render-webpanel.sh\\n\\n# /etc/systemd/system/homelab-cluster-admin-webpanel-render.service.d/10-cycle-break.conf\\n[Service]\\nExecStart=\\nExecStart=/opt/homelab-cluster-admin/render-webpanel-cycle-break.sh\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-webpanel-render.timer\",\"LoadState\":\"loaded\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"homelab-cluster-admin-webpanel-render.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"homelab-cluster-admin-webpanel-render.timer\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-webpanel-render.timer\\n[Unit]\\nDescription=Refresh Homelab cluster-admin web panel\\n\\n[Timer]\\nOnBootSec=1min\\nOnUnitActiveSec=1min\\nPersistent=true\\n\\n[Install]\\nWantedBy=timers.target\"},{\"cat_rc\":0,\"show\":{\"ActiveState\":\"active\",\"ExecStart\":\"{ path=/usr/bin/python3 ; argv[]=/usr/bin/python3 -m http.server 8080 --bind 0.0.0.0 --directory /var/www/homelab-cluster-admin ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-webpanel.service\",\"LoadState\":\"loaded\",\"SubState\":\"running\",\"TriggeredBy\":\"\",\"Triggers\":\"\",\"UnitFileState\":\"enabled\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"signature_hits\":[],\"source_path_hits\":[],\"unit\":\"homelab-cluster-admin-webpanel.service\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-webpanel.service\\n[Unit]\\nDescription=Homelab cluster-admin web panel\\nAfter=network-online.target\\nWants=network-online.target\\n\\n[Service]\\nType=simple\\nExecStart=/usr/bin/python3 -m http.server 8080 --bind 0.0.0.0 --directory /var/www/homelab-cluster-admin\\nRestart=always\\nRestartSec=5\\n\\n[Install]\\nWantedBy=multi-user.target\"}]},\"rollback_restored\":false,\"rollback_started\":false,\"schema\":35,\"screenshot_observation\":{\"basis\":\"user-provided screenshot\",\"updates_card_visible\":false,\"visible_title\":\"Cluster Admin Incident Engine\"},\"status\":\"OK\",\"transport\":{\"rc\":0,\"stderr\":\"\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":41666,\"stdout_sha256\":\"0a63da0d742aa53085f8fe9e7ad2e1d7ff810fa267eddb048fc11ec3dae71786\"},\"v34_exact_result\":{\"changes_made\":true,\"control_plane_error\":null,\"identity_confirmed\":true,\"internal_http_good_routes\":[{\"html_status\":200,\"json_status\":200,\"port\":8080,\"root_card\":true,\"root_marker\":true,\"root_status\":200,\"scheme\":\"http\"}],\"mutation_outcome\":\"MUTATED\",\"output_bytes\":3062,\"output_sha256\":\"78f0ba6d511b1bd7f444504882982d2736faad0094eab12895e2c75736bee63f\",\"rollback_restored\":false,\"rollback_started\":false,\"runner_document_rc\":0,\"runner_json_sha256\":\"be9ef7f5b17b5f96195a321c99cde6768c9a0649e1cc9738cb4e2657261399ad\",\"runner_rc\":0,\"runner_status\":\"OK\",\"runner_text_sha256\":\"702eb0207998708662ee9f79c931ac4c1e229b1f352300d79b05354075454568\",\"runner_wrapper_matches_document\":true,\"state_document_sha256\":\"0373687b69a965476ea11cb0a48b23a9cedffd9e1f07010e2fbc861d12ab771e\",\"state_status\":\"OK\",\"timer_self_heal_seconds\":36}}\n" + "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z\",\"command_rc\":0,\"mutation_outcome\":\"NO_MUTATION\",\"output_truncated_in_json\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"changes_made\":false,\"command_id\":\"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z\",\"command_rc\":0,\"lookup_lane_http_status\":409,\"mutation_outcome\":\"NO_MUTATION\",\"next_action\":\"USE_THIS_SHA_VERIFIED_TARGET_RESULT; DO_NOT_USE_LATEST; DO_NOT_REPAIR_LOOKUP_FOR_READING\",\"output_truncated_in_json\":false,\"rc\":0,\"read_only\":true,\"rollback_restored\":null,\"rollback_started\":false,\"schema\":1,\"status\":\"OK\",\"target_execution\":{\"changes_made\":null,\"command_rc\":null,\"control_plane_error\":null,\"mutation_outcome\":null,\"output_truncated_in_json\":false,\"rollback_restored\":null,\"rollback_started\":null,\"runner_document_rc\":76,\"runner_rc\":76,\"runner_status\":\"FAIL\",\"runner_wrapper_matches_document\":true},\"target_identity\":{\"capsule_sha256\":\"0300643299c86635061bf0cbbca202f90aeb5a92c77b8c3de2ec43caddfa600f\",\"command_id\":\"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\",\"full_output_bytes\":1507,\"full_output_lines\":1,\"full_output_read\":true,\"output_expected_sha256\":[],\"output_sha256\":\"db4ba1f9c2fb8dbb2eae330663a8ffdad1f118db7cea408eb775d1fb77ae9730\",\"runner_examined_values\":111,\"runner_json_expected_sha256\":[\"4222d82581430ee7ee20e7cd43b339d5a7c072c97f1eaea41e1f8e360f6dc0ed\"],\"runner_json_roots\":1,\"runner_json_sha256\":\"4222d82581430ee7ee20e7cd43b339d5a7c072c97f1eaea41e1f8e360f6dc0ed\",\"runner_text_expected_sha256\":[\"070abb9446abf0bdbef81c7f5aacbdaf956ef3b4133200341f535488ee1b55da\"],\"runner_text_sha256\":\"070abb9446abf0bdbef81c7f5aacbdaf956ef3b4133200341f535488ee1b55da\",\"state_file\":\"AMAGIMUZZB.json\",\"state_file_sha256\":\"174595d59e98ceb9180f48d6d2a77c53f7135a3bd8e4d7086fef71ffcc84b548\"},\"target_output_sanitized\":\"{\\\"analysis_ready\\\": true, \\\"backup_manifest_sha256\\\": \\\"9ebc6eedf2fd573ef088723e84a694bed56eb1006e2903f9b22fe59173ff7355\\\", \\\"candidate_self_test\\\": {\\\"complaints_immutable\\\": true, \\\"status\\\": \\\"OK\\\", \\\"version\\\": \\\"2026.08.05-mvp1\\\"}, \\\"changes_made\\\": true, \\\"command_id\\\": \\\"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\\\", \\\"command_rc\\\": 0, \\\"complaints_guardrail\\\": {\\\"immutable\\\": true, \\\"mutation_allowed\\\": false, \\\"service_content_read\\\": false, \\\"source_content_read\\\": false, \\\"storage_read\\\": false}, \\\"installed_sha256\\\": {\\\"app.py\\\": \\\"2110f1ba63ba80592d7fb898e18611772069f07605ed04a379e08e86fcab89b6\\\", \\\"rules.json\\\": \\\"a704bd1708e5bbcd4db98735b692ec4dfcff80cc33e98fd17dda6ae0f5a4d653\\\", \\\"skladchik-moderator-assistant.service\\\": \\\"fd68b1ddb7b2da28da403d93b83af323157c1f7e05a92df2e4221a893f8ef0f4\\\"}, \\\"mutation_outcome\\\": \\\"APPLIED\\\", \\\"next_action\\\": \\\"MAP_REVERSE_PROXY_AND_PUBLISH_ASSISTANT_UI_WITHOUT_TOUCHING_COMPLAINTS\\\", \\\"output_truncated_in_json\\\": false, \\\"protected_guard_mode\\\": \\\"LOCAL_EXACT_ABSENCE\\\", \\\"protected_units_verified\\\": 6, \\\"rc\\\": 0, \\\"rollback_restored\\\": null, \\\"rollback_started\\\": false, \\\"root_cause_classification\\\": \\\"SEPARATE_NON_COMPLAINT_MODERATOR_ASSISTANT_INSTALLED\\\", \\\"service\\\": {\\\"bind\\\": \\\"127.0.0.1:18787\\\", \\\"health\\\": {\\\"complaints_immutable\\\": true, \\\"ruleset_version\\\": \\\"admin-courses-2026-08-05\\\", \\\"status\\\": \\\"ok\\\", \\\"version\\\": \\\"2026.08.05-mvp1\\\"}, \\\"name\\\": \\\"skladchik-moderator-assistant.service\\\"}, \\\"status\\\": \\\"OK\\\", \\\"storage\\\": {\\\"raw_requests_stored\\\": false, \\\"request_hash_only\\\": true, \\\"separate\\\": true}, \\\"version\\\": 1}\\n\",\"target_payload_documents\":[{\"analysis_ready\":true,\"changes_made\":true,\"command_rc\":0,\"mutation_outcome\":\"APPLIED\",\"next_action\":\"MAP_REVERSE_PROXY_AND_PUBLISH_ASSISTANT_UI_WITHOUT_TOUCHING_COMPLAINTS\",\"output_truncated_in_json\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"root_cause_classification\":\"SEPARATE_NON_COMPLAINT_MODERATOR_ASSISTANT_INSTALLED\",\"status\":\"OK\"}],\"target_runner\":{\"changes_made\":null,\"command_rc\":0,\"mutation_outcome\":\"UNKNOWN\",\"output_truncated_in_json\":false,\"rc\":76,\"rollback_restored\":null,\"rollback_started\":null,\"status\":\"FAIL\"},\"target_runner_document\":{},\"target_runner_text_sanitized\":\"CHAT_OUTPUT_BEGIN\\nCOMMAND_ID=HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\\nSTATUS=FAIL\\nRC=76\\nHOST=pve01\\nMODE=change\\nCOMPONENT=skladchik-moderator-core-install-v2\\nREFERENCE_REGISTER_CHECK=OK\\nREFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e\\nERROR_REGISTER_CHECK=OK\\nERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83\\nCOMMAND_SHA256=ce33944c79a14f3e34c5bef3910cdb2154df9551c3cea68c6a56c455843c4a8d\\nDUPLICATE_FAILED_COMMAND_BLOCKED=false\\nEXECUTION_STARTED=true\\nCHANGE_DECLARED=true\\nRESULT_CONTRACT_VALID=false\\nRESULT_CONTRACT_STATUS=UNKNOWN\\nRESULT_CONTRACT_ERROR=MISSING_CONTRACT\\nCOMMAND_RC=0\\nCHANGES_MADE=unknown\\nROLLBACK_STARTED=unknown\\nROLLBACK_RESTORED=null\\nMUTATION_OUTCOME=UNKNOWN\\nSANITIZED=yes\\nSECRETS_INCLUDED=no\\nPRIVATE_ADDRESSES_INCLUDED=no\\nRAW_EVIDENCE_SHA256=db4ba1f9c2fb8dbb2eae330663a8ffdad1f118db7cea408eb775d1fb77ae9730\\nSANITIZED_OUTPUT_SHA256=db4ba1f9c2fb8dbb2eae330663a8ffdad1f118db7cea408eb775d1fb77ae9730\\nOUTPUT_BEGIN\\n{\\\"analysis_ready\\\": true, \\\"backup_manifest_sha256\\\": \\\"9ebc6eedf2fd573ef088723e84a694bed56eb1006e2903f9b22fe59173ff7355\\\", \\\"candidate_self_test\\\": {\\\"complaints_immutable\\\": true, \\\"status\\\": \\\"OK\\\", \\\"version\\\": \\\"2026.08.05-mvp1\\\"}, \\\"changes_made\\\": true, \\\"command_id\\\": \\\"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\\\", \\\"command_rc\\\": 0, \\\"complaints_guardrail\\\": {\\\"immutable\\\": true, \\\"mutation_allowed\\\": false, \\\"service_content_read\\\": false, \\\"source_content_read\\\": false, \\\"storage_read\\\": false}, \\\"installed_sha256\\\": {\\\"app.py\\\": \\\"2110f1ba63ba80592d7fb898e18611772069f07605ed04a379e08e86fcab89b6\\\", \\\"rules.json\\\": \\\"a704bd1708e5bbcd4db98735b692ec4dfcff80cc33e98fd17dda6ae0f5a4d653\\\", \\\"skladchik-moderator-assistant.service\\\": \\\"fd68b1ddb7b2da28da403d93b83af323157c1f7e05a92df2e4221a893f8ef0f4\\\"}, \\\"mutation_outcome\\\": \\\"APPLIED\\\", \\\"next_action\\\": \\\"MAP_REVERSE_PROXY_AND_PUBLISH_ASSISTANT_UI_WITHOUT_TOUCHING_COMPLAINTS\\\", \\\"output_truncated_in_json\\\": false, \\\"protected_guard_mode\\\": \\\"LOCAL_EXACT_ABSENCE\\\", \\\"protected_units_verified\\\": 6, \\\"rc\\\": 0, \\\"rollback_restored\\\": null, \\\"rollback_started\\\": false, \\\"root_cause_classification\\\": \\\"SEPARATE_NON_COMPLAINT_MODERATOR_ASSISTANT_INSTALLED\\\", \\\"service\\\": {\\\"bind\\\": \\\"127.0.0.1:18787\\\", \\\"health\\\": {\\\"complaints_immutable\\\": true, \\\"ruleset_version\\\": \\\"admin-courses-2026-08-05\\\", \\\"status\\\": \\\"ok\\\", \\\"version\\\": \\\"2026.08.05-mvp1\\\"}, \\\"name\\\": \\\"skladchik-moderator-assistant.service\\\"}, \\\"status\\\": \\\"OK\\\", \\\"storage\\\": {\\\"raw_requests_stored\\\": false, \\\"request_hash_only\\\": true, \\\"separate\\\": true}, \\\"version\\\": 1}\\n\\nOUTPUT_END\\nCHAT_OUTPUT_END\\n\",\"target_state\":{\"control_plane_error\":null,\"error\":null,\"status\":\"FAIL\"}}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 55960cc..46a96d6 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,15 +1,15 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=HOMELAB-CLUSTER-ADMIN-UPDATES-V35-ACTUAL-UI-ROUTE-READ-ONLY-20260805T163000Z +COMMAND_ID=HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z STATUS=OK RC=0 HOST=pve01 MODE=verify -COMPONENT=homelab-cluster-admin-update-visibility +COMPONENT=skladchik-moderator-core-v2-result-summary REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 -COMMAND_SHA256=82f5d85404b8419244364987a5ca91796759e162a7a118f96f6f4396befe5198 +COMMAND_SHA256=d2fdf8c127eb6a57b9579d6af26a7af82f9a5bd2f79baaf6436e81b45f086a22 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false @@ -24,11 +24,11 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=27b6cb0b8eb8288db3fbf28a4fe5d03d7c8d88f79b464cef2a261ccd0811e876 -SANITIZED_OUTPUT_SHA256=db4f6d44451f8920c1e8ffc0966413765f623391053e3dac989965f3de9b4eaf +RAW_EVIDENCE_SHA256=039f9379763e3bd739daf552ec72ed34d369414b9d480c57905e2de07d981cdc +SANITIZED_OUTPUT_SHA256=039f9379763e3bd739daf552ec72ed34d369414b9d480c57905e2de07d981cdc OUTPUT_BEGIN -HOMELAB_RESULT_CONTRACT={"actual_ui_contains_updates_card":false,"actual_ui_route_count":0,"actual_ui_route_found":false,"actual_ui_source_found":true,"changes_made":false,"command_id":"HOMELAB-CLUSTER-ADMIN-UPDATES-V35-ACTUAL-UI-ROUTE-READ-ONLY-20260805T163000Z","command_rc":0,"control_plane_error":null,"mutation_outcome":"NO_MUTATION","next_action":"resolve only the remaining route/source ambiguity","rc":0,"ready_for_actual_ui_patch_design":false,"report_bytes":46770,"report_sha256":"afeebf586fd9522757518ef90118630b9a0cf105a6c1c84085e1915888a73ea8","rollback_restored":false,"rollback_started":false,"same_route_as_updates_card":false,"screenshot_contradiction_confirmed":true,"status":"OK","updates_card_route_count":2,"v34_exact_result_identity_confirmed":true,"version":1} -{"changes_made":false,"command_id":"HOMELAB-CLUSTER-ADMIN-UPDATES-V35-ACTUAL-UI-ROUTE-READ-ONLY-20260805T163000Z","diagnosis":{"actual_ui_contains_updates_card":false,"actual_ui_route":null,"actual_ui_route_count":0,"actual_ui_route_found":false,"actual_ui_source":{"bytes":28599,"contexts":[{"line":73,"matched":["observe/notify"],"text":" return f\"\"\""},{"line":208,"matched":["VM и CT","Инциденты"],"text":" cards = \"\".join([summary_card(\"Ноды\", counts[\"nodes\"], \"OK\" if counts[\"nodes\"] > 0 else \"ERROR\"), summary_card(\"VM и CT\", counts[\"guests\"], \"OK\" if counts[\"guests\"] > 0 else \"ERROR\"), summary_card(\"Сервисы\", counts[\"services\"], \"OK\" if counts[\"services\"] > 0 else \"ERROR\"), summary_card(\"Инциденты\", counts[\"incidents\"], \"ERROR\" if counts[\"incidents\"] > 0 else \"OK\")])"},{"line":217,"matched":["Активные инциденты"],"text":" incidents_html = health_section(\"Активные инциденты\", len(incidents), incidents_state, incidents_table)"},{"line":220,"matched":["Cluster Admin Incident Engine","observe/notify","auto-heal отключён"],"text":" page = f\"\"\"Cluster Admin Incident Engine
Cluster Admin Incident Engine {engine_badge}
observe/notify · auto-heal отключён
{cards}
{nodes_html}{incidents_html}{services_html}
\"\"\""},{"line":243,"matched":["Cluster Admin Incident Engine"],"text":" \"# HELP cluster_admin_up Cluster Admin Incident Engine availability\","}],"matched_signatures":["Cluster Admin Incident Engine","observe/notify","auto-heal отключён","Активные инциденты","VM и CT","Инциденты"],"mode":"0o750","path":"/opt/cluster-admin-incident-engine/app.py","sha256":"17d95ebfc28cef34846a8999664019d5d032ee8176b7fedd9ceeebfc5c97e3b6","signature_count":6},"actual_ui_source_found":true,"next_action":"resolve only the remaining route/source ambiguity","ready_for_actual_ui_patch_design":false,"same_route_as_updates_card":false,"updates_card_route_count":2},"mutation_outcome":"NO_MUTATION","read_only":true,"remote_actual_ui_analysis":{"diagnosis":{"actual_ui_contains_updates_card":false,"actual_ui_route":null,"actual_ui_route_count":0,"actual_ui_route_found":false,"actual_ui_source":{"bytes":28599,"contexts":[{"line":73,"matched":["observe/notify"],"text":" return f\"\"\""},{"line":208,"matched":["VM и CT","Инциденты"],"text":" cards = \"\".join([summary_card(\"Ноды\", counts[\"nodes\"], \"OK\" if counts[\"nodes\"] > 0 else \"ERROR\"), summary_card(\"VM и CT\", counts[\"guests\"], \"OK\" if counts[\"guests\"] > 0 else \"ERROR\"), summary_card(\"Сервисы\", counts[\"services\"], \"OK\" if counts[\"services\"] > 0 else \"ERROR\"), summary_card(\"Инциденты\", counts[\"incidents\"], \"ERROR\" if counts[\"incidents\"] > 0 else \"OK\")])"},{"line":217,"matched":["Активные инциденты"],"text":" incidents_html = health_section(\"Активные инциденты\", len(incidents), incidents_state, incidents_table)"},{"line":220,"matched":["Cluster Admin Incident Engine","observe/notify","auto-heal отключён"],"text":" page = f\"\"\"Cluster Admin Incident Engine
Cluster Admin Incident Engine {engine_badge}
observe/notify · auto-heal отключён
{cards}
{nodes_html}{incidents_html}{services_html}
\"\"\""},{"line":243,"matched":["Cluster Admin Incident Engine"],"text":" \"# HELP cluster_admin_up Cluster Admin Incident Engine availability\","}],"matched_signatures":["Cluster Admin Incident Engine","observe/notify","auto-heal отключён","Активные инциденты","VM и CT","Инциденты"],"mode":"0o750","path":"/opt/cluster-admin-incident-engine/app.py","sha256":"17d95ebfc28cef34846a8999664019d5d032ee8176b7fedd9ceeebfc5c97e3b6","signature_count":6},"actual_ui_source_found":true,"next_action":"resolve only the remaining route/source ambiguity","ready_for_actual_ui_patch_design":false,"same_route_as_updates_card":false,"updates_card_route_count":2},"euid":0,"hostname":"cluster-admin","http_probes":[{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/","port":22,"rc":1,"scheme":"http","signature_count":0,"stderr":"curl: (1) Received HTTP/0.9 when not allowed\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/index.html","port":22,"rc":1,"scheme":"http","signature_count":0,"stderr":"curl: (1) Received HTTP/0.9 when not allowed\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/dashboard","port":22,"rc":1,"scheme":"http","signature_count":0,"stderr":"curl: (1) Received HTTP/0.9 when not allowed\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/admin","port":22,"rc":1,"scheme":"http","signature_count":0,"stderr":"curl: (1) Received HTTP/0.9 when not allowed\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/cluster-admin","port":22,"rc":1,"scheme":"http","signature_count":0,"stderr":"curl: (1) Received HTTP/0.9 when not allowed\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/cluster-admin/","port":22,"rc":1,"scheme":"http","signature_count":0,"stderr":"curl: (1) Received HTTP/0.9 when not allowed\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/","port":53,"rc":7,"scheme":"http","signature_count":0,"stderr":"curl: (7) Failed to connect to port 53 after 0 ms: Couldn't connect to server\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/index.html","port":53,"rc":7,"scheme":"http","signature_count":0,"stderr":"curl: (7) Failed to connect to port 53 after 0 ms: Couldn't connect to server\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/dashboard","port":53,"rc":7,"scheme":"http","signature_count":0,"stderr":"curl: (7) Failed to connect to port 53 after 0 ms: Couldn't connect to server\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/admin","port":53,"rc":7,"scheme":"http","signature_count":0,"stderr":"curl: (7) Failed to connect to port 53 after 0 ms: Couldn't connect to server\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/cluster-admin","port":53,"rc":7,"scheme":"http","signature_count":0,"stderr":"curl: (7) Failed to connect to port 53 after 0 ms: Couldn't connect to server\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/cluster-admin/","port":53,"rc":7,"scheme":"http","signature_count":0,"stderr":"curl: (7) Failed to connect to port 53 after 0 ms: Couldn't connect to server\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/","port":5355,"rc":28,"scheme":"http","signature_count":0,"stderr":"curl: (28) Operation timed out after 8001 milliseconds with 0 bytes received\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/index.html","port":5355,"rc":28,"scheme":"http","signature_count":0,"stderr":"curl: (28) Operation timed out after 8001 milliseconds with 0 bytes received\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/dashboard","port":5355,"rc":28,"scheme":"http","signature_count":0,"stderr":"curl: (28) Operation timed out after 8001 milliseconds with 0 bytes received\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/admin","port":5355,"rc":28,"scheme":"http","signature_count":0,"stderr":"curl: (28) Operation timed out after 8001 milliseconds with 0 bytes received\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/cluster-admin","port":5355,"rc":28,"scheme":"http","signature_count":0,"stderr":"curl: (28) Operation timed out after 8001 milliseconds with 0 bytes received\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/cluster-admin/","port":5355,"rc":28,"scheme":"http","signature_count":0,"stderr":"curl: (28) Operation timed out after 8001 milliseconds with 0 bytes received\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/","port":5432,"rc":52,"scheme":"http","signature_count":0,"stderr":"curl: (52) Empty reply from server\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/index.html","port":5432,"rc":52,"scheme":"http","signature_count":0,"stderr":"curl: (52) Empty reply from server\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/dashboard","port":5432,"rc":52,"scheme":"http","signature_count":0,"stderr":"curl: (52) Empty reply from server\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/admin","port":5432,"rc":52,"scheme":"http","signature_count":0,"stderr":"curl: (52) Empty reply from server\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/cluster-admin","port":5432,"rc":52,"scheme":"http","signature_count":0,"stderr":"curl: (52) Empty reply from server\n","title":null},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":null,"matched_signatures":[],"path":"/cluster-admin/","port":5432,"rc":52,"scheme":"http","signature_count":0,"stderr":"curl: (52) Empty reply from server\n","title":null},{"body_bytes":11619,"body_sha256":"b5decba483998cb4a7132f6a2498231619f11457d2974461f0c3a1e07320d03c","contains_updates_card":true,"http_status":200,"matched_signatures":[],"path":"/","port":8080,"rc":0,"scheme":"http","signature_count":0,"stderr":"","title":"Homelab Cluster Admin"},{"body_bytes":11619,"body_sha256":"b5decba483998cb4a7132f6a2498231619f11457d2974461f0c3a1e07320d03c","contains_updates_card":true,"http_status":200,"matched_signatures":[],"path":"/index.html","port":8080,"rc":0,"scheme":"http","signature_count":0,"stderr":"","title":"Homelab Cluster Admin"},{"body_bytes":335,"body_sha256":"860b53ed6ea6a0cf602fae632cfcd28dbcf637f85a8bee28d2ee9c6cc9081669","contains_updates_card":false,"http_status":404,"matched_signatures":[],"path":"/dashboard","port":8080,"rc":0,"scheme":"http","signature_count":0,"stderr":"","title":"Error response"},{"body_bytes":335,"body_sha256":"860b53ed6ea6a0cf602fae632cfcd28dbcf637f85a8bee28d2ee9c6cc9081669","contains_updates_card":false,"http_status":404,"matched_signatures":[],"path":"/admin","port":8080,"rc":0,"scheme":"http","signature_count":0,"stderr":"","title":"Error response"},{"body_bytes":335,"body_sha256":"860b53ed6ea6a0cf602fae632cfcd28dbcf637f85a8bee28d2ee9c6cc9081669","contains_updates_card":false,"http_status":404,"matched_signatures":[],"path":"/cluster-admin","port":8080,"rc":0,"scheme":"http","signature_count":0,"stderr":"","title":"Error response"},{"body_bytes":335,"body_sha256":"860b53ed6ea6a0cf602fae632cfcd28dbcf637f85a8bee28d2ee9c6cc9081669","contains_updates_card":false,"http_status":404,"matched_signatures":[],"path":"/cluster-admin/","port":8080,"rc":0,"scheme":"http","signature_count":0,"stderr":"","title":"Error response"},{"body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contains_updates_card":false,"http_status":303,"matched_signatures":[],"path":"/","port":8081,"rc":0,"scheme":"http","signature_count":0,"stderr":"","title":null},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","contains_updates_card":false,"http_status":404,"matched_signatures":[],"path":"/index.html","port":8081,"rc":0,"scheme":"http","signature_count":0,"stderr":"","title":null},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","contains_updates_card":false,"http_status":404,"matched_signatures":[],"path":"/dashboard","port":8081,"rc":0,"scheme":"http","signature_count":0,"stderr":"","title":null},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","contains_updates_card":false,"http_status":404,"matched_signatures":[],"path":"/admin","port":8081,"rc":0,"scheme":"http","signature_count":0,"stderr":"","title":null},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","contains_updates_card":false,"http_status":404,"matched_signatures":[],"path":"/cluster-admin","port":8081,"rc":0,"scheme":"http","signature_count":0,"stderr":"","title":null},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","contains_updates_card":false,"http_status":404,"matched_signatures":[],"path":"/cluster-admin/","port":8081,"rc":0,"scheme":"http","signature_count":0,"stderr":"","title":null}],"listeners":[{"line":"LISTEN 0 5 0.0.0.0:8080 0.0.0.0:* users:((\"python3\",pid=439,fd=3)) ","pids":[439],"port":8080},{"line":"LISTEN 0 2048 0.0.0.0:8081 0.0.0.0:* users:((\"python3\",pid=487,fd=6)) ","pids":[487],"port":8081},{"line":"LISTEN 0 244 :5432 0.0.0.0:* users:((\"postgres\",pid=469,fd=6)) ","pids":[469],"port":5432},{"line":"LISTEN 0 4096 %lo:53 0.0.0.0:* users:((\"systemd-resolve\",pid=380,fd=18))","pids":[380],"port":53},{"line":"LISTEN 0 4096 0.0.0.0:5355 0.0.0.0:* users:((\"systemd-resolve\",pid=380,fd=12))","pids":[380],"port":5355},{"line":"LISTEN 0 4096 :53 0.0.0.0:* users:((\"systemd-resolve\",pid=380,fd=20))","pids":[380],"port":53},{"line":"LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((\"sshd\",pid=457,fd=3)) ","pids":[457],"port":22},{"line":"LISTEN 0 244 [::1]:5432 [::]:* users:((\"postgres\",pid=469,fd=5)) ","pids":[469],"port":5432},{"line":"LISTEN 0 4096 [::]:5355 [::]:* users:((\"systemd-resolve\",pid=380,fd=14))","pids":[380],"port":5355},{"line":"LISTEN 0 128 [::]:22 [::]:* users:((\"sshd\",pid=457,fd=4)) ","pids":[457],"port":22}],"processes":[{"cmdline":"/lib/systemd/systemd-resolved","cwd":"/","exe":"/usr/lib/systemd/systemd-resolved","pid":380,"status_rc":0,"systemd_unit":"systemd-resolved.service"},{"cmdline":"/usr/bin/python3 -m http.server 8080 --bind 0.0.0.0 --directory /var/www/homelab-cluster-admin","cwd":"/","exe":"/usr/bin/python3.11","pid":439,"status_rc":0,"systemd_unit":"homelab-cluster-admin-webpanel.service"},{"cmdline":"sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups","cwd":"/","exe":"/usr/sbin/sshd","pid":457,"status_rc":0,"systemd_unit":"ssh.service"},{"cmdline":"/usr/lib/postgresql/15/bin/postgres -D /var/lib/postgresql/15/main -c config_file=/etc/postgresql/15/main/postgresql.conf","cwd":"/var/lib/postgresql/15/main","exe":"/usr/lib/postgresql/15/bin/postgres","pid":469,"status_rc":0,"systemd_unit":"postgresql@15-main.service"},{"cmdline":"/usr/bin/python3 -m uvicorn app:app --host 0.0.0.0 --port 8081 --proxy-headers --forwarded-allow-ips=,","cwd":"/opt/cluster-admin-incident-engine","exe":"/usr/bin/python3.11","pid":487,"status_rc":0,"systemd_unit":"cluster-admin-incident-engine.service"}],"scan":{"directories_scanned":66,"files_scanned":395,"matching_source_count":3},"signatures":["Cluster Admin Incident Engine","observe/notify","auto-heal отключён","Активные инциденты","VM и CT","Инциденты"],"source_matches":[{"bytes":28599,"contexts":[{"line":73,"matched":["observe/notify"],"text":" return f\"\"\""},{"line":208,"matched":["VM и CT","Инциденты"],"text":" cards = \"\".join([summary_card(\"Ноды\", counts[\"nodes\"], \"OK\" if counts[\"nodes\"] > 0 else \"ERROR\"), summary_card(\"VM и CT\", counts[\"guests\"], \"OK\" if counts[\"guests\"] > 0 else \"ERROR\"), summary_card(\"Сервисы\", counts[\"services\"], \"OK\" if counts[\"services\"] > 0 else \"ERROR\"), summary_card(\"Инциденты\", counts[\"incidents\"], \"ERROR\" if counts[\"incidents\"] > 0 else \"OK\")])"},{"line":217,"matched":["Активные инциденты"],"text":" incidents_html = health_section(\"Активные инциденты\", len(incidents), incidents_state, incidents_table)"},{"line":220,"matched":["Cluster Admin Incident Engine","observe/notify","auto-heal отключён"],"text":" page = f\"\"\"Cluster Admin Incident Engine
Cluster Admin Incident Engine {engine_badge}
observe/notify · auto-heal отключён
{cards}
{nodes_html}{incidents_html}{services_html}
\"\"\""},{"line":243,"matched":["Cluster Admin Incident Engine"],"text":" \"# HELP cluster_admin_up Cluster Admin Incident Engine availability\","}],"matched_signatures":["Cluster Admin Incident Engine","observe/notify","auto-heal отключён","Активные инциденты","VM и CT","Инциденты"],"mode":"0o750","path":"/opt/cluster-admin-incident-engine/app.py","sha256":"17d95ebfc28cef34846a8999664019d5d032ee8176b7fedd9ceeebfc5c97e3b6","signature_count":6},{"bytes":803,"contexts":[{"line":2,"matched":["Cluster Admin Incident Engine"],"text":"Description=Cluster Admin Incident Engine web application"}],"matched_signatures":["Cluster Admin Incident Engine"],"mode":"0o644","path":"/etc/systemd/system/cluster-admin-incident-engine.service","sha256":"1892e494de5caab11100d5ea9257b82857fd6138d73cfae91e888759321745ea","signature_count":1},{"bytes":803,"contexts":[{"line":2,"matched":["Cluster Admin Incident Engine"],"text":"Description=Cluster Admin Incident Engine web application"}],"matched_signatures":["Cluster Admin Incident Engine"],"mode":"0o644","path":"/etc/systemd/system/cluster-admin-incident-engine.service","sha256":"1892e494de5caab11100d5ea9257b82857fd6138d73cfae91e888759321745ea","signature_count":1}],"units":[{"cat_rc":0,"show":{"ActiveState":"inactive","ExecStart":"{ path=/usr/bin/python3 ; argv[]=/usr/bin/python3 /opt/cluster-admin-incident-engine/collector.py ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:28:53 UTC] ; stop_time=[Wed 2026-08-05 16:28:53 UTC] ; pid=2039685 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/cluster-admin-incident-engine-collector.service","LoadState":"loaded","SubState":"dead","TriggeredBy":"cluster-admin-incident-engine-collector.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":"/opt/cluster-admin-incident-engine"},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"cluster-admin-incident-engine-collector.service","unit_text":"# /etc/systemd/system/cluster-admin-incident-engine-collector.service\n[Unit]\nDescription=Cluster Admin inventory metrics and incident collector\nAfter=network-online.target postgresql.service cluster-admin-incident-engine.service\nWants=network-online.target\nRequires=postgresql.service\n\n[Service]\nType=oneshot\nUser=clusteradmin\nGroup=clusteradmin\nWorkingDirectory=/opt/cluster-admin-incident-engine\nExecStart=/usr/bin/python3 /opt/cluster-admin-incident-engine/collector.py\nUMask=0027\nNoNewPrivileges=true\nPrivateTmp=true\nProtectSystem=strict\nProtectHome=true\nReadOnlyPaths=/etc/cluster-admin-incident-engine\nReadWritePaths=/var/lib/cluster-admin-incident-engine /var/lib/homelab-health"},{"cat_rc":0,"show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/cluster-admin-incident-engine-collector.timer","LoadState":"loaded","SubState":"waiting","TriggeredBy":"","Triggers":"cluster-admin-incident-engine-collector.service","UnitFileState":"enabled"},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"cluster-admin-incident-engine-collector.timer","unit_text":"# /etc/systemd/system/cluster-admin-incident-engine-collector.timer\n[Unit]\nDescription=Run Cluster Admin incident collector every minute\n\n[Timer]\nOnBootSec=30s\nOnUnitActiveSec=60s\nAccuracySec=10s\nPersistent=true\nUnit=cluster-admin-incident-engine-collector.service\n\n[Install]\nWantedBy=timers.target"},{"cat_rc":0,"show":{"ActiveState":"active","EnvironmentFiles":"/etc/cluster-admin-incident-engine/runtime.conf (ignore_errors=no)","ExecStart":"{ path=/usr/bin/python3 ; argv[]=/usr/bin/python3 -m uvicorn app:app --host 0.0.0.0 --port 8081 --proxy-headers --forwarded-allow-ips=[PRIVATE_IP],127.0.0.1 ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }","FragmentPath":"/etc/systemd/system/cluster-admin-incident-engine.service","LoadState":"loaded","SubState":"running","TriggeredBy":"","Triggers":"","UnitFileState":"enabled","WorkingDirectory":"/opt/cluster-admin-incident-engine"},"show_rc":0,"signature_hits":["Cluster Admin Incident Engine"],"source_path_hits":["/etc/systemd/system/cluster-admin-incident-engine.service"],"unit":"cluster-admin-incident-engine.service","unit_text":"# /etc/systemd/system/cluster-admin-incident-engine.service\n[Unit]\nDescription=Cluster Admin Incident Engine web application\nAfter=network-online.target postgresql.service\nWants=network-online.target\nRequires=postgresql.service\n\n[Service]\nType=simple\nUser=clusteradmin\nGroup=clusteradmin\nWorkingDirectory=/opt/cluster-admin-incident-engine\nEnvironmentFile=/etc/cluster-admin-incident-engine/runtime.conf\nExecStart=/usr/bin/python3 -m uvicorn app:app --host 0.0.0.0 --port 8081 --proxy-headers --forwarded-allow-ips=,\nRestart=on-failure\nRestartSec=5\nUMask=0027\nNoNewPrivileges=true\nPrivateTmp=true\nProtectSystem=strict\nProtectHome=true\nReadOnlyPaths=/etc/cluster-admin-incident-engine\nReadWritePaths=/var/lib/cluster-admin-incident-engine\nRestrictSUIDSGID=true\nLockPersonality=true\nRestrictRealtime=true\n\n[Install]\nWantedBy=multi-user.target"},{"cat_rc":0,"show":{"ActiveState":"inactive","ExecStart":"{ path=/usr/bin/python3 ; argv[]=/usr/bin/python3 /opt/cluster-admin-probe-agent/controller.py --run ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:29:22 UTC] ; stop_time=[Wed 2026-08-05 16:29:23 UTC] ; pid=2040010 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/cluster-admin-probe-agent.service","LoadState":"loaded","SubState":"dead","TriggeredBy":"cluster-admin-probe-agent.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":""},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"cluster-admin-probe-agent.service","unit_text":"# /etc/systemd/system/cluster-admin-probe-agent.service\n[Unit]\nDescription=Cluster Admin restricted read-only probe controller\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nType=oneshot\nUser=clusteradmin\nGroup=clusteradmin\nEnvironment=CLUSTER_ADMIN_PROBE_HEALTH=/var/lib/cluster-admin-probe-agent/cluster-admin-probe-agent.txt\nExecStart=/usr/bin/python3 /opt/cluster-admin-probe-agent/controller.py --run\nUMask=0077\nNoNewPrivileges=yes\nPrivateTmp=yes\nPrivateDevices=yes\nProtectSystem=strict\nProtectHome=yes\nProtectKernelTunables=yes\nProtectKernelModules=yes\nProtectKernelLogs=yes\nProtectControlGroups=yes\nProtectClock=yes\nProtectHostname=yes\nLockPersonality=yes\nMemoryDenyWriteExecute=yes\nRestrictSUIDSGID=yes\nRestrictRealtime=yes\nRemoveIPC=yes\nCapabilityBoundingSet=\nAmbientCapabilities=\nRestrictAddressFamilies=AF_UNIX AF_INET AF_INET6\nIPAddressDeny=any\nIPAddressAllow=\nIPAddressAllow=\nIPAddressAllow=\nIPAddressAllow=\nReadOnlyPaths=/etc/cluster-admin-probe-agent /opt/cluster-admin-probe-agent\nReadWritePaths=/var/lib/cluster-admin-probe-agent\nStateDirectory=cluster-admin-probe-agent\nStateDirectoryMode=0750\nRuntimeDirectory=cluster-admin-probe-agent\nTimeoutStartSec=70"},{"cat_rc":0,"show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/cluster-admin-probe-agent.timer","LoadState":"loaded","SubState":"waiting","TriggeredBy":"","Triggers":"cluster-admin-probe-agent.service","UnitFileState":"enabled"},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"cluster-admin-probe-agent.timer","unit_text":"# /etc/systemd/system/cluster-admin-probe-agent.timer\n[Unit]\nDescription=Run Cluster Admin restricted probes every minute\n\n[Timer]\nOnBootSec=2min\nOnUnitActiveSec=60s\nRandomizedDelaySec=5s\nPersistent=true\nUnit=cluster-admin-probe-agent.service\n\n[Install]\nWantedBy=timers.target"},{"cat_rc":0,"show":{"ActiveState":"inactive","ExecStart":"{ path=/opt/homelab-cluster-admin/full-observer.sh ; argv[]=/opt/homelab-cluster-admin/full-observer.sh ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:29:08 UTC] ; stop_time=[Wed 2026-08-05 16:29:14 UTC] ; pid=2039783 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-full-observer.service","LoadState":"loaded","SubState":"dead","TriggeredBy":"homelab-cluster-admin-full-observer.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":""},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"homelab-cluster-admin-full-observer.service","unit_text":"# /etc/systemd/system/homelab-cluster-admin-full-observer.service\n[Unit]\nDescription=Homelab cluster-admin full observer\n\n[Service]\nType=oneshot\nExecStart=/opt/homelab-cluster-admin/full-observer.sh"},{"cat_rc":0,"show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-full-observer.timer","LoadState":"loaded","SubState":"waiting","TriggeredBy":"","Triggers":"homelab-cluster-admin-full-observer.service","UnitFileState":"enabled"},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"homelab-cluster-admin-full-observer.timer","unit_text":"# /etc/systemd/system/homelab-cluster-admin-full-observer.timer\n[Unit]\nDescription=Run homelab cluster-admin full observer\n\n[Timer]\nOnBootSec=5min\nOnUnitActiveSec=5min\nPersistent=true\n\n[Install]\nWantedBy=timers.target"},{"cat_rc":0,"show":{"ActiveState":"inactive","ExecStart":"{ path=/opt/homelab-cluster-admin/cluster-observer.sh ; argv[]=/opt/homelab-cluster-admin/cluster-observer.sh ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:29:08 UTC] ; stop_time=[Wed 2026-08-05 16:29:08 UTC] ; pid=2039784 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-observer.service","LoadState":"loaded","SubState":"dead","TriggeredBy":"homelab-cluster-admin-observer.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":""},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"homelab-cluster-admin-observer.service","unit_text":"# /etc/systemd/system/homelab-cluster-admin-observer.service\n[Unit]\nDescription=Homelab cluster-admin observer\n\n[Service]\nType=oneshot\nExecStart=/opt/homelab-cluster-admin/cluster-observer.sh"},{"cat_rc":0,"show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-observer.timer","LoadState":"loaded","SubState":"waiting","TriggeredBy":"","Triggers":"homelab-cluster-admin-observer.service","UnitFileState":"enabled"},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"homelab-cluster-admin-observer.timer","unit_text":"# /etc/systemd/system/homelab-cluster-admin-observer.timer\n[Unit]\nDescription=Run homelab cluster-admin observer\n\n[Timer]\nOnBootSec=3min\nOnUnitActiveSec=5min\nPersistent=true\n\n[Install]\nWantedBy=timers.target"},{"cat_rc":0,"show":{"ActiveState":"inactive","ExecStart":"{ path=/opt/homelab-cluster-admin/self-check.sh ; argv[]=/opt/homelab-cluster-admin/self-check.sh ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:29:08 UTC] ; stop_time=[Wed 2026-08-05 16:29:08 UTC] ; pid=2039785 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-self-check.service","LoadState":"loaded","SubState":"dead","TriggeredBy":"homelab-cluster-admin-self-check.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":""},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"homelab-cluster-admin-self-check.service","unit_text":"# /etc/systemd/system/homelab-cluster-admin-self-check.service\n[Unit]\nDescription=Homelab cluster-admin self check\n\n[Service]\nType=oneshot\nExecStart=/opt/homelab-cluster-admin/self-check.sh"},{"cat_rc":0,"show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-self-check.timer","LoadState":"loaded","SubState":"waiting","TriggeredBy":"","Triggers":"homelab-cluster-admin-self-check.service","UnitFileState":"enabled"},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"homelab-cluster-admin-self-check.timer","unit_text":"# /etc/systemd/system/homelab-cluster-admin-self-check.timer\n[Unit]\nDescription=Run homelab cluster-admin self check\n\n[Timer]\nOnBootSec=2min\nOnUnitActiveSec=5min\nPersistent=true\n\n[Install]\nWantedBy=timers.target"},{"cat_rc":0,"show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-update-visibility-index.path","LoadState":"loaded","SubState":"waiting","TriggeredBy":"","Triggers":"homelab-cluster-admin-update-visibility-index.service","UnitFileState":"enabled"},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"homelab-cluster-admin-update-visibility-index.path","unit_text":"# /etc/systemd/system/homelab-cluster-admin-update-visibility-index.path\n[Unit]\nDescription=Reapply Cluster Admin update visibility after index regeneration\nStartLimitIntervalSec=0\n\n[Path]\nPathChanged=/var/www/homelab-cluster-admin/index.html\nPathModified=/var/www/homelab-cluster-admin/index.html\nPathChanged=/var/www/homelab-cluster-admin\nUnit=homelab-cluster-admin-update-visibility-index.service\nTriggerLimitIntervalSec=0\n\n[Install]\nWantedBy=multi-user.target"},{"cat_rc":0,"show":{"ActiveState":"inactive","ExecStart":"{ path=/usr/local/sbin/homelab-cluster-admin-update-visibility-index-patcher ; argv[]=/usr/local/sbin/homelab-cluster-admin-update-visibility-index-patcher --config /etc/homelab-cluster-admin-update-visibility-index.json ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:29:23 UTC] ; stop_time=[Wed 2026-08-05 16:29:23 UTC] ; pid=2040044 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-update-visibility-index.service","LoadState":"loaded","SubState":"dead","TriggeredBy":"homelab-cluster-admin-update-visibility-index.path homelab-cluster-admin-update-visibility-index.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":""},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"homelab-cluster-admin-update-visibility-index.service","unit_text":"# /etc/systemd/system/homelab-cluster-admin-update-visibility-index.service\n[Unit]\nDescription=Maintain Cluster Admin update visibility card\nAfter=local-fs.target\nStartLimitIntervalSec=0\n\n[Service]\nType=oneshot\nUser=root\nGroup=root\nExecStart=/usr/local/sbin/homelab-cluster-admin-update-visibility-index-patcher --config /etc/homelab-cluster-admin-update-visibility-index.json\nUMask=0022\nNoNewPrivileges=true\nPrivateTmp=true\nProtectHome=read-only\nProtectSystem=full\nReadWritePaths=/var/www/homelab-cluster-admin"},{"cat_rc":0,"show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-update-visibility-index.timer","LoadState":"loaded","SubState":"waiting","TriggeredBy":"","Triggers":"homelab-cluster-admin-update-visibility-index.service","UnitFileState":"enabled"},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"homelab-cluster-admin-update-visibility-index.timer","unit_text":"# /etc/systemd/system/homelab-cluster-admin-update-visibility-index.timer\n[Unit]\nDescription=Periodic Cluster Admin update visibility repair\n\n[Timer]\nOnBootSec=20s\nOnUnitActiveSec=30s\nAccuracySec=5s\nRandomizedDelaySec=0\nPersistent=true\nUnit=homelab-cluster-admin-update-visibility-index.service\n\n[Install]\nWantedBy=timers.target"},{"cat_rc":0,"show":{"ActiveState":"inactive","ExecStart":"{ path=/opt/homelab-cluster-admin/render-webpanel-cycle-break.sh ; argv[]=/opt/homelab-cluster-admin/render-webpanel-cycle-break.sh ; ignore_errors=no ; start_time=[Wed 2026-08-05 16:28:53 UTC] ; stop_time=[Wed 2026-08-05 16:28:53 UTC] ; pid=2039687 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-webpanel-render.service","LoadState":"loaded","SubState":"dead","TriggeredBy":"homelab-cluster-admin-webpanel-render.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":""},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"homelab-cluster-admin-webpanel-render.service","unit_text":"# /etc/systemd/system/homelab-cluster-admin-webpanel-render.service\n[Unit]\nDescription=Render Homelab cluster-admin web panel\n\n[Service]\nType=oneshot\nExecStart=/opt/homelab-cluster-admin/render-webpanel.sh\n\n# /etc/systemd/system/homelab-cluster-admin-webpanel-render.service.d/10-cycle-break.conf\n[Service]\nExecStart=\nExecStart=/opt/homelab-cluster-admin/render-webpanel-cycle-break.sh"},{"cat_rc":0,"show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-webpanel-render.timer","LoadState":"loaded","SubState":"waiting","TriggeredBy":"","Triggers":"homelab-cluster-admin-webpanel-render.service","UnitFileState":"enabled"},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"homelab-cluster-admin-webpanel-render.timer","unit_text":"# /etc/systemd/system/homelab-cluster-admin-webpanel-render.timer\n[Unit]\nDescription=Refresh Homelab cluster-admin web panel\n\n[Timer]\nOnBootSec=1min\nOnUnitActiveSec=1min\nPersistent=true\n\n[Install]\nWantedBy=timers.target"},{"cat_rc":0,"show":{"ActiveState":"active","ExecStart":"{ path=/usr/bin/python3 ; argv[]=/usr/bin/python3 -m http.server 8080 --bind 0.0.0.0 --directory /var/www/homelab-cluster-admin ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-webpanel.service","LoadState":"loaded","SubState":"running","TriggeredBy":"","Triggers":"","UnitFileState":"enabled","WorkingDirectory":""},"show_rc":0,"signature_hits":[],"source_path_hits":[],"unit":"homelab-cluster-admin-webpanel.service","unit_text":"# /etc/systemd/system/homelab-cluster-admin-webpanel.service\n[Unit]\nDescription=Homelab cluster-admin web panel\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nType=simple\nExecStart=/usr/bin/python3 -m http.server 8080 --bind 0.0.0.0 --directory /var/www/homelab-cluster-admin\nRestart=always\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target"}]},"rollback_restored":false,"rollback_started":false,"schema":35,"screenshot_observation":{"basis":"user-provided screenshot","updates_card_visible":false,"visible_title":"Cluster Admin Incident Engine"},"status":"OK","transport":{"rc":0,"stderr":"","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":41666,"stdout_sha256":"0a63da0d742aa53085f8fe9e7ad2e1d7ff810fa267eddb048fc11ec3dae71786"},"v34_exact_result":{"changes_made":true,"control_plane_error":null,"identity_confirmed":true,"internal_http_good_routes":[{"html_status":200,"json_status":200,"port":8080,"root_card":true,"root_marker":true,"root_status":200,"scheme":"http"}],"mutation_outcome":"MUTATED","output_bytes":3062,"output_sha256":"78f0ba6d511b1bd7f444504882982d2736faad0094eab12895e2c75736bee63f","rollback_restored":false,"rollback_started":false,"runner_document_rc":0,"runner_json_sha256":"be9ef7f5b17b5f96195a321c99cde6768c9a0649e1cc9738cb4e2657261399ad","runner_rc":0,"runner_status":"OK","runner_text_sha256":"702eb0207998708662ee9f79c931ac4c1e229b1f352300d79b05354075454568","runner_wrapper_matches_document":true,"state_document_sha256":"0373687b69a965476ea11cb0a48b23a9cedffd9e1f07010e2fbc861d12ab771e","state_status":"OK","timer_self_heal_seconds":36}} +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z","command_rc":0,"mutation_outcome":"NO_MUTATION","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +{"changes_made":false,"command_id":"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-RESULT-SUMMARY-READ-ONLY-20260805T162600Z","command_rc":0,"lookup_lane_http_status":409,"mutation_outcome":"NO_MUTATION","next_action":"USE_THIS_SHA_VERIFIED_TARGET_RESULT; DO_NOT_USE_LATEST; DO_NOT_REPAIR_LOOKUP_FOR_READING","output_truncated_in_json":false,"rc":0,"read_only":true,"rollback_restored":null,"rollback_started":false,"schema":1,"status":"OK","target_execution":{"changes_made":null,"command_rc":null,"control_plane_error":null,"mutation_outcome":null,"output_truncated_in_json":false,"rollback_restored":null,"rollback_started":null,"runner_document_rc":76,"runner_rc":76,"runner_status":"FAIL","runner_wrapper_matches_document":true},"target_identity":{"capsule_sha256":"0300643299c86635061bf0cbbca202f90aeb5a92c77b8c3de2ec43caddfa600f","command_id":"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z","full_output_bytes":1507,"full_output_lines":1,"full_output_read":true,"output_expected_sha256":[],"output_sha256":"db4ba1f9c2fb8dbb2eae330663a8ffdad1f118db7cea408eb775d1fb77ae9730","runner_examined_values":111,"runner_json_expected_sha256":["4222d82581430ee7ee20e7cd43b339d5a7c072c97f1eaea41e1f8e360f6dc0ed"],"runner_json_roots":1,"runner_json_sha256":"4222d82581430ee7ee20e7cd43b339d5a7c072c97f1eaea41e1f8e360f6dc0ed","runner_text_expected_sha256":["070abb9446abf0bdbef81c7f5aacbdaf956ef3b4133200341f535488ee1b55da"],"runner_text_sha256":"070abb9446abf0bdbef81c7f5aacbdaf956ef3b4133200341f535488ee1b55da","state_file":"AMAGIMUZZB.json","state_file_sha256":"174595d59e98ceb9180f48d6d2a77c53f7135a3bd8e4d7086fef71ffcc84b548"},"target_output_sanitized":"{\"analysis_ready\": true, \"backup_manifest_sha256\": \"9ebc6eedf2fd573ef088723e84a694bed56eb1006e2903f9b22fe59173ff7355\", \"candidate_self_test\": {\"complaints_immutable\": true, \"status\": \"OK\", \"version\": \"2026.08.05-mvp1\"}, \"changes_made\": true, \"command_id\": \"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\", \"command_rc\": 0, \"complaints_guardrail\": {\"immutable\": true, \"mutation_allowed\": false, \"service_content_read\": false, \"source_content_read\": false, \"storage_read\": false}, \"installed_sha256\": {\"app.py\": \"2110f1ba63ba80592d7fb898e18611772069f07605ed04a379e08e86fcab89b6\", \"rules.json\": \"a704bd1708e5bbcd4db98735b692ec4dfcff80cc33e98fd17dda6ae0f5a4d653\", \"skladchik-moderator-assistant.service\": \"fd68b1ddb7b2da28da403d93b83af323157c1f7e05a92df2e4221a893f8ef0f4\"}, \"mutation_outcome\": \"APPLIED\", \"next_action\": \"MAP_REVERSE_PROXY_AND_PUBLISH_ASSISTANT_UI_WITHOUT_TOUCHING_COMPLAINTS\", \"output_truncated_in_json\": false, \"protected_guard_mode\": \"LOCAL_EXACT_ABSENCE\", \"protected_units_verified\": 6, \"rc\": 0, \"rollback_restored\": null, \"rollback_started\": false, \"root_cause_classification\": \"SEPARATE_NON_COMPLAINT_MODERATOR_ASSISTANT_INSTALLED\", \"service\": {\"bind\": \"127.0.0.1:18787\", \"health\": {\"complaints_immutable\": true, \"ruleset_version\": \"admin-courses-2026-08-05\", \"status\": \"ok\", \"version\": \"2026.08.05-mvp1\"}, \"name\": \"skladchik-moderator-assistant.service\"}, \"status\": \"OK\", \"storage\": {\"raw_requests_stored\": false, \"request_hash_only\": true, \"separate\": true}, \"version\": 1}\n","target_payload_documents":[{"analysis_ready":true,"changes_made":true,"command_rc":0,"mutation_outcome":"APPLIED","next_action":"MAP_REVERSE_PROXY_AND_PUBLISH_ASSISTANT_UI_WITHOUT_TOUCHING_COMPLAINTS","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"root_cause_classification":"SEPARATE_NON_COMPLAINT_MODERATOR_ASSISTANT_INSTALLED","status":"OK"}],"target_runner":{"changes_made":null,"command_rc":0,"mutation_outcome":"UNKNOWN","output_truncated_in_json":false,"rc":76,"rollback_restored":null,"rollback_started":null,"status":"FAIL"},"target_runner_document":{},"target_runner_text_sanitized":"CHAT_OUTPUT_BEGIN\nCOMMAND_ID=HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\nSTATUS=FAIL\nRC=76\nHOST=pve01\nMODE=change\nCOMPONENT=skladchik-moderator-core-install-v2\nREFERENCE_REGISTER_CHECK=OK\nREFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e\nERROR_REGISTER_CHECK=OK\nERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83\nCOMMAND_SHA256=ce33944c79a14f3e34c5bef3910cdb2154df9551c3cea68c6a56c455843c4a8d\nDUPLICATE_FAILED_COMMAND_BLOCKED=false\nEXECUTION_STARTED=true\nCHANGE_DECLARED=true\nRESULT_CONTRACT_VALID=false\nRESULT_CONTRACT_STATUS=UNKNOWN\nRESULT_CONTRACT_ERROR=MISSING_CONTRACT\nCOMMAND_RC=0\nCHANGES_MADE=unknown\nROLLBACK_STARTED=unknown\nROLLBACK_RESTORED=null\nMUTATION_OUTCOME=UNKNOWN\nSANITIZED=yes\nSECRETS_INCLUDED=no\nPRIVATE_ADDRESSES_INCLUDED=no\nRAW_EVIDENCE_SHA256=db4ba1f9c2fb8dbb2eae330663a8ffdad1f118db7cea408eb775d1fb77ae9730\nSANITIZED_OUTPUT_SHA256=db4ba1f9c2fb8dbb2eae330663a8ffdad1f118db7cea408eb775d1fb77ae9730\nOUTPUT_BEGIN\n{\"analysis_ready\": true, \"backup_manifest_sha256\": \"9ebc6eedf2fd573ef088723e84a694bed56eb1006e2903f9b22fe59173ff7355\", \"candidate_self_test\": {\"complaints_immutable\": true, \"status\": \"OK\", \"version\": \"2026.08.05-mvp1\"}, \"changes_made\": true, \"command_id\": \"HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z\", \"command_rc\": 0, \"complaints_guardrail\": {\"immutable\": true, \"mutation_allowed\": false, \"service_content_read\": false, \"source_content_read\": false, \"storage_read\": false}, \"installed_sha256\": {\"app.py\": \"2110f1ba63ba80592d7fb898e18611772069f07605ed04a379e08e86fcab89b6\", \"rules.json\": \"a704bd1708e5bbcd4db98735b692ec4dfcff80cc33e98fd17dda6ae0f5a4d653\", \"skladchik-moderator-assistant.service\": \"fd68b1ddb7b2da28da403d93b83af323157c1f7e05a92df2e4221a893f8ef0f4\"}, \"mutation_outcome\": \"APPLIED\", \"next_action\": \"MAP_REVERSE_PROXY_AND_PUBLISH_ASSISTANT_UI_WITHOUT_TOUCHING_COMPLAINTS\", \"output_truncated_in_json\": false, \"protected_guard_mode\": \"LOCAL_EXACT_ABSENCE\", \"protected_units_verified\": 6, \"rc\": 0, \"rollback_restored\": null, \"rollback_started\": false, \"root_cause_classification\": \"SEPARATE_NON_COMPLAINT_MODERATOR_ASSISTANT_INSTALLED\", \"service\": {\"bind\": \"127.0.0.1:18787\", \"health\": {\"complaints_immutable\": true, \"ruleset_version\": \"admin-courses-2026-08-05\", \"status\": \"ok\", \"version\": \"2026.08.05-mvp1\"}, \"name\": \"skladchik-moderator-assistant.service\"}, \"status\": \"OK\", \"storage\": {\"raw_requests_stored\": false, \"request_hash_only\": true, \"separate\": true}, \"version\": 1}\n\nOUTPUT_END\nCHAT_OUTPUT_END\n","target_state":{"control_plane_error":null,"error":null,"status":"FAIL"}} OUTPUT_END CHAT_OUTPUT_END