From bbd7ffa42d495779cb7dea6a5e654c3ec78ef680 Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Wed, 5 Aug 2026 14:24:25 +0000 Subject: [PATCH] runtime: publish HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z --- ...LY-SEMANTIC-GATE-FIX-20260805T141800Z.json | 38 +++++++++++++++++++ ...PLY-SEMANTIC-GATE-FIX-20260805T141800Z.txt | 34 +++++++++++++++++ runtime/latest.json | 28 +++++++------- runtime/latest.txt | 26 ++++++------- 4 files changed, 99 insertions(+), 27 deletions(-) create mode 100644 runtime/history/HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z.json create mode 100644 runtime/history/HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z.txt diff --git a/runtime/history/HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z.json b/runtime/history/HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z.json new file mode 100644 index 0000000..474d704 --- /dev/null +++ b/runtime/history/HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z", + "status": "FAIL", + "rc": 1, + "host": "pve01", + "mode": "change", + "component": "cluster-kb-error-v2", + "started_at_utc": "2026-08-05T14:24:24Z", + "finished_at_utc": "2026-08-05T14:24:24Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", + "command_sha256": "4b41d5f35a6e66b0a5dbf1ebef8ae4458552b330a9859b209af807022d01ce02", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": true, + "result_contract_valid": true, + "result_contract_status": "FAIL", + "result_contract_error": null, + "command_rc": 1, + "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": "9aaeb30907f4182271806a8fb33d909a474e58ad81567cc9c90b2ac58d5a3c55", + "sanitized_output_sha256": "9aaeb30907f4182271806a8fb33d909a474e58ad81567cc9c90b2ac58d5a3c55", + "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-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z\",\"command_rc\":1,\"mutation_outcome\":\"NO_MUTATION\",\"output_truncated_in_json\":false,\"rc\":1,\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL\",\"version\":1}\n{\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z\",\"command_rc\":1,\"detail\":{\"record_count\":0,\"unique_id_count\":0},\"error\":{\"message_sha256\":\"184f3e3638772a44c7f0c35ac0a114207aa8d0d8c2d08cb0c4a58ec0df7c7df3\",\"type\":\"Abort\"},\"mutation_outcome\":\"NO_MUTATION\",\"next_action\":\"RUN_ONE_READ_ONLY_ERROR_REGISTRY_EXACT_SHAPE_DIAGNOSTIC\",\"output_truncated_in_json\":false,\"private_addresses_emitted\":false,\"rc\":1,\"rollback_restored\":null,\"rollback_started\":false,\"root_cause_classification\":\"LEGACY_ERROR_REGISTRY_SHAPE_OR_COUNT_CHANGED\",\"schema\":1,\"secrets_emitted\":false,\"status\":\"FAIL\"}\n" +} diff --git a/runtime/history/HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z.txt b/runtime/history/HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z.txt new file mode 100644 index 0000000..1e341a1 --- /dev/null +++ b/runtime/history/HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z.txt @@ -0,0 +1,34 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z +STATUS=FAIL +RC=1 +HOST=pve01 +MODE=change +COMPONENT=cluster-kb-error-v2 +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 +COMMAND_SHA256=4b41d5f35a6e66b0a5dbf1ebef8ae4458552b330a9859b209af807022d01ce02 +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=true +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=FAIL +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=1 +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=9aaeb30907f4182271806a8fb33d909a474e58ad81567cc9c90b2ac58d5a3c55 +SANITIZED_OUTPUT_SHA256=9aaeb30907f4182271806a8fb33d909a474e58ad81567cc9c90b2ac58d5a3c55 +OUTPUT_BEGIN +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z","command_rc":1,"mutation_outcome":"NO_MUTATION","output_truncated_in_json":false,"rc":1,"rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1} +{"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z","command_rc":1,"detail":{"record_count":0,"unique_id_count":0},"error":{"message_sha256":"184f3e3638772a44c7f0c35ac0a114207aa8d0d8c2d08cb0c4a58ec0df7c7df3","type":"Abort"},"mutation_outcome":"NO_MUTATION","next_action":"RUN_ONE_READ_ONLY_ERROR_REGISTRY_EXACT_SHAPE_DIAGNOSTIC","output_truncated_in_json":false,"private_addresses_emitted":false,"rc":1,"rollback_restored":null,"rollback_started":false,"root_cause_classification":"LEGACY_ERROR_REGISTRY_SHAPE_OR_COUNT_CHANGED","schema":1,"secrets_emitted":false,"status":"FAIL"} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 27c8a75..474d704 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,27 +1,27 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "HOMELAB-CLUSTER-ADMIN-UPDATES-V22-INDEX-DRIFT-READ-ONLY-20260805T142000Z", - "status": "OK", - "rc": 0, + "command_id": "HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z", + "status": "FAIL", + "rc": 1, "host": "pve01", - "mode": "verify", - "component": "homelab-cluster-admin-update-visibility", - "started_at_utc": "2026-08-05T14:20:20Z", - "finished_at_utc": "2026-08-05T14:20:20Z", + "mode": "change", + "component": "cluster-kb-error-v2", + "started_at_utc": "2026-08-05T14:24:24Z", + "finished_at_utc": "2026-08-05T14:24:24Z", "reference_register_checked": true, "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", "error_register_checked": true, "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", - "command_sha256": "b4bce2469c19f1a3186f956193115529e14e4df31c9798c2de3a08fa8dd1c9ef", + "command_sha256": "4b41d5f35a6e66b0a5dbf1ebef8ae4458552b330a9859b209af807022d01ce02", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, - "change_declared": false, + "change_declared": true, "result_contract_valid": true, - "result_contract_status": null, + "result_contract_status": "FAIL", "result_contract_error": null, - "command_rc": 0, + "command_rc": 1, "changes_made": false, "rollback_started": false, "rollback_restored": null, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "81f3a7b84d9eec86671f34f89bc59d99a95dd08ec9d6911e6ea399964e0e9718", - "sanitized_output_sha256": "691a9fb3ca3ff21163b447d98d7f8055f3e7ad70e86dafd2b73cdd5e9d118969", + "raw_evidence_sha256": "9aaeb30907f4182271806a8fb33d909a474e58ad81567cc9c90b2ac58d5a3c55", + "sanitized_output_sha256": "9aaeb30907f4182271806a8fb33d909a474e58ad81567cc9c90b2ac58d5a3c55", "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-CLUSTER-ADMIN-UPDATES-V22-INDEX-DRIFT-READ-ONLY-20260805T142000Z\",\"command_rc\":0,\"control_plane_error\":null,\"index_changed_diff_lines\":110,\"index_current_sha256\":\"686e55e3934e22180a3889a0ee9ba8cdcbb92b5d9d1bc5418080f701a5796172\",\"index_drift\":true,\"index_expected_sha256\":\"c4fc9eec9c1e9884c5b054b2193db518f5a5d15c026c5e01fe11c6be8d52fc89\",\"index_path\":\"/var/www/homelab-cluster-admin/index.html\",\"managed_marker_present\":false,\"mutation_outcome\":\"NO_MUTATION\",\"rc\":0,\"ready_for_corrected_transaction\":true,\"reference_current_sha256\":\"fbec0df3b65d3e9e00348441b018382a603db18469d07cde13a492c09cb0790f\",\"reference_drift\":false,\"reference_expected_sha256\":\"fbec0df3b65d3e9e00348441b018382a603db18469d07cde13a492c09cb0790f\",\"remote_probe_root\":true,\"report_bytes\":33176,\"report_sha256\":\"04df393f3f5a7703399153a129a8458a3c9980f45c4cb00b1f9bd8b62182c15c\",\"rollback_restored\":false,\"rollback_started\":false,\"status\":\"OK\",\"v19_exact_result_identity_confirmed\":true,\"v21_exact_result_identity_confirmed\":true,\"v21_exact_sha_drift_confirmed\":true,\"version\":1}\n{\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-ADMIN-UPDATES-V22-INDEX-DRIFT-READ-ONLY-20260805T142000Z\",\"current_files\":{\"index\":{\"backend_marker_begin\":false,\"backend_marker_end\":false,\"bytes\":10353,\"ctime_ns\":1785939615262660290,\"expected_sha256\":\"c4fc9eec9c1e9884c5b054b2193db518f5a5d15c026c5e01fe11c6be8d52fc89\",\"gid\":0,\"index_marker_begin\":false,\"index_marker_end\":false,\"inode\":135903,\"matches_v19\":false,\"mode\":420,\"mtime_ns\":1785939615262660290,\"path\":\"/var/www/homelab-cluster-admin/index.html\",\"sha256\":\"686e55e3934e22180a3889a0ee9ba8cdcbb92b5d9d1bc5418080f701a5796172\",\"uid\":0},\"reference\":{\"backend_marker_begin\":false,\"backend_marker_end\":false,\"bytes\":3708,\"ctime_ns\":1783706500680296060,\"expected_sha256\":\"fbec0df3b65d3e9e00348441b018382a603db18469d07cde13a492c09cb0790f\",\"gid\":0,\"index_marker_begin\":false,\"index_marker_end\":false,\"inode\":135901,\"matches_v19\":true,\"mode\":493,\"mtime_ns\":1783706500680296060,\"path\":\"/opt/homelab-cluster-admin/render-webpanel.sh\",\"sha256\":\"fbec0df3b65d3e9e00348441b018382a603db18469d07cde13a492c09cb0790f\",\"uid\":0}},\"drift_analysis\":{\"index_changed_diff_lines\":110,\"index_drift\":true,\"managed_marker_present\":false,\"next_required_action\":\"build corrected atomic transaction using current index SHA\",\"ready_for_corrected_transaction\":true,\"reference_changed_diff_lines\":24,\"reference_drift\":false},\"index_diff\":{\"lines\":[\"--- V19/index.html\",\"+++ CURRENT/index.html\",\"@@ -16,65 +16,65 @@\",\" \",\" \",\" \",\"

Homelab Cluster Admin

\",\"-
generated UTC: 2026-08-05T13:20:48Z · VM180 · [PRIVATE_IP] · refresh 60s
\",\"+
generated UTC: 2026-08-05T14:20:15Z · VM180 · · refresh 60s
\",\"

REVIEW

\",\" \",\"
\",\"-

Self

STATUS=WARN TS=2026-08-05T13:19:08Z TYPE=cluster-admin-self-check BAD=1 HOST=cluster-admin IP_OK=1 DNS_OK=1 FAILED_UNITS=1 QGA=active\",\"+

Self

STATUS=WARN TS=2026-08-05T14:15:25Z TYPE=cluster-admin-self-check BAD=1 HOST=cluster-admin IP_OK=1 DNS_OK=1 FAILED_UNITS=1 QGA=active\",\" FAILED_UNITS=1\",\" QGA=active
\",\"-

Observer

STATUS=WARN TS=2026-08-05T13:19:08Z TYPE=cluster-admin-observer BAD=2 WARN=0 HOST=cluster-admin SELF_FAILED_UNITS=1 QGA=active PVE01=checked PVE02=checked PVE03=checked EDGE=checked DNS_PAIR=checked OVERALL_ENDPOINT=checked REPORT=/var/lib/homelab-cluster-admin/latest.md
\",\"-

Full observer

STATUS=WARN TS=2026-08-05T13:19:08Z TYPE=cluster-admin-full-observer BAD=3 WARN=0 INFO_OFF=7 PROBE_OK=2 PROBE_BAD=2 MAP_TOTAL=30 CRITICAL_FAILS=0 OPTIONAL_INFO_OFF=7 SELF_FAILED_UNITS=1 QGA=active REPORT=/var/lib/homelab-cluster-admin/full-observer-latest.md
\",\"+

Observer

STATUS=WARN TS=2026-08-05T14:15:25Z TYPE=cluster-admin-observer BAD=2 WARN=0 HOST=cluster-admin SELF_FAILED_UNITS=1 QGA=active PVE01=checked PVE02=checked PVE03=checked EDGE=checked DNS_PAIR=checked OVERALL_ENDPOINT=checked REPORT=/var/lib/homelab-cluster-admin/latest.md
\",\"+

Full observer

STATUS=WARN TS=2026-08-05T14:15:25Z TYPE=cluster-admin-full-observer BAD=3 WARN=0 INFO_OFF=7 PROBE_OK=2 PROBE_BAD=2 MAP_TOTAL=30 CRITICAL_FAILS=0 OPTIONAL_INFO_OFF=7 SELF_FAILED_UNITS=1 QGA=active REPORT=/var/lib/homelab-cluster-admin/full-observer-latest.md
\",\"

Mail Cloud backup

STATUS=OK TS=2026-07-09T05:07:47Z TYPE=cluster-admin-vm-mail-cloud-backup BAD=0 VMID=180 NODE=pve02 MODE=MAIL_CLOUD_2COPY_VERIFY_OK LOCAL_STATUS=OK REPORT=/var/lib/homelab-cluster-admin-vm-mail-cloud-backup/latest.md
\",\"
\",\" \",\"-
\",\"+
\",\"

Final readiness

STATUS=WARN TS=2026-08-05T05:21:50Z TYPE=final-readiness BAD=6 PASS=47 FAIL=6 REPORT=/var/lib/homelab-final-readiness/latest.md
\",\"-

Strict seal

STATUS=OK TS=2026-07-09T04:49:23Z TYPE=cluster-admin-strict-final-seal BAD=0 VMID=180 IP=[PRIVATE_IP] MODE=DEDICATED_CLUSTER_ADMIN_HARDGATED OBSERVER=OK RESTRICTED_PROBES=OK FULL_OBSERVER=OK OVERALL_HARDGATE=YES FINAL_READINESS_HARDGATE=YES FAILED_UNITS=pve01:0,pve02:0,pve03:0,edge:0 DIRTY_COUNT=0 REPORT=/var/lib/homelab-ideal-cluster/cluster-admin-strict-final-seal-latest.md
\",\"+

Strict seal

STATUS=OK TS=2026-07-09T04:49:23Z TYPE=cluster-admin-strict-final-seal BAD=0 VMID=180 IP= MODE=DEDICATED_CLUSTER_ADMIN_HARDGATED OBSERVER=OK RESTRICTED_PROBES=OK FULL_OBSERVER=OK OVERALL_HARDGATE=YES FINAL_READINESS_HARDGATE=YES FAILED_UNITS=pve01:0,pve02:0,pve03:0,edge:0 DIRTY_COUNT=0 REPORT=/var/lib/homelab-ideal-cluster/cluster-admin-strict-final-seal-latest.md
\",\"

Service map tail

# Homelab cluster-admin full observer\",\"-generated_utc=2026-08-05T13:19:08Z\",\"+generated_utc=2026-08-05T14:15:25Z\",\" policy=critical_failures_are_bad_optional_tcp_is_inventory_info\",\" \",\" ## Restricted probes\",\"-pve01 ssh_rc=0 STATUS=WARN TS=2026-08-05T13:19:08Z TYPE=cluster-admin-node-probe BAD=1 HOST=pve01 FAILED_UNITS=3 ROOT_PCT=16 STAGING_PCT=53 PVE_CLUSTER=active PVE_DAEMON=active PVE_PROXY=active PVE_STATD=active COROSYNC=active QUORATE=Yes QM_RUNNING=3 CT_RUNNING=2\",\"-pve02 ssh_rc=0 STATUS=OK TS=2026-08-05T13:19:10Z TYPE=cluster-admin-node-probe BAD=0 HOST=pve02 FAILED_UNITS=0 ROOT_PCT=30 STAGING_PCT=75 PVE_CLUSTER=active PVE_DAEMON=active PVE_PROXY=active PVE_STATD=active COROSYNC=active QUORATE=Yes QM_RUNNING=2 CT_RUNNING=2\",\"-pve03 ssh_rc=0 STATUS=WARN TS=2026-08-05T13:19:12Z TYPE=cluster-admin-node-probe BAD=1 HOST=pve03 FAILED_UNITS=2 ROOT_PCT=59 STAGING_PCT=54 PVE_CLUSTER=active PVE_DAEMON=active PVE_PROXY=active PVE_STATD=active COROSYNC=active QUORATE=Yes QM_RUNNING=2 CT_RUNNING=0\",\"-edge ssh_rc=0 STATUS=OK TS=2026-08-05T13:19:14Z TYPE=cluster-admin-edge-probe BAD=0 HOST=edge-vm FAILED_UNITS=0 ROOT_PCT=42 SSHD=active\",\"+pve01 ssh_rc=0 STATUS=WARN TS=2026-08-05T14:15:25Z TYPE=cluster-admin-node-probe BAD=1 HOST=pve01 FAILED_UNITS=3 ROOT_PCT=16 STAGING_PCT=53 PVE_CLUSTER=active PVE_DAEMON=active PVE_PROXY=active PVE_STATD=active COROSYNC=active QUORATE=Yes QM_RUNNING=3 CT_RUNNING=2\",\"+pve02 ssh_rc=0 STATUS=OK TS=2026-08-05T14:15:27Z TYPE=cluster-admin-node-probe BAD=0 HOST=pve02 FAILED_UNITS=0 ROOT_PCT=30 STAGING_PCT=75 PVE_CLUSTER=active PVE_DAEMON=active PVE_PROXY=active PVE_STATD=active COROSYNC=active QUORATE=Yes QM_RUNNING=2 CT_RUNNING=2\",\"+pve03 ssh_rc=0 STATUS=WARN TS=2026-08-05T14:15:29Z TYPE=cluster-admin-node-probe BAD=1 HOST=pve03 FAILED_UNITS=2 ROOT_PCT=59 STAGING_PCT=54 PVE_CLUSTER=active PVE_DAEMON=active PVE_PROXY=active PVE_STATD=active COROSYNC=active QUORATE=Yes QM_RUNNING=2 CT_RUNNING=0\",\"+edge ssh_rc=0 STATUS=OK TS=2026-08-05T14:15:31Z TYPE=cluster-admin-edge-probe BAD=0 HOST=edge-vm FAILED_UNITS=0 ROOT_PCT=42 SSHD=active\",\" \",\" ## Service map checks\",\"-OK severity=\",\"-OK severity=critical kind=tcp name=pve01_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0\",\"-OK severity=critical kind=tcp name=pve01_proxmox target=[PRIVATE_IP] value=8006 tcp_8006_rc=0\",\"-OK severity=critical kind=tcp name=pve01_health target=[PRIVATE_IP] value=9101 tcp_9101_rc=0\",\"-OK severity=critical kind=tcp name=pve02_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0\",\"-OK severity=critical kind=tcp name=pve02_proxmox target=[PRIVATE_IP] value=8006 tcp_8006_rc=0\",\"-OK severity=critical kind=tcp name=pve03_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0\",\"-OK severity=critical kind=tcp name=pve03_proxmox target=[PRIVATE_IP] value=8006 tcp_8006_rc=0\",\"-OK severity=critical kind=tcp name=dns1_tcp53 target=[PRIVATE_IP] value=53 tcp_53_rc=0\",\"-OK severity=critical kind=tcp name=dns2_tcp53 target=[PRIVATE_IP] value=53 tcp_53_rc=0\",\"-OK severity=critical kind=tcp name=edge_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0\",\"-OK severity=critical kind=tcp name=cluster_admin_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0\",\"-OK severity=critical kind=ping name=vm130_edge_vm_ping target=[PRIVATE_IP] value=- ping_rc=0\",\"-OK severity=critical kind=tcp name=vm130_edge_vm_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0\",\"-OK severity=critical kind=ping name=vm150_nextcloud_ping target=[PRIVATE_IP] value=- ping_rc=0\",\"-OK severity=critical kind=tcp name=vm150_nextcloud_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0\",\"-INFO_OFF severity=optional kind=tcp name=vm150_nextcloud_http80 target=[PRIVATE_IP] value=80 tcp_80_rc=1\",\"-INFO_OFF severity=optional kind=tcp name=vm150_nextcloud_https443 target=[PRIVATE_IP] value=443 tcp_443_rc=1\",\"-OK severity=critical kind=ping name=vm160_forum_prod_ping target=[PRIVATE_IP] value=- ping_rc=0\",\"-OK severity=critical kind=tcp name=vm160_forum_prod_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0\",\"-OK severity=optional kind=tcp name=vm160_forum_prod_http80 target=[PRIVATE_IP] value=80 tcp_80_rc=0\",\"-INFO_OFF severity=optional kind=tcp name=vm160_forum_prod_https443 target=[PRIVATE_IP] value=443 tcp_443_rc=1\",\"-OK severity=critical kind=ping name=vm170_core_apps_ping target=[PRIVATE_IP] value=- ping_rc=0\",\"-OK severity=critical kind=tcp name=vm170_core_apps_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0\",\"-INFO_OFF severity=optional kind=tcp name=vm170_core_apps_http80 target=[PRIVATE_IP] value=80 tcp_80_rc=1\",\"-INFO_OFF severity=optional kind=tcp name=vm170_core_apps_https443 target=[PRIVATE_IP] value=443 tcp_443_rc=1\",\"-OK severity=critical kind=ping name=vm171_monitoring_ping target=[PRIVATE_IP] value=- ping_rc=0\",\"-OK severity=critical kind=tcp name=vm171_monitoring_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0\",\"-INFO_OFF severity=optional kind=tcp name=vm171_monitoring_http80 target=[PRIVATE_IP] value=80 tcp_80_rc=1\",\"-INFO_OFF severity=optional kind=tcp name=vm171_monitoring_https443 target=[PRIVATE_IP] value=443 tcp_443_rc=1\",\"+OK severity=\",\"+OK severity=critical kind=tcp name=pve01_ssh target= value=22 tcp_22_rc=0\",\"+OK severity=critical kind=tcp name=pve01_proxmox target= value=8006 tcp_8006_rc=0\",\"+OK severity=critical kind=tcp name=pve01_health target= value=9101 tcp_9101_rc=0\",\"+OK severity=critical kind=tcp name=pve02_ssh target= value=22 tcp_22_rc=0\",\"+OK severity=critical kind=tcp name=pve02_proxmox target= value=8006 tcp_8006_rc=0\",\"+OK severity=critical kind=tcp name=pve03_ssh target= value=22 tcp_22_rc=0\",\"+OK severity=critical kind=tcp name=pve03_proxmox target= value=8006 tcp_8006_rc=0\",\"+OK severity=critical kind=tcp name=dns1_tcp53 target= value=53 tcp_53_rc=0\",\"+OK severity=critical kind=tcp name=dns2_tcp53 target= value=53 tcp_53_rc=0\",\"+OK severity=critical kind=tcp name=edge_ssh target= value=22 tcp_22_rc=0\",\"+OK severity=critical kind=tcp name=cluster_admin_ssh target= value=22 tcp_22_rc=0\",\"+OK severity=critical kind=ping name=vm130_edge_vm_ping target= value=- ping_rc=0\",\"+OK severity=critical kind=tcp name=vm130_edge_vm_ssh target= value=22 tcp_22_rc=0\",\"+OK severity=critical kind=ping name=vm150_nextcloud_ping target= value=- ping_rc=0\",\"+OK severity=critical kind=tcp name=vm150_nextcloud_ssh target= value=22 tcp_22_rc=0\",\"+INFO_OFF severity=optional kind=tcp name=vm150_nextcloud_http80 target= value=80 tcp_80_rc=1\",\"+INFO_OFF severity=optional kind=tcp name=vm150_nextcloud_https443 target= value=443 tcp_443_rc=1\",\"+OK severity=critical kind=ping name=vm160_forum_prod_ping target= value=- ping_rc=0\",\"+OK severity=critical kind=tcp name=vm160_forum_prod_ssh target= value=22 tcp_22_rc=0\",\"+OK severity=optional kind=tcp name=vm160_forum_prod_http80 target= value=80 tcp_80_rc=0\",\"+INFO_OFF severity=optional kind=tcp name=vm160_forum_prod_https443 target= value=443 tcp_443_rc=1\",\"+OK severity=critical kind=ping name=vm170_core_apps_ping target= value=- ping_rc=0\",\"+OK severity=critical kind=tcp name=vm170_core_apps_ssh target= value=22 tcp_22_rc=0\",\"+INFO_OFF severity=optional kind=tcp name=vm170_core_apps_http80 target= value=80 tcp_80_rc=1\",\"+INFO_OFF severity=optional kind=tcp name=vm170_core_apps_https443 target= value=443 tcp_443_rc=1\",\"+OK severity=critical kind=ping name=vm171_monitoring_ping target= value=- ping_rc=0\",\"+OK severity=critical kind=tcp name=vm171_monitoring_ssh target= value=22 tcp_22_rc=0\",\"+INFO_OFF severity=optional kind=tcp name=vm171_monitoring_http80 target= value=80 tcp_80_rc=1\",\"+INFO_OFF severity=optional kind=tcp name=vm171_monitoring_https443 target= value=443 tcp_443_rc=1\",\" \",\" ## Result\",\"-STATUS=WARN TS=2026-08-05T13:19:08Z TYPE=cluster-admin-full-observer BAD=3 WARN=0 INFO_OFF=7 PROBE_OK=2 PROBE_BAD=2 MAP_TOTAL=30 CRITICAL_FAILS=0 OPTIONAL_INFO_OFF=7 SELF_FAILED_UNITS=1 QGA=active REPORT=/var/lib/homelab-cluster-admin/full-observer-latest.md
\",\"+STATUS=WARN TS=2026-08-05T14:15:25Z TYPE=cluster-admin-full-observer BAD=3 WARN=0 INFO_OFF=7 PROBE_OK=2 PROBE_BAD=2 MAP_TOTAL=30 CRITICAL_FAILS=0 OPTIONAL_INFO_OFF=7 SELF_FAILED_UNITS=1 QGA=active REPORT=/var/lib/homelab-cluster-admin/full-observer-latest.md
\",\" \",\" \"],\"published_lines\":110,\"total_lines\":110,\"truncated\":false},\"mutation_outcome\":\"NO_MUTATION\",\"read_only\":true,\"reference_diff\":{\"lines\":[\"--- V19/reference-backend\",\"+++ CURRENT/reference-backend\",\"@@ -31,9 +31,9 @@\",\" [ \\\"$FAILED\\\" = 0 ] || BAD=$((BAD+1))\",\" [ \\\"$QGA\\\" = active ] || BAD=$((BAD+1))\",\" \",\" if [ \\\"$BAD\\\" = 0 ]; then STATUS=OK; COLOR=\\\"#0a7f38\\\"; BADGE=\\\"OK\\\"; else STATUS=WARN; COLOR=\\\"#b26a00\\\"; BADGE=\\\"REVIEW\\\"; fi\",\"-STATUS_LINE=\\\"STATUS=$STATUS TS=$TS TYPE=cluster-admin-webpanel BAD=$BAD URL=http://[PRIVATE_IP]:8080/ STATUS_URL=http://[PRIVATE_IP]:8080/status.txt SELF_FAILED_UNITS=$FAILED QGA=$QGA BACKUP=MAIL_CLOUD_2COPY_VERIFY_OK\\\"\",\"+STATUS_LINE=\\\"STATUS=$STATUS TS=$TS TYPE=cluster-admin-webpanel BAD=$BAD URL=http://:8080/ STATUS_URL=http://:8080/status.txt SELF_FAILED_UNITS=$FAILED QGA=$QGA BACKUP=MAIL_CLOUD_2COPY_VERIFY_OK\\\"\",\" echo \\\"$STATUS_LINE\\\" | tee /var/lib/homelab-health/cluster-admin-webpanel.txt >/dev/null\",\" echo \\\"$STATUS_LINE\\\" > \\\"$WEB/status.txt\\\"\",\" \",\" cat > \\\"$WEB/index.html\\\" <\",\" \",\" \",\"

Homelab Cluster Admin

\",\"-
generated UTC: $TS · VM180 · [PRIVATE_IP] · refresh 60s
\",\"+
generated UTC: $TS · VM180 · · refresh 60s
\",\"

$BADGE

\",\" \",\"
\",\"

Self

$SELF\"],\"published_lines\":24,\"total_lines\":24,\"truncated\":false},\"remote_identity\":{\"euid\":0,\"hostname\":\"cluster-admin\"},\"rollback_restored\":false,\"rollback_started\":false,\"schema\":22,\"status\":\"OK\",\"transport\":{\"rc\":0,\"stderr\":\"\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":35786,\"stdout_sha256\":\"cf04063175c8c32ec5f20bb9377e91c2173611df31997715338fcd4f7af95681\"},\"units\":[{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"inactive\",\"ExecMainExitTimestamp\":\"Wed 2026-08-05 14:20:15 UTC\",\"ExecMainStartTimestamp\":\"Wed 2026-08-05 14:20:15 UTC\",\"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 14:20:15 UTC] ; stop_time=[Wed 2026-08-05 14:20:15 UTC] ; pid=2016430 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/cluster-admin-incident-engine-collector.service\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"dead\",\"TriggeredBy\":\"cluster-admin-incident-engine-collector.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"/opt/cluster-admin-incident-engine\"},\"show_rc\":0,\"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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/cluster-admin-incident-engine-collector.timer\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"cluster-admin-incident-engine-collector.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"active\",\"ExecMainExitTimestamp\":\"\",\"ExecMainStartTimestamp\":\"Tue 2026-07-28 11:06:07 UTC\",\"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=[Tue 2026-07-28 11:06:07 UTC] ; stop_time=[n/a] ; pid=487 ; code=(null) ; status=0/0 }\",\"FragmentPath\":\"/etc/systemd/system/cluster-admin-incident-engine.service\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"running\",\"TriggeredBy\":\"\",\"Triggers\":\"\",\"UnitFileState\":\"enabled\",\"WorkingDirectory\":\"/opt/cluster-admin-incident-engine\"},\"show_rc\":0,\"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=[PRIVATE_IP],127.0.0.1\\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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"inactive\",\"ExecMainExitTimestamp\":\"Wed 2026-08-05 14:20:09 UTC\",\"ExecMainStartTimestamp\":\"Wed 2026-08-05 14:20:08 UTC\",\"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 14:20:08 UTC] ; stop_time=[Wed 2026-08-05 14:20:09 UTC] ; pid=2016411 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/cluster-admin-probe-agent.service\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"dead\",\"TriggeredBy\":\"cluster-admin-probe-agent.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"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=[PRIVATE_IP]\\nIPAddressAllow=[PRIVATE_IP]\\nIPAddressAllow=[PRIVATE_IP]\\nIPAddressAllow=[PRIVATE_IP]\\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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/cluster-admin-probe-agent.timer\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"cluster-admin-probe-agent.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"inactive\",\"ExecMainExitTimestamp\":\"Wed 2026-08-05 14:15:31 UTC\",\"ExecMainStartTimestamp\":\"Wed 2026-08-05 14:15:25 UTC\",\"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 14:15:25 UTC] ; stop_time=[Wed 2026-08-05 14:15:31 UTC] ; pid=2015620 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-full-observer.service\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"dead\",\"TriggeredBy\":\"homelab-cluster-admin-full-observer.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-full-observer.timer\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"homelab-cluster-admin-full-observer.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"inactive\",\"ExecMainExitTimestamp\":\"Wed 2026-08-05 14:15:25 UTC\",\"ExecMainStartTimestamp\":\"Wed 2026-08-05 14:15:25 UTC\",\"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 14:15:25 UTC] ; stop_time=[Wed 2026-08-05 14:15:25 UTC] ; pid=2015621 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-observer.service\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"dead\",\"TriggeredBy\":\"homelab-cluster-admin-observer.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-observer.timer\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"homelab-cluster-admin-observer.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"inactive\",\"ExecMainExitTimestamp\":\"Wed 2026-08-05 14:15:25 UTC\",\"ExecMainStartTimestamp\":\"Wed 2026-08-05 14:15:25 UTC\",\"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 14:15:25 UTC] ; stop_time=[Wed 2026-08-05 14:15:25 UTC] ; pid=2015622 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-self-check.service\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"dead\",\"TriggeredBy\":\"homelab-cluster-admin-self-check.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-self-check.timer\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"homelab-cluster-admin-self-check.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"inactive\",\"ExecMainExitTimestamp\":\"Wed 2026-08-05 14:20:15 UTC\",\"ExecMainStartTimestamp\":\"Wed 2026-08-05 14:20:15 UTC\",\"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 14:20:15 UTC] ; stop_time=[Wed 2026-08-05 14:20:15 UTC] ; pid=2016431 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-webpanel-render.service\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"dead\",\"TriggeredBy\":\"homelab-cluster-admin-webpanel-render.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-webpanel-render.timer\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"homelab-cluster-admin-webpanel-render.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"active\",\"ExecMainExitTimestamp\":\"\",\"ExecMainStartTimestamp\":\"Tue 2026-07-28 11:06:03 UTC\",\"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=[Tue 2026-07-28 11:06:03 UTC] ; stop_time=[n/a] ; pid=439 ; code=(null) ; status=0/0 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-webpanel.service\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"running\",\"TriggeredBy\":\"\",\"Triggers\":\"\",\"UnitFileState\":\"enabled\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"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\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"failed\",\"ExecMainExitTimestamp\":\"Wed 2026-08-05 14:11:28 UTC\",\"ExecMainStartTimestamp\":\"Wed 2026-08-05 14:11:28 UTC\",\"ExecStart\":\"{ path=/usr/local/sbin/homelab-stage4i-verify ; argv[]=/usr/local/sbin/homelab-stage4i-verify ; ignore_errors=no ; start_time=[Wed 2026-08-05 14:11:28 UTC] ; stop_time=[Wed 2026-08-05 14:11:28 UTC] ; pid=2015065 ; code=exited ; status=50 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-stage4i-verify.service\",\"LoadState\":\"loaded\",\"Result\":\"exit-code\",\"SubState\":\"failed\",\"TriggeredBy\":\"homelab-stage4i-verify.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"unit\":\"homelab-stage4i-verify.service\",\"unit_text\":\"# /etc/systemd/system/homelab-stage4i-verify.service\\n[Unit]\\nDescription=Verify active immutable Stage 4I task version\\nAfter=local-fs.target\\n\\n[Service]\\nType=oneshot\\nUser=root\\nGroup=root\\nExecStart=/usr/local/sbin/homelab-stage4i-verify\\nNoNewPrivileges=true\\nPrivateDevices=true\\nProtectClock=true\\nProtectControlGroups=true\\nProtectHome=true\\nProtectKernelLogs=true\\nProtectKernelModules=true\\nProtectKernelTunables=true\\nRestrictNamespaces=true\\nRestrictRealtime=true\\nLockPersonality=true\\nMemoryDenyWriteExecute=true\\nUMask=0027\\n\"},{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"active\",\"FragmentPath\":\"/etc/systemd/system/homelab-stage4i-verify.timer\",\"LoadState\":\"loaded\",\"Result\":\"success\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"homelab-stage4i-verify.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"unit\":\"homelab-stage4i-verify.timer\",\"unit_text\":\"# /etc/systemd/system/homelab-stage4i-verify.timer\\n[Unit]\\nDescription=Regularly verify active immutable Stage 4I task version\\n\\n[Timer]\\nOnBootSec=2min\\nOnUnitActiveSec=15min\\nAccuracySec=1min\\nPersistent=true\\nUnit=homelab-stage4i-verify.service\\n\\n[Install]\\nWantedBy=timers.target\\n\"}],\"v19_exact_result\":{\"changes_made\":false,\"control_plane_error\":null,\"mutation_outcome\":\"NO_MUTATION\",\"output_bytes\":79419,\"output_sha256\":\"136221f755ac0a721469151448174aef1afce2fb7597afcd8ba4652284099fc9\",\"output_source\":\"runner_json\",\"rollback_restored\":null,\"rollback_started\":false,\"runner_document_rc\":0,\"runner_json_sha256\":\"bc3ce708ad879590b3850b11dd8282ab9cc2faa48274b8dfd3c6a486bd3e1360\",\"runner_rc\":0,\"runner_status\":\"OK\",\"runner_text_sha256\":\"5bab552a2de42048d35e4e73b12267670153bda3b91e14ae8731163b03969f51\",\"runner_wrapper_matches_document\":true,\"state_document_sha256\":\"ba2860a7aab047d7f38ca1141d6f2971e61e990cff504a1f28dce08464c4ecf7\",\"state_path_sha256\":\"f0448a841353b3dc9042f881326d555faaa928689d01b95b4259170feaccbeda\",\"state_status\":\"OK\"},\"v21_exact_result\":{\"changes_made\":false,\"control_plane_error\":null,\"exact_error\":\"remote python failed: Traceback (most recent call last):\\n  File \\\"\\\", line 14, in \\nRuntimeError: sha drift /var/www/homelab-cluster-admin/index.html\\n\",\"exact_error_confirmed\":true,\"mutation_outcome\":\"NO_MUTATION\",\"output_bytes\":843,\"output_sha256\":\"dcd6c5631069f8d522b62ac544e52af1fd03f187bb862ecfa240fdf6b628b199\",\"output_source\":\"runner_json\",\"rollback_restored\":false,\"rollback_started\":false,\"runner_document_rc\":1,\"runner_json_sha256\":\"3ad8f45bdaff6a3b68a44a0c1bb22241dcd39e115728837ae5594b292321898e\",\"runner_rc\":1,\"runner_status\":\"FAIL\",\"runner_text_sha256\":\"78d8d650581eafcde8a7ab1498fc2269bb3c4b3b46ca0e388401f3db88164771\",\"runner_wrapper_matches_document\":true,\"state_document_sha256\":\"555ae2a4e44cf6d6dac5216dfd5a8f58d4fdcf667392c3c03d3f79f099655fca\",\"state_path_sha256\":\"1e2f176c02f8bd3d63a101110406e855e05023596ee5f05a49ee4356d8c84f8a\",\"state_status\":\"FAIL\"}}\n"
+  "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z\",\"command_rc\":1,\"mutation_outcome\":\"NO_MUTATION\",\"output_truncated_in_json\":false,\"rc\":1,\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL\",\"version\":1}\n{\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z\",\"command_rc\":1,\"detail\":{\"record_count\":0,\"unique_id_count\":0},\"error\":{\"message_sha256\":\"184f3e3638772a44c7f0c35ac0a114207aa8d0d8c2d08cb0c4a58ec0df7c7df3\",\"type\":\"Abort\"},\"mutation_outcome\":\"NO_MUTATION\",\"next_action\":\"RUN_ONE_READ_ONLY_ERROR_REGISTRY_EXACT_SHAPE_DIAGNOSTIC\",\"output_truncated_in_json\":false,\"private_addresses_emitted\":false,\"rc\":1,\"rollback_restored\":null,\"rollback_started\":false,\"root_cause_classification\":\"LEGACY_ERROR_REGISTRY_SHAPE_OR_COUNT_CHANGED\",\"schema\":1,\"secrets_emitted\":false,\"status\":\"FAIL\"}\n"
 }
diff --git a/runtime/latest.txt b/runtime/latest.txt
index 65b20f4..1e341a1 100644
--- a/runtime/latest.txt
+++ b/runtime/latest.txt
@@ -1,22 +1,22 @@
 CHAT_OUTPUT_BEGIN
-COMMAND_ID=HOMELAB-CLUSTER-ADMIN-UPDATES-V22-INDEX-DRIFT-READ-ONLY-20260805T142000Z
-STATUS=OK
-RC=0
+COMMAND_ID=HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z
+STATUS=FAIL
+RC=1
 HOST=pve01
-MODE=verify
-COMPONENT=homelab-cluster-admin-update-visibility
+MODE=change
+COMPONENT=cluster-kb-error-v2
 REFERENCE_REGISTER_CHECK=OK
 REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
 ERROR_REGISTER_CHECK=OK
 ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83
-COMMAND_SHA256=b4bce2469c19f1a3186f956193115529e14e4df31c9798c2de3a08fa8dd1c9ef
+COMMAND_SHA256=4b41d5f35a6e66b0a5dbf1ebef8ae4458552b330a9859b209af807022d01ce02
 DUPLICATE_FAILED_COMMAND_BLOCKED=false
 EXECUTION_STARTED=true
-CHANGE_DECLARED=false
+CHANGE_DECLARED=true
 RESULT_CONTRACT_VALID=true
-RESULT_CONTRACT_STATUS=NOT_APPLICABLE
+RESULT_CONTRACT_STATUS=FAIL
 RESULT_CONTRACT_ERROR=NONE
-COMMAND_RC=0
+COMMAND_RC=1
 CHANGES_MADE=false
 ROLLBACK_STARTED=false
 ROLLBACK_RESTORED=null
@@ -24,11 +24,11 @@ MUTATION_OUTCOME=NO_MUTATION
 SANITIZED=yes
 SECRETS_INCLUDED=no
 PRIVATE_ADDRESSES_INCLUDED=no
-RAW_EVIDENCE_SHA256=81f3a7b84d9eec86671f34f89bc59d99a95dd08ec9d6911e6ea399964e0e9718
-SANITIZED_OUTPUT_SHA256=691a9fb3ca3ff21163b447d98d7f8055f3e7ad70e86dafd2b73cdd5e9d118969
+RAW_EVIDENCE_SHA256=9aaeb30907f4182271806a8fb33d909a474e58ad81567cc9c90b2ac58d5a3c55
+SANITIZED_OUTPUT_SHA256=9aaeb30907f4182271806a8fb33d909a474e58ad81567cc9c90b2ac58d5a3c55
 OUTPUT_BEGIN
-HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMELAB-CLUSTER-ADMIN-UPDATES-V22-INDEX-DRIFT-READ-ONLY-20260805T142000Z","command_rc":0,"control_plane_error":null,"index_changed_diff_lines":110,"index_current_sha256":"686e55e3934e22180a3889a0ee9ba8cdcbb92b5d9d1bc5418080f701a5796172","index_drift":true,"index_expected_sha256":"c4fc9eec9c1e9884c5b054b2193db518f5a5d15c026c5e01fe11c6be8d52fc89","index_path":"/var/www/homelab-cluster-admin/index.html","managed_marker_present":false,"mutation_outcome":"NO_MUTATION","rc":0,"ready_for_corrected_transaction":true,"reference_current_sha256":"fbec0df3b65d3e9e00348441b018382a603db18469d07cde13a492c09cb0790f","reference_drift":false,"reference_expected_sha256":"fbec0df3b65d3e9e00348441b018382a603db18469d07cde13a492c09cb0790f","remote_probe_root":true,"report_bytes":33176,"report_sha256":"04df393f3f5a7703399153a129a8458a3c9980f45c4cb00b1f9bd8b62182c15c","rollback_restored":false,"rollback_started":false,"status":"OK","v19_exact_result_identity_confirmed":true,"v21_exact_result_identity_confirmed":true,"v21_exact_sha_drift_confirmed":true,"version":1}
-{"changes_made":false,"command_id":"HOMELAB-CLUSTER-ADMIN-UPDATES-V22-INDEX-DRIFT-READ-ONLY-20260805T142000Z","current_files":{"index":{"backend_marker_begin":false,"backend_marker_end":false,"bytes":10353,"ctime_ns":1785939615262660290,"expected_sha256":"c4fc9eec9c1e9884c5b054b2193db518f5a5d15c026c5e01fe11c6be8d52fc89","gid":0,"index_marker_begin":false,"index_marker_end":false,"inode":135903,"matches_v19":false,"mode":420,"mtime_ns":1785939615262660290,"path":"/var/www/homelab-cluster-admin/index.html","sha256":"686e55e3934e22180a3889a0ee9ba8cdcbb92b5d9d1bc5418080f701a5796172","uid":0},"reference":{"backend_marker_begin":false,"backend_marker_end":false,"bytes":3708,"ctime_ns":1783706500680296060,"expected_sha256":"fbec0df3b65d3e9e00348441b018382a603db18469d07cde13a492c09cb0790f","gid":0,"index_marker_begin":false,"index_marker_end":false,"inode":135901,"matches_v19":true,"mode":493,"mtime_ns":1783706500680296060,"path":"/opt/homelab-cluster-admin/render-webpanel.sh","sha256":"fbec0df3b65d3e9e00348441b018382a603db18469d07cde13a492c09cb0790f","uid":0}},"drift_analysis":{"index_changed_diff_lines":110,"index_drift":true,"managed_marker_present":false,"next_required_action":"build corrected atomic transaction using current index SHA","ready_for_corrected_transaction":true,"reference_changed_diff_lines":24,"reference_drift":false},"index_diff":{"lines":["--- V19/index.html","+++ CURRENT/index.html","@@ -16,65 +16,65 @@"," "," "," "," 

Homelab Cluster Admin

","-
generated UTC: 2026-08-05T13:20:48Z · VM180 · [PRIVATE_IP] · refresh 60s
","+
generated UTC: 2026-08-05T14:20:15Z · VM180 · · refresh 60s
","

REVIEW

"," ","
","-

Self

STATUS=WARN TS=2026-08-05T13:19:08Z TYPE=cluster-admin-self-check BAD=1 HOST=cluster-admin IP_OK=1 DNS_OK=1 FAILED_UNITS=1 QGA=active","+

Self

STATUS=WARN TS=2026-08-05T14:15:25Z TYPE=cluster-admin-self-check BAD=1 HOST=cluster-admin IP_OK=1 DNS_OK=1 FAILED_UNITS=1 QGA=active"," FAILED_UNITS=1"," QGA=active
","-

Observer

STATUS=WARN TS=2026-08-05T13:19:08Z TYPE=cluster-admin-observer BAD=2 WARN=0 HOST=cluster-admin SELF_FAILED_UNITS=1 QGA=active PVE01=checked PVE02=checked PVE03=checked EDGE=checked DNS_PAIR=checked OVERALL_ENDPOINT=checked REPORT=/var/lib/homelab-cluster-admin/latest.md
","-

Full observer

STATUS=WARN TS=2026-08-05T13:19:08Z TYPE=cluster-admin-full-observer BAD=3 WARN=0 INFO_OFF=7 PROBE_OK=2 PROBE_BAD=2 MAP_TOTAL=30 CRITICAL_FAILS=0 OPTIONAL_INFO_OFF=7 SELF_FAILED_UNITS=1 QGA=active REPORT=/var/lib/homelab-cluster-admin/full-observer-latest.md
","+

Observer

STATUS=WARN TS=2026-08-05T14:15:25Z TYPE=cluster-admin-observer BAD=2 WARN=0 HOST=cluster-admin SELF_FAILED_UNITS=1 QGA=active PVE01=checked PVE02=checked PVE03=checked EDGE=checked DNS_PAIR=checked OVERALL_ENDPOINT=checked REPORT=/var/lib/homelab-cluster-admin/latest.md
","+

Full observer

STATUS=WARN TS=2026-08-05T14:15:25Z TYPE=cluster-admin-full-observer BAD=3 WARN=0 INFO_OFF=7 PROBE_OK=2 PROBE_BAD=2 MAP_TOTAL=30 CRITICAL_FAILS=0 OPTIONAL_INFO_OFF=7 SELF_FAILED_UNITS=1 QGA=active REPORT=/var/lib/homelab-cluster-admin/full-observer-latest.md
","

Mail Cloud backup

STATUS=OK TS=2026-07-09T05:07:47Z TYPE=cluster-admin-vm-mail-cloud-backup BAD=0 VMID=180 NODE=pve02 MODE=MAIL_CLOUD_2COPY_VERIFY_OK LOCAL_STATUS=OK REPORT=/var/lib/homelab-cluster-admin-vm-mail-cloud-backup/latest.md
","
"," ","-
","+
","

Final readiness

STATUS=WARN TS=2026-08-05T05:21:50Z TYPE=final-readiness BAD=6 PASS=47 FAIL=6 REPORT=/var/lib/homelab-final-readiness/latest.md
","-

Strict seal

STATUS=OK TS=2026-07-09T04:49:23Z TYPE=cluster-admin-strict-final-seal BAD=0 VMID=180 IP=[PRIVATE_IP] MODE=DEDICATED_CLUSTER_ADMIN_HARDGATED OBSERVER=OK RESTRICTED_PROBES=OK FULL_OBSERVER=OK OVERALL_HARDGATE=YES FINAL_READINESS_HARDGATE=YES FAILED_UNITS=pve01:0,pve02:0,pve03:0,edge:0 DIRTY_COUNT=0 REPORT=/var/lib/homelab-ideal-cluster/cluster-admin-strict-final-seal-latest.md
","+

Strict seal

STATUS=OK TS=2026-07-09T04:49:23Z TYPE=cluster-admin-strict-final-seal BAD=0 VMID=180 IP= MODE=DEDICATED_CLUSTER_ADMIN_HARDGATED OBSERVER=OK RESTRICTED_PROBES=OK FULL_OBSERVER=OK OVERALL_HARDGATE=YES FINAL_READINESS_HARDGATE=YES FAILED_UNITS=pve01:0,pve02:0,pve03:0,edge:0 DIRTY_COUNT=0 REPORT=/var/lib/homelab-ideal-cluster/cluster-admin-strict-final-seal-latest.md
","

Service map tail

# Homelab cluster-admin full observer","-generated_utc=2026-08-05T13:19:08Z","+generated_utc=2026-08-05T14:15:25Z"," policy=critical_failures_are_bad_optional_tcp_is_inventory_info"," "," ## Restricted probes","-pve01 ssh_rc=0 STATUS=WARN TS=2026-08-05T13:19:08Z TYPE=cluster-admin-node-probe BAD=1 HOST=pve01 FAILED_UNITS=3 ROOT_PCT=16 STAGING_PCT=53 PVE_CLUSTER=active PVE_DAEMON=active PVE_PROXY=active PVE_STATD=active COROSYNC=active QUORATE=Yes QM_RUNNING=3 CT_RUNNING=2","-pve02 ssh_rc=0 STATUS=OK TS=2026-08-05T13:19:10Z TYPE=cluster-admin-node-probe BAD=0 HOST=pve02 FAILED_UNITS=0 ROOT_PCT=30 STAGING_PCT=75 PVE_CLUSTER=active PVE_DAEMON=active PVE_PROXY=active PVE_STATD=active COROSYNC=active QUORATE=Yes QM_RUNNING=2 CT_RUNNING=2","-pve03 ssh_rc=0 STATUS=WARN TS=2026-08-05T13:19:12Z TYPE=cluster-admin-node-probe BAD=1 HOST=pve03 FAILED_UNITS=2 ROOT_PCT=59 STAGING_PCT=54 PVE_CLUSTER=active PVE_DAEMON=active PVE_PROXY=active PVE_STATD=active COROSYNC=active QUORATE=Yes QM_RUNNING=2 CT_RUNNING=0","-edge ssh_rc=0 STATUS=OK TS=2026-08-05T13:19:14Z TYPE=cluster-admin-edge-probe BAD=0 HOST=edge-vm FAILED_UNITS=0 ROOT_PCT=42 SSHD=active","+pve01 ssh_rc=0 STATUS=WARN TS=2026-08-05T14:15:25Z TYPE=cluster-admin-node-probe BAD=1 HOST=pve01 FAILED_UNITS=3 ROOT_PCT=16 STAGING_PCT=53 PVE_CLUSTER=active PVE_DAEMON=active PVE_PROXY=active PVE_STATD=active COROSYNC=active QUORATE=Yes QM_RUNNING=3 CT_RUNNING=2","+pve02 ssh_rc=0 STATUS=OK TS=2026-08-05T14:15:27Z TYPE=cluster-admin-node-probe BAD=0 HOST=pve02 FAILED_UNITS=0 ROOT_PCT=30 STAGING_PCT=75 PVE_CLUSTER=active PVE_DAEMON=active PVE_PROXY=active PVE_STATD=active COROSYNC=active QUORATE=Yes QM_RUNNING=2 CT_RUNNING=2","+pve03 ssh_rc=0 STATUS=WARN TS=2026-08-05T14:15:29Z TYPE=cluster-admin-node-probe BAD=1 HOST=pve03 FAILED_UNITS=2 ROOT_PCT=59 STAGING_PCT=54 PVE_CLUSTER=active PVE_DAEMON=active PVE_PROXY=active PVE_STATD=active COROSYNC=active QUORATE=Yes QM_RUNNING=2 CT_RUNNING=0","+edge ssh_rc=0 STATUS=OK TS=2026-08-05T14:15:31Z TYPE=cluster-admin-edge-probe BAD=0 HOST=edge-vm FAILED_UNITS=0 ROOT_PCT=42 SSHD=active"," "," ## Service map checks","-OK severity=","-OK severity=critical kind=tcp name=pve01_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0","-OK severity=critical kind=tcp name=pve01_proxmox target=[PRIVATE_IP] value=8006 tcp_8006_rc=0","-OK severity=critical kind=tcp name=pve01_health target=[PRIVATE_IP] value=9101 tcp_9101_rc=0","-OK severity=critical kind=tcp name=pve02_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0","-OK severity=critical kind=tcp name=pve02_proxmox target=[PRIVATE_IP] value=8006 tcp_8006_rc=0","-OK severity=critical kind=tcp name=pve03_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0","-OK severity=critical kind=tcp name=pve03_proxmox target=[PRIVATE_IP] value=8006 tcp_8006_rc=0","-OK severity=critical kind=tcp name=dns1_tcp53 target=[PRIVATE_IP] value=53 tcp_53_rc=0","-OK severity=critical kind=tcp name=dns2_tcp53 target=[PRIVATE_IP] value=53 tcp_53_rc=0","-OK severity=critical kind=tcp name=edge_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0","-OK severity=critical kind=tcp name=cluster_admin_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0","-OK severity=critical kind=ping name=vm130_edge_vm_ping target=[PRIVATE_IP] value=- ping_rc=0","-OK severity=critical kind=tcp name=vm130_edge_vm_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0","-OK severity=critical kind=ping name=vm150_nextcloud_ping target=[PRIVATE_IP] value=- ping_rc=0","-OK severity=critical kind=tcp name=vm150_nextcloud_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0","-INFO_OFF severity=optional kind=tcp name=vm150_nextcloud_http80 target=[PRIVATE_IP] value=80 tcp_80_rc=1","-INFO_OFF severity=optional kind=tcp name=vm150_nextcloud_https443 target=[PRIVATE_IP] value=443 tcp_443_rc=1","-OK severity=critical kind=ping name=vm160_forum_prod_ping target=[PRIVATE_IP] value=- ping_rc=0","-OK severity=critical kind=tcp name=vm160_forum_prod_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0","-OK severity=optional kind=tcp name=vm160_forum_prod_http80 target=[PRIVATE_IP] value=80 tcp_80_rc=0","-INFO_OFF severity=optional kind=tcp name=vm160_forum_prod_https443 target=[PRIVATE_IP] value=443 tcp_443_rc=1","-OK severity=critical kind=ping name=vm170_core_apps_ping target=[PRIVATE_IP] value=- ping_rc=0","-OK severity=critical kind=tcp name=vm170_core_apps_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0","-INFO_OFF severity=optional kind=tcp name=vm170_core_apps_http80 target=[PRIVATE_IP] value=80 tcp_80_rc=1","-INFO_OFF severity=optional kind=tcp name=vm170_core_apps_https443 target=[PRIVATE_IP] value=443 tcp_443_rc=1","-OK severity=critical kind=ping name=vm171_monitoring_ping target=[PRIVATE_IP] value=- ping_rc=0","-OK severity=critical kind=tcp name=vm171_monitoring_ssh target=[PRIVATE_IP] value=22 tcp_22_rc=0","-INFO_OFF severity=optional kind=tcp name=vm171_monitoring_http80 target=[PRIVATE_IP] value=80 tcp_80_rc=1","-INFO_OFF severity=optional kind=tcp name=vm171_monitoring_https443 target=[PRIVATE_IP] value=443 tcp_443_rc=1","+OK severity=","+OK severity=critical kind=tcp name=pve01_ssh target= value=22 tcp_22_rc=0","+OK severity=critical kind=tcp name=pve01_proxmox target= value=8006 tcp_8006_rc=0","+OK severity=critical kind=tcp name=pve01_health target= value=9101 tcp_9101_rc=0","+OK severity=critical kind=tcp name=pve02_ssh target= value=22 tcp_22_rc=0","+OK severity=critical kind=tcp name=pve02_proxmox target= value=8006 tcp_8006_rc=0","+OK severity=critical kind=tcp name=pve03_ssh target= value=22 tcp_22_rc=0","+OK severity=critical kind=tcp name=pve03_proxmox target= value=8006 tcp_8006_rc=0","+OK severity=critical kind=tcp name=dns1_tcp53 target= value=53 tcp_53_rc=0","+OK severity=critical kind=tcp name=dns2_tcp53 target= value=53 tcp_53_rc=0","+OK severity=critical kind=tcp name=edge_ssh target= value=22 tcp_22_rc=0","+OK severity=critical kind=tcp name=cluster_admin_ssh target= value=22 tcp_22_rc=0","+OK severity=critical kind=ping name=vm130_edge_vm_ping target= value=- ping_rc=0","+OK severity=critical kind=tcp name=vm130_edge_vm_ssh target= value=22 tcp_22_rc=0","+OK severity=critical kind=ping name=vm150_nextcloud_ping target= value=- ping_rc=0","+OK severity=critical kind=tcp name=vm150_nextcloud_ssh target= value=22 tcp_22_rc=0","+INFO_OFF severity=optional kind=tcp name=vm150_nextcloud_http80 target= value=80 tcp_80_rc=1","+INFO_OFF severity=optional kind=tcp name=vm150_nextcloud_https443 target= value=443 tcp_443_rc=1","+OK severity=critical kind=ping name=vm160_forum_prod_ping target= value=- ping_rc=0","+OK severity=critical kind=tcp name=vm160_forum_prod_ssh target= value=22 tcp_22_rc=0","+OK severity=optional kind=tcp name=vm160_forum_prod_http80 target= value=80 tcp_80_rc=0","+INFO_OFF severity=optional kind=tcp name=vm160_forum_prod_https443 target= value=443 tcp_443_rc=1","+OK severity=critical kind=ping name=vm170_core_apps_ping target= value=- ping_rc=0","+OK severity=critical kind=tcp name=vm170_core_apps_ssh target= value=22 tcp_22_rc=0","+INFO_OFF severity=optional kind=tcp name=vm170_core_apps_http80 target= value=80 tcp_80_rc=1","+INFO_OFF severity=optional kind=tcp name=vm170_core_apps_https443 target= value=443 tcp_443_rc=1","+OK severity=critical kind=ping name=vm171_monitoring_ping target= value=- ping_rc=0","+OK severity=critical kind=tcp name=vm171_monitoring_ssh target= value=22 tcp_22_rc=0","+INFO_OFF severity=optional kind=tcp name=vm171_monitoring_http80 target= value=80 tcp_80_rc=1","+INFO_OFF severity=optional kind=tcp name=vm171_monitoring_https443 target= value=443 tcp_443_rc=1"," "," ## Result","-STATUS=WARN TS=2026-08-05T13:19:08Z TYPE=cluster-admin-full-observer BAD=3 WARN=0 INFO_OFF=7 PROBE_OK=2 PROBE_BAD=2 MAP_TOTAL=30 CRITICAL_FAILS=0 OPTIONAL_INFO_OFF=7 SELF_FAILED_UNITS=1 QGA=active REPORT=/var/lib/homelab-cluster-admin/full-observer-latest.md
","+STATUS=WARN TS=2026-08-05T14:15:25Z TYPE=cluster-admin-full-observer BAD=3 WARN=0 INFO_OFF=7 PROBE_OK=2 PROBE_BAD=2 MAP_TOTAL=30 CRITICAL_FAILS=0 OPTIONAL_INFO_OFF=7 SELF_FAILED_UNITS=1 QGA=active REPORT=/var/lib/homelab-cluster-admin/full-observer-latest.md
"," "," "],"published_lines":110,"total_lines":110,"truncated":false},"mutation_outcome":"NO_MUTATION","read_only":true,"reference_diff":{"lines":["--- V19/reference-backend","+++ CURRENT/reference-backend","@@ -31,9 +31,9 @@"," [ \"$FAILED\" = 0 ] || BAD=$((BAD+1))"," [ \"$QGA\" = active ] || BAD=$((BAD+1))"," "," if [ \"$BAD\" = 0 ]; then STATUS=OK; COLOR=\"#0a7f38\"; BADGE=\"OK\"; else STATUS=WARN; COLOR=\"#b26a00\"; BADGE=\"REVIEW\"; fi","-STATUS_LINE=\"STATUS=$STATUS TS=$TS TYPE=cluster-admin-webpanel BAD=$BAD URL=http://[PRIVATE_IP]:8080/ STATUS_URL=http://[PRIVATE_IP]:8080/status.txt SELF_FAILED_UNITS=$FAILED QGA=$QGA BACKUP=MAIL_CLOUD_2COPY_VERIFY_OK\"","+STATUS_LINE=\"STATUS=$STATUS TS=$TS TYPE=cluster-admin-webpanel BAD=$BAD URL=http://:8080/ STATUS_URL=http://:8080/status.txt SELF_FAILED_UNITS=$FAILED QGA=$QGA BACKUP=MAIL_CLOUD_2COPY_VERIFY_OK\""," echo \"$STATUS_LINE\" | tee /var/lib/homelab-health/cluster-admin-webpanel.txt >/dev/null"," echo \"$STATUS_LINE\" > \"$WEB/status.txt\""," "," cat > \"$WEB/index.html\" <"," "," ","

Homelab Cluster Admin

","-
generated UTC: $TS · VM180 · [PRIVATE_IP] · refresh 60s
","+
generated UTC: $TS · VM180 · · refresh 60s
","

$BADGE

"," ","
","

Self

$SELF"],"published_lines":24,"total_lines":24,"truncated":false},"remote_identity":{"euid":0,"hostname":"cluster-admin"},"rollback_restored":false,"rollback_started":false,"schema":22,"status":"OK","transport":{"rc":0,"stderr":"","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":35786,"stdout_sha256":"cf04063175c8c32ec5f20bb9377e91c2173611df31997715338fcd4f7af95681"},"units":[{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"inactive","ExecMainExitTimestamp":"Wed 2026-08-05 14:20:15 UTC","ExecMainStartTimestamp":"Wed 2026-08-05 14:20:15 UTC","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 14:20:15 UTC] ; stop_time=[Wed 2026-08-05 14:20:15 UTC] ; pid=2016430 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/cluster-admin-incident-engine-collector.service","LoadState":"loaded","Result":"success","SubState":"dead","TriggeredBy":"cluster-admin-incident-engine-collector.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":"/opt/cluster-admin-incident-engine"},"show_rc":0,"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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/cluster-admin-incident-engine-collector.timer","LoadState":"loaded","Result":"success","SubState":"waiting","TriggeredBy":"","Triggers":"cluster-admin-incident-engine-collector.service","UnitFileState":"enabled"},"show_rc":0,"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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"active","ExecMainExitTimestamp":"","ExecMainStartTimestamp":"Tue 2026-07-28 11:06:07 UTC","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=[Tue 2026-07-28 11:06:07 UTC] ; stop_time=[n/a] ; pid=487 ; code=(null) ; status=0/0 }","FragmentPath":"/etc/systemd/system/cluster-admin-incident-engine.service","LoadState":"loaded","Result":"success","SubState":"running","TriggeredBy":"","Triggers":"","UnitFileState":"enabled","WorkingDirectory":"/opt/cluster-admin-incident-engine"},"show_rc":0,"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=[PRIVATE_IP],127.0.0.1\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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"inactive","ExecMainExitTimestamp":"Wed 2026-08-05 14:20:09 UTC","ExecMainStartTimestamp":"Wed 2026-08-05 14:20:08 UTC","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 14:20:08 UTC] ; stop_time=[Wed 2026-08-05 14:20:09 UTC] ; pid=2016411 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/cluster-admin-probe-agent.service","LoadState":"loaded","Result":"success","SubState":"dead","TriggeredBy":"cluster-admin-probe-agent.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":""},"show_rc":0,"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=[PRIVATE_IP]\nIPAddressAllow=[PRIVATE_IP]\nIPAddressAllow=[PRIVATE_IP]\nIPAddressAllow=[PRIVATE_IP]\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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/cluster-admin-probe-agent.timer","LoadState":"loaded","Result":"success","SubState":"waiting","TriggeredBy":"","Triggers":"cluster-admin-probe-agent.service","UnitFileState":"enabled"},"show_rc":0,"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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"inactive","ExecMainExitTimestamp":"Wed 2026-08-05 14:15:31 UTC","ExecMainStartTimestamp":"Wed 2026-08-05 14:15:25 UTC","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 14:15:25 UTC] ; stop_time=[Wed 2026-08-05 14:15:31 UTC] ; pid=2015620 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-full-observer.service","LoadState":"loaded","Result":"success","SubState":"dead","TriggeredBy":"homelab-cluster-admin-full-observer.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":""},"show_rc":0,"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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-full-observer.timer","LoadState":"loaded","Result":"success","SubState":"waiting","TriggeredBy":"","Triggers":"homelab-cluster-admin-full-observer.service","UnitFileState":"enabled"},"show_rc":0,"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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"inactive","ExecMainExitTimestamp":"Wed 2026-08-05 14:15:25 UTC","ExecMainStartTimestamp":"Wed 2026-08-05 14:15:25 UTC","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 14:15:25 UTC] ; stop_time=[Wed 2026-08-05 14:15:25 UTC] ; pid=2015621 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-observer.service","LoadState":"loaded","Result":"success","SubState":"dead","TriggeredBy":"homelab-cluster-admin-observer.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":""},"show_rc":0,"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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-observer.timer","LoadState":"loaded","Result":"success","SubState":"waiting","TriggeredBy":"","Triggers":"homelab-cluster-admin-observer.service","UnitFileState":"enabled"},"show_rc":0,"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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"inactive","ExecMainExitTimestamp":"Wed 2026-08-05 14:15:25 UTC","ExecMainStartTimestamp":"Wed 2026-08-05 14:15:25 UTC","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 14:15:25 UTC] ; stop_time=[Wed 2026-08-05 14:15:25 UTC] ; pid=2015622 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-self-check.service","LoadState":"loaded","Result":"success","SubState":"dead","TriggeredBy":"homelab-cluster-admin-self-check.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":""},"show_rc":0,"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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-self-check.timer","LoadState":"loaded","Result":"success","SubState":"waiting","TriggeredBy":"","Triggers":"homelab-cluster-admin-self-check.service","UnitFileState":"enabled"},"show_rc":0,"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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"inactive","ExecMainExitTimestamp":"Wed 2026-08-05 14:20:15 UTC","ExecMainStartTimestamp":"Wed 2026-08-05 14:20:15 UTC","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 14:20:15 UTC] ; stop_time=[Wed 2026-08-05 14:20:15 UTC] ; pid=2016431 ; code=exited ; status=0 }","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-webpanel-render.service","LoadState":"loaded","Result":"success","SubState":"dead","TriggeredBy":"homelab-cluster-admin-webpanel-render.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":""},"show_rc":0,"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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-webpanel-render.timer","LoadState":"loaded","Result":"success","SubState":"waiting","TriggeredBy":"","Triggers":"homelab-cluster-admin-webpanel-render.service","UnitFileState":"enabled"},"show_rc":0,"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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"active","ExecMainExitTimestamp":"","ExecMainStartTimestamp":"Tue 2026-07-28 11:06:03 UTC","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=[Tue 2026-07-28 11:06:03 UTC] ; stop_time=[n/a] ; pid=439 ; code=(null) ; status=0/0 }","FragmentPath":"/etc/systemd/system/homelab-cluster-admin-webpanel.service","LoadState":"loaded","Result":"success","SubState":"running","TriggeredBy":"","Triggers":"","UnitFileState":"enabled","WorkingDirectory":""},"show_rc":0,"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\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"failed","ExecMainExitTimestamp":"Wed 2026-08-05 14:11:28 UTC","ExecMainStartTimestamp":"Wed 2026-08-05 14:11:28 UTC","ExecStart":"{ path=/usr/local/sbin/homelab-stage4i-verify ; argv[]=/usr/local/sbin/homelab-stage4i-verify ; ignore_errors=no ; start_time=[Wed 2026-08-05 14:11:28 UTC] ; stop_time=[Wed 2026-08-05 14:11:28 UTC] ; pid=2015065 ; code=exited ; status=50 }","FragmentPath":"/etc/systemd/system/homelab-stage4i-verify.service","LoadState":"loaded","Result":"exit-code","SubState":"failed","TriggeredBy":"homelab-stage4i-verify.timer","Triggers":"","UnitFileState":"static","WorkingDirectory":""},"show_rc":0,"unit":"homelab-stage4i-verify.service","unit_text":"# /etc/systemd/system/homelab-stage4i-verify.service\n[Unit]\nDescription=Verify active immutable Stage 4I task version\nAfter=local-fs.target\n\n[Service]\nType=oneshot\nUser=root\nGroup=root\nExecStart=/usr/local/sbin/homelab-stage4i-verify\nNoNewPrivileges=true\nPrivateDevices=true\nProtectClock=true\nProtectControlGroups=true\nProtectHome=true\nProtectKernelLogs=true\nProtectKernelModules=true\nProtectKernelTunables=true\nRestrictNamespaces=true\nRestrictRealtime=true\nLockPersonality=true\nMemoryDenyWriteExecute=true\nUMask=0027\n"},{"cat_rc":0,"cat_stderr":"","show":{"ActiveState":"active","FragmentPath":"/etc/systemd/system/homelab-stage4i-verify.timer","LoadState":"loaded","Result":"success","SubState":"waiting","TriggeredBy":"","Triggers":"homelab-stage4i-verify.service","UnitFileState":"enabled"},"show_rc":0,"unit":"homelab-stage4i-verify.timer","unit_text":"# /etc/systemd/system/homelab-stage4i-verify.timer\n[Unit]\nDescription=Regularly verify active immutable Stage 4I task version\n\n[Timer]\nOnBootSec=2min\nOnUnitActiveSec=15min\nAccuracySec=1min\nPersistent=true\nUnit=homelab-stage4i-verify.service\n\n[Install]\nWantedBy=timers.target\n"}],"v19_exact_result":{"changes_made":false,"control_plane_error":null,"mutation_outcome":"NO_MUTATION","output_bytes":79419,"output_sha256":"136221f755ac0a721469151448174aef1afce2fb7597afcd8ba4652284099fc9","output_source":"runner_json","rollback_restored":null,"rollback_started":false,"runner_document_rc":0,"runner_json_sha256":"bc3ce708ad879590b3850b11dd8282ab9cc2faa48274b8dfd3c6a486bd3e1360","runner_rc":0,"runner_status":"OK","runner_text_sha256":"5bab552a2de42048d35e4e73b12267670153bda3b91e14ae8731163b03969f51","runner_wrapper_matches_document":true,"state_document_sha256":"ba2860a7aab047d7f38ca1141d6f2971e61e990cff504a1f28dce08464c4ecf7","state_path_sha256":"f0448a841353b3dc9042f881326d555faaa928689d01b95b4259170feaccbeda","state_status":"OK"},"v21_exact_result":{"changes_made":false,"control_plane_error":null,"exact_error":"remote python failed: Traceback (most recent call last):\n  File \"\", line 14, in \nRuntimeError: sha drift /var/www/homelab-cluster-admin/index.html\n","exact_error_confirmed":true,"mutation_outcome":"NO_MUTATION","output_bytes":843,"output_sha256":"dcd6c5631069f8d522b62ac544e52af1fd03f187bb862ecfa240fdf6b628b199","output_source":"runner_json","rollback_restored":false,"rollback_started":false,"runner_document_rc":1,"runner_json_sha256":"3ad8f45bdaff6a3b68a44a0c1bb22241dcd39e115728837ae5594b292321898e","runner_rc":1,"runner_status":"FAIL","runner_text_sha256":"78d8d650581eafcde8a7ab1498fc2269bb3c4b3b46ca0e388401f3db88164771","runner_wrapper_matches_document":true,"state_document_sha256":"555ae2a4e44cf6d6dac5216dfd5a8f58d4fdcf667392c3c03d3f79f099655fca","state_path_sha256":"1e2f176c02f8bd3d63a101110406e855e05023596ee5f05a49ee4356d8c84f8a","state_status":"FAIL"}}
+HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z","command_rc":1,"mutation_outcome":"NO_MUTATION","output_truncated_in_json":false,"rc":1,"rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1}
+{"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-ERROR-SYSTEM-V2-ATOMIC-APPLY-SEMANTIC-GATE-FIX-20260805T141800Z","command_rc":1,"detail":{"record_count":0,"unique_id_count":0},"error":{"message_sha256":"184f3e3638772a44c7f0c35ac0a114207aa8d0d8c2d08cb0c4a58ec0df7c7df3","type":"Abort"},"mutation_outcome":"NO_MUTATION","next_action":"RUN_ONE_READ_ONLY_ERROR_REGISTRY_EXACT_SHAPE_DIAGNOSTIC","output_truncated_in_json":false,"private_addresses_emitted":false,"rc":1,"rollback_restored":null,"rollback_started":false,"root_cause_classification":"LEGACY_ERROR_REGISTRY_SHAPE_OR_COUNT_CHANGED","schema":1,"secrets_emitted":false,"status":"FAIL"}
 
 OUTPUT_END
 CHAT_OUTPUT_END