diff --git a/runtime/history/CONTEXT-AUTO-20260804T141701Z.json b/runtime/history/CONTEXT-AUTO-20260804T141701Z.json new file mode 100644 index 0000000..07d3a97 --- /dev/null +++ b/runtime/history/CONTEXT-AUTO-20260804T141701Z.json @@ -0,0 +1 @@ +{"schema_version":1,"channel":"homelab-runtime","command_id":"CONTEXT-AUTO-20260804T141701Z","status":"OK","rc":0,"host":"pve01","mode":"read-only","component":"cluster-context","started_at_utc":"2026-08-04T14:17:01Z","finished_at_utc":"2026-08-04T14:17:02Z","reference_register_checked":true,"reference_sha256":"5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e","error_register_checked":true,"error_register_sha256":"24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83","changes_made":false,"sanitized":true,"secrets_included":false,"private_addresses_included":false,"output":"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK"} diff --git a/runtime/history/CONTEXT-AUTO-20260804T141701Z.txt b/runtime/history/CONTEXT-AUTO-20260804T141701Z.txt new file mode 100644 index 0000000..dcd67a0 --- /dev/null +++ b/runtime/history/CONTEXT-AUTO-20260804T141701Z.txt @@ -0,0 +1,164 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=CONTEXT-AUTO-[PRIVATE_IP]701Z +STATUS=OK +RC=0 +HOST=pve01 +COMPONENT=cluster-context +REFERENCE_SHA[PRIVATE_IP]f8edc75fcf[PRIVATE_IP]c[PRIVATE_IP]cc112ceccb6cf[PRIVATE_IP]a4deb8e +ERROR_REGISTER_SHA[PRIVATE_IP]c7fa[PRIVATE_IP]583c4aefac[PRIVATE_IP]1736ed[PRIVATE_IP]ab83 +OUTPUT_BEGIN +GENERATED_AT_UTC=[PRIVATE_IP]T14:17:01Z +Cluster information +------------------- +Name: homelab +Config Version: 3 +Transport: knet +Secure auth: on + +Quorum information +------------------ +Date: Tue Aug [PRIVATE_IP] 2026 +Quorum provider: corosync_votequorum +Nodes: 3 +Node ID: [PRIVATE_IP] +Ring ID: 1.db +Quorate: Yes + +Votequorum information +---------------------- +Expected votes: 3 +Highest expected: 3 +Total votes: 3 +Quorum: 2 +Flags: Quorate + +Membership information +---------------------- + Nodeid Votes Name +[PRIVATE_IP] [PRIVATE_IP].11 (local) +[PRIVATE_IP] [PRIVATE_IP].13 +[PRIVATE_IP] [PRIVATE_IP].12 + +Membership information +---------------------- + Nodeid Votes Name + 1 1 pve01 (local) + 2 1 pve03 + 3 1 pve02 +[{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/110","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":616201,"vmid":110},{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/111","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":616285,"vmid":111},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/112","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":616246,"vmid":112},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/113","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":616288,"vmid":113},{"cpu":[PRIVATE_IP]09547,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"edge-vm","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":616224,"vmid":130},{"cpu":[PRIVATE_IP]44895,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/150","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"nextcloud","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":616198,"vmid":150},{"cpu":[PRIVATE_IP]768345,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/160","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"forum-prod","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":616281,"vmid":160},{"cpu":[PRIVATE_IP]50139,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/170","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"core-apps","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":616194,"vmid":170},{"cpu":[PRIVATE_IP]27507,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/171","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"monitoring","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":616191,"vmid":171},{"cpu":[PRIVATE_IP]65899,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/180","maxcpu":2,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"cluster-admin","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":616279,"vmid":180},{"cpu":[PRIVATE_IP]24452,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/190","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"homelab-ops-worker","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":616220,"vmid":190},{"cpu":0,"disk":0,"diskread":0,"diskwrite":0,"id":"qemu/9130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":0,"memhost":0,"name":"edge-cold-standby","netin":0,"netout":0,"node":"pve02","status":"stopped","template":0,"type":"qemu","uptime":0,"vmid":9130},{"cgroup-mode":2,"cpu":[PRIVATE_IP]07456,"disk":[PRIVATE_IP],"id":"node/pve01","level":"","maxcpu":24,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve01","status":"online","type":"node","uptime":616303},{"cgroup-mode":2,"cpu":[PRIVATE_IP]87802,"disk":[PRIVATE_IP],"id":"node/pve03","level":"","maxcpu":8,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve03","status":"online","type":"node","uptime":616242},{"cgroup-mode":2,"cpu":[PRIVATE_IP]56967,"disk":[PRIVATE_IP],"id":"node/pve02","level":"","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve02","status":"online","type":"node","uptime":616321},{"content":"vztmpl,import,iso,backup","disk":[PRIVATE_IP],"id":"storage/pve01/local","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"vztmpl,import,iso,backup","disk":[PRIVATE_IP],"id":"storage/pve03/local","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"vztmpl,import,iso,backup","disk":[PRIVATE_IP],"id":"storage/pve02/local","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve01/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve03/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve02/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"id":"network/pve01/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve01","status":"ok","type":"network"},{"id":"network/pve03/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve03","status":"ok","type":"network"},{"id":"network/pve02/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve02","status":"ok","type":"network"}] +Name Type Status Total (KiB) Used (KiB) Available (KiB) % +local dir active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 14.19% +local-lvm lvmthin active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 27.37% + UNIT LOAD ACTIVE SUB DESCRIPTION +● homelab-backup-matrix-refresh.service loaded failed failed Generate unified homelab backup matrix state +● homelab-crypto-portfolio-chart-health.service loaded failed failed Crypto portfolio chart health check +● skladchik-reports-monitor-supervisor.service loaded failed failed Skladchik reports monitor full supervisor + +Legend: LOAD → Reflects whether the unit definition was properly loaded. + ACTIVE → The high-level unit activation state, i.e. generalization of SUB. + SUB → The low-level unit activation state, values depend on unit type. + +3 loaded units listed. +NEXT LEFT LAST PASSED UNIT ACTIVATES +Tue [PRIVATE_IP] 17:17:18 MSK 15s Tue [PRIVATE_IP] 17:16:18 MSK 44s ago homelab-cluster-admin-webpanel-sync.timer homelab-cluster-admin-webpanel-sync.service +Tue [PRIVATE_IP] 17:17:18 MSK 15s Tue [PRIVATE_IP] 17:16:18 MSK 44s ago homelab-private-vpn-hosts-health.timer homelab-private-vpn-hosts-health.service +Tue [PRIVATE_IP] 17:17:18 MSK 16s Tue [PRIVATE_IP] 17:15:04 MSK 1min 58s ago homelab-cluster-admin-inventory-sync.timer homelab-cluster-admin-inventory-sync.service +Tue [PRIVATE_IP] 17:17:22 MSK 19s Tue [PRIVATE_IP] 17:16:21 MSK 41s ago homelab-router-watchdog.timer homelab-router-watchdog.service +Tue [PRIVATE_IP] 17:19:08 MSK 2min 6s Tue [PRIVATE_IP] 17:14:08 MSK 2min 53s ago homelab-smartctl-textfile.timer homelab-smartctl-textfile.service +Tue [PRIVATE_IP] 17:19:08 MSK 2min 6s Tue [PRIVATE_IP] 17:14:08 MSK 2min 53s ago netbird-peers-health.timer netbird-peers-health.service +Tue [PRIVATE_IP] 17:19:26 MSK 2min 23s Tue [PRIVATE_IP] 17:04:26 MSK 12min ago prometheus-node-exporter-apt.timer prometheus-node-exporter-apt.service +Tue [PRIVATE_IP] 17:20:15 MSK 3min 13s Tue [PRIVATE_IP] 17:14:57 MSK 2min 5s ago homelab-crypto-portfolio-chart-health.timer homelab-crypto-portfolio-chart-health.service +Tue [PRIVATE_IP] 17:20:23 MSK 3min 20s Tue [PRIVATE_IP] 17:14:57 MSK 2min 5s ago homelab-health-metrics.timer homelab-health-metrics.service +Tue [PRIVATE_IP] 17:21:26 MSK 4min 23s Tue [PRIVATE_IP] 17:11:26 MSK 5min ago skladchik-reports-monitor-supervisor.timer skladchik-reports-monitor-supervisor.service +Tue [PRIVATE_IP] 17:22:14 MSK 5min Tue [PRIVATE_IP] 17:07:14 MSK 9min ago homelab-disk-space-health.timer homelab-disk-space-health.service +Tue [PRIVATE_IP] 17:23:14 MSK 6min Tue [PRIVATE_IP] 17:08:14 MSK 8min ago homelab-pve03-staging-capacity-health.timer homelab-pve03-staging-capacity-health.service +Tue [PRIVATE_IP] 17:24:26 MSK 7min Tue [PRIVATE_IP] 17:09:26 MSK 7min ago prometheus-node-exporter-nvme.timer prometheus-node-exporter-nvme.service +Tue [PRIVATE_IP] 17:25:45 MSK 8min Tue [PRIVATE_IP] 16:51:47 MSK 25min ago homelab-reference-refresh.timer homelab-reference-refresh.service +Tue [PRIVATE_IP] 17:30:00 MSK 12min Tue [PRIVATE_IP] 17:15:02 MSK 2min 0s ago homelab-incident-journal.timer homelab-incident-journal.service +Tue [PRIVATE_IP] 17:30:55 MSK 13min Tue [PRIVATE_IP] 17:15:14 MSK 1min 47s ago homelab-external-probe-vps-health.timer homelab-external-probe-vps-health.service +Tue [PRIVATE_IP] 17:30:55 MSK 13min Tue [PRIVATE_IP] 17:16:50 MSK 12s ago homelab-duty-admin-v2.timer homelab-duty-admin-v2.service +Tue [PRIVATE_IP] 17:31:27 MSK 14min Tue [PRIVATE_IP] 17:15:02 MSK 2min 0s ago homelab-forum-snuffleupagus-health.timer homelab-forum-snuffleupagus-health.service +Tue [PRIVATE_IP] 17:32:09 MSK 15min Tue [PRIVATE_IP] 17:04:07 MSK 12min ago homelab-mkdocs-auto-refresh.timer homelab-mkdocs-auto-refresh.service +Tue [PRIVATE_IP] 20:08:26 MSK 2h 51min Tue [PRIVATE_IP] 14:08:26 MSK 3h 8min ago homelab-vps-identity-audit.timer homelab-vps-identity-audit.service +Wed [PRIVATE_IP] 00:00:00 MSK 6h Tue [PRIVATE_IP] 00:00:07 MSK 17h ago dpkg-db-backup.timer dpkg-db-backup.service +Wed [PRIVATE_IP] 00:08:04 MSK 6h Tue [PRIVATE_IP] 00:05:08 MSK 17h ago homelab-storage-capacity.timer homelab-storage-capacity.service +Wed [PRIVATE_IP] 00:08:47 MSK 6h Tue [PRIVATE_IP] 00:08:07 MSK 17h ago homelab-evidence-catalog.timer homelab-evidence-catalog.service +Wed [PRIVATE_IP] 00:13:19 MSK 6h Tue [PRIVATE_IP] 00:13:28 MSK 17h ago homelab-docker-health.timer homelab-docker-health.service +Wed [PRIVATE_IP] 00:18:54 MSK 7h Tue [PRIVATE_IP] 00:08:14 MSK 17h ago homelab-quality-gate.timer homelab-quality-gate.service +Wed [PRIVATE_IP] 00:51:16 MSK 7h Tue [PRIVATE_IP] 00:08:36 MSK 17h ago logrotate.timer logrotate.service +Wed [PRIVATE_IP] 01:56:09 MSK 8h Tue [PRIVATE_IP] 00:14:22 MSK 17h ago man-db.timer man-db.service +Wed [PRIVATE_IP] 03:50:00 MSK 10h Tue [PRIVATE_IP] 03:50:02 MSK 13h ago filebrowser-offhost-sync.timer filebrowser-offhost-sync.service +Wed [PRIVATE_IP] 04:05:55 MSK 10h Tue [PRIVATE_IP] 01:23:47 MSK 15h ago pve-daily-update.timer pve-daily-update.service +Wed [PRIVATE_IP] 04:48:13 MSK 11h Tue [PRIVATE_IP] 04:42:07 MSK 12h ago homelab-edge-vm-offhost-freshness.timer homelab-edge-vm-offhost-freshness.service +Wed [PRIVATE_IP] 04:58:15 MSK 11h Tue [PRIVATE_IP] 05:15:14 MSK 12h ago homelab-sops-edge-secret-coverage.timer homelab-sops-edge-secret-coverage.service +Wed [PRIVATE_IP] 05:30:03 MSK 12h Tue [PRIVATE_IP] 12:02:37 MSK 5h 14min ago apt-daily.timer apt-daily.service +Wed [PRIVATE_IP] 06:01:06 MSK 12h Tue [PRIVATE_IP] 06:53:08 MSK 10h ago apt-daily-upgrade.timer apt-daily-upgrade.service +Wed [PRIVATE_IP] 07:16:56 MSK 13h Tue [PRIVATE_IP] 07:03:50 MSK 10h ago homelab-drift-check.timer homelab-drift-check.service +Wed [PRIVATE_IP] 07:32:01 MSK 14h Tue [PRIVATE_IP] 07:39:26 MSK 9h ago homelab-service-registry-check.timer homelab-service-registry-check.service +Wed [PRIVATE_IP] 07:48:22 MSK 14h Tue [PRIVATE_IP] 07:54:17 MSK 9h ago homelab-desired-state-sync.timer homelab-desired-state-sync.service +Wed [PRIVATE_IP] 07:53:58 MSK 14h Tue [PRIVATE_IP] 07:46:07 MSK 9h ago homelab-alerting-health.timer homelab-alerting-health.service +Wed [PRIVATE_IP] 07:56:28 MSK 14h Tue [PRIVATE_IP] 07:56:07 MSK 9h ago homelab-dependency-map-check.timer homelab-dependency-map-check.service +Wed [PRIVATE_IP] 07:56:57 MSK 14h Tue [PRIVATE_IP] 07:56:50 MSK 9h ago homelab-runbook-generate.timer homelab-runbook-generate.service +Wed [PRIVATE_IP] 08:06:21 MSK 14h Tue [PRIVATE_IP] 07:59:39 MSK 9h ago homelab-duty-admin-report.timer homelab-duty-admin-report.service +Wed [PRIVATE_IP] 08:11:00 MSK 14h Tue [PRIVATE_IP] 08:03:50 MSK 9h ago homelab-overall-health.timer homelab-overall-health.service +Wed [PRIVATE_IP] 08:16:53 MSK 14h Tue [PRIVATE_IP] 08:16:35 MSK 9h ago homelab-kuma-monitor-policy.timer homelab-kuma-monitor-policy.service +Wed [PRIVATE_IP] 08:21:31 MSK 15h Tue [PRIVATE_IP] 08:12:26 MSK 9h ago homelab-final-readiness-gate.timer homelab-final-readiness-gate.service +Wed [PRIVATE_IP] 08:30:08 MSK 15h Tue [PRIVATE_IP] 08:36:50 MSK 8h ago homelab-capacity-risk.timer homelab-capacity-risk.service +Wed [PRIVATE_IP] 08:37:04 MSK 15h Tue [PRIVATE_IP] 08:52:38 MSK 8h ago homelab-cluster-passport.timer homelab-cluster-passport.service +Wed [PRIVATE_IP] 08:40:47 MSK 15h Tue [PRIVATE_IP] 08:36:17 MSK 8h ago homelab-secret-exposure-guard.timer homelab-secret-exposure-guard.service +Wed [PRIVATE_IP] 08:47:05 MSK 15h Tue [PRIVATE_IP] 08:54:47 MSK 8h ago immich-media-offhost-sync.timer immich-media-offhost-sync.service +Wed [PRIVATE_IP] 08:55:12 MSK 15h Tue [PRIVATE_IP] 08:50:07 MSK 8h ago homelab-golden-state-index.timer homelab-golden-state-index.service +Wed [PRIVATE_IP] 09:20:57 MSK 16h Tue [PRIVATE_IP] 09:06:50 MSK 8h ago memos-offhost-sync.timer memos-offhost-sync.service +Wed [PRIVATE_IP] 10:15:00 MSK 16h Tue [PRIVATE_IP] 10:15:14 MSK 7h ago skladchik-reports-monitor-monthly-selftest-watch.timer skladchik-reports-monitor-monthly-selftest-watch.service +Wed [PRIVATE_IP] 14:20:26 MSK 21h Tue [PRIVATE_IP] 14:20:26 MSK 2h 56min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service +Sun [PRIVATE_IP] 03:10:38 MSK 4 days Sun [PRIVATE_IP] 03:10:25 MSK 2 days ago xfs_scrub_all.timer xfs_scrub_all.service +Sun [PRIVATE_IP] 03:10:48 MSK 4 days Sun [PRIVATE_IP] 03:10:50 MSK 2 days ago e2scrub_all.timer e2scrub_all.service +Mon [PRIVATE_IP] 00:03:56 MSK 5 days Mon [PRIVATE_IP] 00:11:50 MSK 1 day 17h ago homelab-secret-sanity.timer homelab-secret-sanity.service +Mon [PRIVATE_IP] 01:11:21 MSK 5 days Mon [PRIVATE_IP] 01:17:56 MSK 1 day 15h ago fstrim.timer fstrim.service +- - - - prometheus-node-exporter-ipmitool-sensor.timer prometheus-node-exporter-ipmitool-sensor.service +- - - - prometheus-node-exporter-mellanox-hca-temp.timer prometheus-node-exporter-mellanox-hca-temp.service +- - - - prometheus-node-exporter-smartmon.timer prometheus-node-exporter-smartmon.service + +58 timers listed. +- Обрезанная, повреждённая или частично вставленная команда считается невыполненной; сначала проводится side-effect audit. +- Хвост parse-ошибки закрывается только после доказательства отсутствия изменений и временных артефактов. +- Proof: /var/lib/homelab-change-sets/operator-command-size-guard-v[PRIVATE_IP]T182653Z/report.txt + +## HOMELAB_ADMIN_CLI_CONTRACT_[PRIVATE_IP] +- Поддерживаемые команды: version, status, lint TASK_DIR, validate TASK_DIR, run TASK_DIR PHASE. +- Отдельная команда --help отсутствует. Неизвестный аргумент печатает usage и штатно возвращает RC=64. +- Нельзя трактовать RC=64 от --help как неисправность runner. +- Для проверки доступности runner использовать homelab-admin version; для структуры CLI использовать зафиксированную usage-строку. +- Proof: /var/lib/homelab-change-sets/homelab-admin-cli-contract-fix-v[PRIVATE_IP]T183338Z/report.txt + +AUTOMATIC_CLUSTER_CONTEXT_REFRESH_[PRIVATE_IP] +Collector: /usr/local/sbin/homelab-context-collect +Scheduler: hourly at minute 17 via /etc/cron.d/homelab-context-refresh +Destination: immutable Gitea runtime history with CONTEXT-AUTO UTC command IDs. + +AUTOMATIC_CLUSTER_CONTEXT_REFRESH_DIRECT_[PRIVATE_IP] +Publisher: /usr/local/sbin/homelab-context-refresh-direct +Schedule: hourly at minute 17. +Destination: immutable assistant-runtime history with CONTEXT-AUTO UTC IDs. +ANTI_REGRESSION_TOKEN=HOMELAB_VM_2CLOUD_444_OUTER_LAUNCHER_BOUNDARY_REQUIRED +- Anti-regression: validate the complete outer launcher with a shell syntax check and verify the wrapper argument boundary before issuing it. +- Infrastructure action executed: none. +- Backup payload impact: none. +- Production impact: none. +- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. +- Registered at: [PRIVATE_IP]T11:20:32Z + +## ERROR_[PRIVATE_IP]_HOMELAB_VM_2CLOUD_DRAIN_CLOSURE_PREFLIGHT_446 +COMMAND_ID=HOMELAB-VM-2CLOUD-DRAIN-CLOSURE-PREFLIGHT-446 +- Symptom: homelab-chat-run-linked printed Usage and skipped result-feed publication as invalid input. +- Root cause: the diagnostic script was piped to wrapper stdin and the mandatory double-dash command separator was omitted. +- Correction: invoke homelab-chat-run-linked as COMMAND_ID MODE COMPONENT -- command arguments; stdin is not its command interface. +ANTI_REGRESSION_TOKEN=HOMELAB_CHAT_RUN_COMMAND_REQUIRES_DOUBLE_DASH +- Anti-regression: treat wrapper Usage as the authoritative CLI contract and syntax-check the complete launcher, not only its inner payload. +- Infrastructure action executed: none. +- Backup payload impact: none. +- Production impact: none. +- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. +- Registered at: [PRIVATE_IP]T11:20:32Z +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 2ad0e90..07d3a97 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,38 +1 @@ -{ - "schema_version": 1, - "channel": "homelab-runtime", - "command_id": "HOMEPAGE-NEWFILYA-NGINX-IN-MEMORY-READ-ONLY-COMPAT-DIAGNOSTIC-FIX1-V19R-20260804T140000Z", - "status": "FAIL", - "rc": 1, - "host": "pve01", - "mode": "verify", - "component": "homepage-newfilya-nginx-read-only-compat-diagnostic-fix1-v19r", - "started_at_utc": "2026-08-04T14:11:58Z", - "finished_at_utc": "2026-08-04T14:12:01Z", - "reference_register_checked": true, - "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", - "error_register_checked": true, - "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", - "command_sha256": "8febb2330c20e25d3b02941a0fdc6628b6a0494ff2a23df5bfbebe8e60f79220", - "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": 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": "e222ec116c2b92072009b881ba6ea81f0f4af77ac6f4dde6206ce9e0bcaff3dd", - "sanitized_output_sha256": "e222ec116c2b92072009b881ba6ea81f0f4af77ac6f4dde6206ce9e0bcaff3dd", - "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\":\"HOMEPAGE-NEWFILYA-NGINX-IN-MEMORY-READ-ONLY-COMPAT-DIAGNOSTIC-FIX1-V19R-20260804T140000Z\",\"mutation_outcome\":\"NO_MUTATION\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL\",\"version\":1}\n{\"COMPATIBILITY_SHA256\":null,\"PLAN_SHA256\":null,\"action\":null,\"blockers\":[\"NGINX_IN_MEMORY_COMPATIBILITY_CONTRACT_INVALID\",\"POST_V18_ROLLBACK_V17_BASELINE_DRIFT\"],\"body_returned\":false,\"certificate_changed\":false,\"certificate_contents_returned\":false,\"changes_made\":false,\"cluster_changed\":false,\"command_id\":\"HOMEPAGE-NEWFILYA-NGINX-IN-MEMORY-READ-ONLY-COMPAT-DIAGNOSTIC-FIX1-V19R-20260804T140000Z\",\"container_restarted\":false,\"control_plane_error\":null,\"desired_state_changed\":false,\"diagnosis\":\"NEWFILYA_NGINX_COMPATIBILITY_DIAGNOSTIC_BLOCKED\",\"dns_changed\":false,\"duration_ms\":3468,\"edge\":{\"body_returned\":false,\"candidate\":{\"asset_bytes\":712859,\"asset_filename\":\"newfilya-ilyusha-7f8d6c40d5f8f740.jpg\",\"asset_original_bytes_preserved\":true,\"asset_sha256\":\"7f8d6c40d5f8f740f2d719fe739c456cf832cb67ed1b15161b616b8632caf367\",\"asset_url_path\":\"/ilyusha.jpg\",\"body_bytes\":2575,\"body_sha256\":\"02c89362aac89175e6ff2c18cf3265536417e8ac8f03f6174e25759ecfea8b1d\",\"cache_policy\":\"NO_STORE\",\"candidate_bytes\":4100,\"candidate_filename\":\"992.conf\",\"candidate_numeric_id\":992,\"candidate_selection_strategy\":\"HIGHEST_FREE_NUMERIC_ID_900_999_V1\",\"candidate_sha256\":\"3600fec59a28f95160cdf63bc3271b9e22af3da043b2a00861c3f21dbdb5043e\",\"checks\":{\"body_utf8\":true,\"bounded_config\":true,\"cache_disabled\":true,\"certificate_path_exact\":true,\"domain_exact\":true,\"http_listener_exact\":true,\"https_listener_exact\":true,\"image_alias_exact\":true,\"image_content_type_exact\":true,\"image_csp_exact\":true,\"local_image_exact\":true,\"no_external_assets\":true,\"no_proxy_pass\":true,\"no_upstream_block\":true,\"persistent_acme_exact\":true,\"private_key_path_exact\":true,\"robots_disabled\":true,\"safe_acme_override_exact\":true,\"single_server_block\":true,\"single_server_name\":true,\"static_return_exact\":true},\"content_returned\":false,\"external_assets\":false,\"future_origin\":\"CLUSTER_SITE\",\"local_asset_count\":1,\"private_addresses_returned\":false,\"ready\":true,\"robots_policy\":\"NOINDEX_NOFOLLOW\",\"strategy\":\"NPMPLUS_DIRECT_STATIC_RETURN_V1\",\"temporary\":true,\"title\":\"Здесь будет сайт ньюфаундленда Илюши\"},\"certbot\":{\"account_content_read\":false,\"account_count\":2,\"account_path_set_sha256\":\"27b94e58c9c61e1300cfe7d73f5061f93b31c7966a8e8f101f2fd68c7fcff31e\",\"candidate_paths\":{\"archive\":{\"exists\":false,\"kind\":null},\"live\":{\"exists\":false,\"kind\":null},\"renewal\":{\"exists\":false,\"kind\":null}},\"candidate_paths_absent\":true,\"cert_name\":\"newfilya.ru\",\"cert_name_sha256\":\"94223ea418f001f0469109dcb52fd88c8d6b90aeacc610bb0cc17a6ce3b9b868\",\"certbot_config_metadata_exact\":true,\"certbot_config_rc\":0,\"certbot_config_stat_sha256\":\"ac465eeb18a1b03028ed66ef0589dc6b5bdf2a432efe01445044987a3b7ff08d\",\"legacy_webroot_rc\":1,\"legacy_webroot_stderr_sha256\":\"cc274d2263556e58eb68b37dd0bf350896eebc810eedb715c83eb33c6c10565e\",\"legacy_webroot_stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"persistent_webroot_metadata_exact\":true,\"persistent_webroot_rc\":0,\"persistent_webroot_stat_sha256\":\"7dc3f096f6dd4f071a221da871e2f62ea96230e5c9b876b2b7202a754390641b\",\"private_addresses_returned\":false,\"private_keys_read\":false,\"root\":{\"bytes\":4096,\"exists\":true,\"gid\":0,\"kind\":\"directory\",\"mode\":\"0700\",\"uid\":0},\"secret_files_read\":false,\"selected_webroot\":\"/data/tls/certbot/acme-challenge\",\"selected_webroot_sha256\":\"30d7909b816648baae928075d5896e0f899e97c81b6af645d41645df2cd87ec7\",\"strategy\":\"CERTBOT_WEBROOT_HTTP_01_PERSISTENT\"},\"certbot_available\":true,\"certbot_version_output_sha256\":\"8c31103b5cdff55122dcf38b8be5468538b6a9eb292acf0e10b9175643c24fcc\",\"certificate_contents_returned\":false,\"checks\":{\"asset_path_absent\":true,\"candidate_path_absent\":true,\"candidate_selection_proven\":true,\"certbot_account_present\":true,\"certbot_available\":true,\"certbot_config_metadata_exact\":true,\"certbot_root_exact\":true,\"certificate_paths_absent\":true,\"default_acme_route_present\":true,\"docker_server_available\":true,\"effective_acme_route_present\":true,\"effective_domain_absent\":true,\"hostname_exact\":true,\"nginx_config_valid\":true,\"npmplus_not_restarting\":true,\"npmplus_running\":true,\"persistent_webroot_metadata_exact\":true,\"persistent_webroot_selected\":true,\"privacy_contract\":true,\"proxy_domain_absent\":true,\"proxy_root_exact\":true,\"static_candidate_ready\":true},\"command_audit_count\":8,\"command_audit_output_returned\":false,\"command_audit_record_set_sha256\":\"6046031dfed13d5d73381a4c84fe804e4254d77924a880b73be65ee6b89bb5b7\",\"command_audit_stage_set_sha256\":\"47de86374eff55636cecf9aacc24ad1d5e140f2483c660e8907ffb7cbe3f64cf\",\"diagnosis\":\"NEWFILYA_NGINX_IN_MEMORY_COMPATIBILITY_EXCEPTION\",\"docker_server_version_sha256\":\"ff21e5cfb54b956ea1c5129ae06b4ff0c36f6ef6bf8f942ed2eb20754cdc3032\",\"effective_nginx\":{\"combined_bytes\":117434,\"combined_sha256\":\"65a2bc2c284ecc78b0d8d08b222d0cdab377c34305e87ceee367a26316829403\",\"content_returned\":false,\"default_persistent_acme_route_count\":1,\"default_persistent_acme_route_present\":true,\"domain_server_block_count\":0,\"domain_server_block_set_sha256\":\"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b\",\"persistent_acme_http_route_count\":46,\"persistent_acme_http_route_present\":true,\"persistent_acme_http_route_set_sha256\":\"bfa9b1b855ef8455d74b14d7b2a4835965bbcc3bdfdb29b7d3919fd9b1e24b1f\",\"private_addresses_returned\":false,\"server_block_count\":75},\"failed_checks\":[\"COMPATIBILITY_MATRIX_NOT_CLASSIFIED\"],\"failure_evidence\":{\"errno\":null,\"message_bytes\":46,\"message_sha256\":\"3138c1e9f52403c2b4bac9fcd983a020506debfba18c442acb917bd1cad0b545\",\"type\":\"ValueError\"},\"hostname_exact\":true,\"nginx_compatibility\":null,\"nginx_test\":{\"rc\":0,\"stderr_bytes\":154,\"stderr_sha256\":\"9cb221b6993277a11765b15bdded4e9b090f1c2a8f5ed573e907ae3b6921f27c\",\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"},\"npmplus\":{\"container_env_read\":false,\"container_id_sha256\":\"493576b742fc30ff359bab4661f9f1aedde0bdb840b9bf61012388d9559ad296\",\"full_config_read\":false,\"image_sha256\":\"d16df105013397a10fa5200e967d82c9e9144b1e81737fe30f91165f65a35402\",\"private_addresses_returned\":false,\"restart_count\":0,\"restarting\":false,\"running\":true,\"started_at_sha256\":\"2e3db5e8a35be23cae35c3ad39b177cb0750fe38dbbcec8902f77352a56b8ba0\"},\"ok\":false,\"private_addresses_included\":false,\"private_keys_read\":false,\"proxy\":{\"asset_filename\":\"newfilya-ilyusha-7f8d6c40d5f8f740.jpg\",\"asset_path_absent\":true,\"asset_path_state\":{\"exists\":false,\"kind\":null},\"candidate_filename\":\"992.conf\",\"candidate_id_max\":999,\"candidate_id_min\":900,\"candidate_numeric_id\":992,\"candidate_path_absent\":true,\"candidate_path_state\":{\"exists\":false,\"kind\":null},\"candidate_pool_available_count\":93,\"candidate_pool_occupied_count\":7,\"candidate_pool_occupied_set_sha256\":\"75db8c3916c241dc890934dd14337d5657142d74d79371dab3347f8c27ec0ca3\",\"candidate_pool_size\":100,\"candidate_selection_proven\":true,\"candidate_selection_strategy\":\"HIGHEST_FREE_NUMERIC_ID_900_999_V1\",\"content_returned\":false,\"domain_match_count\":0,\"domain_matches\":[],\"file_count\":56,\"numeric_id_count\":56,\"numeric_id_set_sha256\":\"f1516b8818f73594beb1ca511bfe6dca42d98ad98aa9d42238c711e82edf9833\",\"private_addresses_returned\":false,\"root\":{\"bytes\":4096,\"exists\":true,\"gid\":0,\"kind\":\"directory\",\"mode\":\"0755\",\"uid\":0},\"tree_sha256\":\"801f76eb3c58d198a4ced9fe43248e7c7bb815343e242a17c9006c6d26c18b28\"},\"secret_files_read\":false,\"secrets_included\":false,\"source_contents_returned\":false,\"status\":\"FAIL\",\"write_attempted\":false},\"gate\":\"BLOCKED\",\"gitea_changed\":false,\"homepage\":{\"backup_bytes\":12005,\"backup_mode\":\"0o600\",\"backup_sha256\":\"6468974ef09b3d9899bae5df4d8a7fa711d6cf16edda00b116747192277dcb2c\",\"card_count\":65,\"contains_private_dispatch_material\":false,\"failed_checks\":[],\"group_count\":7,\"hbarhub_card_exact\":true,\"homepage_api_sha256\":\"a1ece968406ec5ce5ba02197d5270d1e3ce34da451a69cc3cc5f38b6081ada0d\",\"homepage_api_target_href_counts\":{\"hbarhub.ru\":1,\"newfilya.ru\":1},\"homepage_image_id_sha256\":\"242e6332e372aaffcf7c821cff66dcbc12c42b2cd4ae282db9533b640892ac79\",\"homepage_image_reference_sha256\":\"b0c046cffbc1a48af0e6b240575c63b6f405debba0b2c50fa190616b5ea62808\",\"homepage_mount_exact\":true,\"homepage_restart_count\":0,\"newfilya_card_exact\":true,\"newfilya_monitor_enabled\":false,\"ok\":true,\"secret_file_read\":false,\"secrets_included\":false,\"services_bytes\":12308,\"services_sha256\":\"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928\",\"services_structure_sha256\":\"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82\",\"source_contents_returned\":false,\"status\":\"OK\",\"target_href_counts\":{\"hbarhub.ru\":1,\"newfilya.ru\":1}},\"homepage_changed\":false,\"mutation_outcome\":\"NO_MUTATION\",\"next_stage\":\"NEWFILYA_NGINX_COMPATIBILITY_DIAGNOSTIC_FIX\",\"npmplus_reloaded\":false,\"operator_decision\":{\"external_assets\":false,\"future_target\":\"cluster_site\",\"local_photo_sha256\":\"7f8d6c40d5f8f740f2d719fe739c456cf832cb67ed1b15161b616b8632caf367\",\"local_photo_supplied\":true,\"monitor_enable_deferred\":true,\"origin_type\":\"new_static_landing\",\"presentation\":\"neutral_launch_placeholder\",\"site_subject\":\"newfoundland_ilyusha\",\"temporary\":true},\"parent_v15r_evidence\":{\"PLAN_SHA256\":null,\"capsule_bytes\":96265,\"capsule_sha256\":\"d24cc4066fce46b17aa22b020a86f67d09d3dfc5725707ad93c274e6ef39dd46\",\"card_count\":65,\"changes_made\":false,\"command_id\":\"HOMEPAGE-NEWFILYA-UPSTREAM-READ-ONLY-DISCOVERY-FIX2-V15R-20260804T114500Z\",\"command_sha256\":\"61c4cf57bd2ac4bb370800ee31f7bac68cefb1abea2c6b430d4b2aa0d00b9b42\",\"core_remote_stdout_sha256\":\"8eee46305b129ee0d912f6b432810b58391df09a4d02cb76ce5fdf93336a951f\",\"database_exact_domain_match_count\":0,\"diagnosis\":\"NEWFILYA_ORIGIN_NOT_FOUND_IN_HOMELAB\",\"docker_strong_candidate_count\":0,\"edge_remote_stdout_sha256\":\"a9a7f3da75c19646198c64354ee0977635387762bd04a33265b039e0b88f5614\",\"gate\":\"OPERATOR_INPUT_REQUIRED\",\"group_count\":7,\"homepage_restart_count\":0,\"mutation_outcome\":\"NO_MUTATION\",\"newfilya_monitor_enabled\":false,\"operator_input_required\":true,\"output_sha256\":\"dbb4841cf66094610efdb23ef11c213faba6cb724249d044c2ef46198b6f5757\",\"public_leaf_certificate_sha256\":\"c14d6f3eda27dcd7e8c8a44c18844f8009b4f23a74ab82d49475f138ddef0b93\",\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"services_bytes\":12308,\"services_sha256\":\"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928\",\"services_structure_sha256\":\"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82\",\"stacks_strong_candidate_count\":0,\"status\":\"OK\"},\"parent_v16_evidence\":{\"PLAN_SHA256\":null,\"blockers\":[\"EDGE_STATIC_PLACEHOLDER_PREFLIGHT_INCOMPLETE\",\"NEWFILYA_STATIC_CONFIG_PATH_NOT_FREE\"],\"candidate_filename\":\"998.conf\",\"candidate_path_bytes\":867,\"candidate_path_exists\":true,\"candidate_path_gid\":0,\"candidate_path_kind\":\"regular\",\"candidate_path_mode\":\"0644\",\"candidate_path_uid\":0,\"capsule_bytes\":95066,\"capsule_sha256\":\"1370453ba42fbc997021981a52c5445c5843c4a027c2357784f9e90b47342b97\",\"card_count\":65,\"certificate_paths_absent\":true,\"changes_made\":false,\"command_id\":\"HOMEPAGE-NEWFILYA-STATIC-PLACEHOLDER-TLS-READ-ONLY-PLAN-V16-20260804T120500Z\",\"command_sha256\":\"dffeed8860eb0b5a4545b991d10cf28ba2cae513675449623e2d05cb3e7e01ae\",\"core_remote_stdout_sha256\":\"4430d15bad3cc3286b28390d7d7ed7b22d0eb9f6a3af24491c6031c638dff5ba\",\"diagnosis\":\"NEWFILYA_STATIC_PLACEHOLDER_TLS_PLAN_BLOCKED\",\"document_rc\":1,\"document_status\":\"FAIL\",\"edge_remote_stdout_sha256\":\"c8cd2bb3cf6f2abf4a46b28b20ce2fc9213c7dd336721bc09cea64983c38a756\",\"gate\":\"BLOCKED\",\"group_count\":7,\"homepage_restart_count\":0,\"mutation_outcome\":\"NO_MUTATION\",\"newfilya_monitor_enabled\":false,\"next_stage\":\"NEWFILYA_STATIC_PLACEHOLDER_PLAN_FIX\",\"npmplus_restart_count\":0,\"output_sha256\":\"7b9c0a671d4c7bb02268dec1a019d0f90d37c4a287f76c20a730c0cc6810d92c\",\"proxy_domain_match_count\":0,\"public_leaf_certificate_sha256\":\"c14d6f3eda27dcd7e8c8a44c18844f8009b4f23a74ab82d49475f138ddef0b93\",\"ready_for_apply\":false,\"rollback_restored\":null,\"rollback_started\":false,\"runner_rc\":1,\"runner_status\":\"FAIL\",\"runtime_commit\":\"b86e6564664ebcdedea16e686f5fc3fe80cf2496\",\"services_bytes\":12308,\"services_sha256\":\"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928\",\"services_structure_sha256\":\"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82\"},\"parent_v18_evidence\":{\"PLAN_SHA256\":\"7cda56347806e7ad26ac5f7b96c4731d6aa58b483840517520c7c398edf449cf\",\"asset_absent_after_rollback\":true,\"asset_bytes\":712859,\"asset_filename\":\"newfilya-ilyusha-7f8d6c40d5f8f740.jpg\",\"asset_sha256\":\"7f8d6c40d5f8f740f2d719fe739c456cf832cb67ed1b15161b616b8632caf367\",\"candidate_absent_after_rollback\":true,\"candidate_bytes\":4100,\"candidate_filename\":\"992.conf\",\"candidate_sha256\":\"3600fec59a28f95160cdf63bc3271b9e22af3da043b2a00861c3f21dbdb5043e\",\"capsule_bytes\":1082055,\"capsule_sha256\":\"5d48d9ae1c8e03a5c556286583d8d4f2e2d9ddbccb3e1af98b2a2a89761986a3\",\"certificate_absent_after_rollback\":true,\"certificate_issue_rc\":0,\"certificate_issued_before_failure\":true,\"changes_made\":true,\"cluster_changed\":false,\"command_id\":\"HOMEPAGE-NEWFILYA-STATIC-PLACEHOLDER-TLS-ATOMIC-APPLY-V18-20260804T124500Z\",\"command_sha256\":\"dbb13114a69cde684d7cd48d6ec293cdd5ba285e26a5daa62a851672db4fdf4e\",\"diagnosis\":\"NEWFILYA_STATIC_PLACEHOLDER_TLS_EDGE_EXCEPTION\",\"dns_changed\":false,\"document_rc\":1,\"document_status\":\"FAIL\",\"failed_operation\":\"NGINX_TEST_BEFORE_RELOAD\",\"gate\":\"RETURNED_TO_V17_BASELINE\",\"gitea_changed\":false,\"homepage_card_count\":65,\"homepage_group_count\":7,\"homepage_restart_count\":0,\"homepage_services_bytes\":12308,\"homepage_services_sha256\":\"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928\",\"homepage_services_structure_sha256\":\"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82\",\"mutation_outcome\":\"ROLLED_BACK\",\"newfilya_monitor_enabled\":false,\"next_stage\":\"NEWFILYA_STATIC_PLACEHOLDER_TLS_APPLY_RETRY\",\"nginx_test_rc\":1,\"nginx_test_stderr_bytes\":225,\"nginx_test_stderr_sha256\":\"ac7853b56118a76752fd093f00081a9380e663e4482de2ec7065e88e6a0289ac\",\"npmplus_restart_count\":0,\"output_sha256\":\"8c3feba7da13b7ee9e2d14e503a25940e1cdb1282856405113637b9de1d7795a\",\"result_contract_valid\":true,\"rollback_certbot_delete_rc\":0,\"rollback_nginx_reload_rc\":0,\"rollback_nginx_test_rc\":0,\"rollback_restored\":true,\"rollback_started\":true,\"runner_rc\":1,\"runner_status\":\"FAIL\",\"runtime_commit\":\"e5345c2447e16aa5b10ed6dcf459fc6e27f68f84\"},\"plan\":null,\"private_addresses_included\":false,\"private_keys_read\":false,\"production_site_changed\":false,\"public\":{\"acme_http\":{\"completed\":true,\"final_hop\":{\"body_bytes\":124,\"body_sha256\":\"8cdc5c9588e8cc315d89a7c73f1bea4d41f8d68ae165756df0ec4a7db6a49892\",\"certificate_validation_disabled\":true,\"completed\":true,\"header_values_returned\":false,\"location_present\":false,\"status\":404},\"first_hop\":{\"body_bytes\":140,\"body_sha256\":\"367cbd2bd4bb3ccdbff9b81ad94e4c1d9c66ee80e9df3ffcd7080f2000cbac6a\",\"completed\":true,\"header_values_returned\":false,\"location_matches_expected_https\":true,\"location_present\":true,\"status\":301},\"header_values_returned\":false,\"path_sha256\":\"e607916d673bf51a6f3308ddd6069ae2da45daaec36dd78c419a41250a81f1af\",\"redirect_count\":1,\"route_model\":\"HTTP_TO_HTTPS_404\",\"route_proven\":true},\"addresses_returned\":false,\"anchor_dns\":{\"address_set_sha256\":\"c76b6b888b15b83623f3fc36fe6617dc24550f6b09b0d8f73c92ea22016e3a13\",\"addresses_returned\":false,\"public_target_count\":1,\"record_count\":1,\"resolved\":true},\"body_returned\":false,\"certificate_contents_returned\":false,\"dns\":{\"address_set_sha256\":\"c76b6b888b15b83623f3fc36fe6617dc24550f6b09b0d8f73c92ea22016e3a13\",\"addresses_returned\":false,\"families\":[\"IPv4\"],\"public_target_count\":1,\"record_count\":1,\"rejected_non_public_count\":0,\"resolved\":true},\"dns_matches_hbarhub_anchor\":true,\"http\":{\"bad_gateway\":false,\"body_bytes\":140,\"body_sha256\":\"367cbd2bd4bb3ccdbff9b81ad94e4c1d9c66ee80e9df3ffcd7080f2000cbac6a\",\"completed\":true,\"connection_mode\":\"PINNED_GLOBAL_TARGET\",\"header_values_returned\":false,\"npmplus_default\":false,\"redirects_to_expected_https\":true,\"status\":301},\"https_unverified\":{\"bad_gateway\":false,\"body_bytes\":2056,\"body_returned\":false,\"body_sha256\":\"808dfeea0cf787d85e03645e62ab18b97ab8138924420966413edcfe22ef4879\",\"certificate_validation_disabled\":true,\"completed\":true,\"connection_mode\":\"PINNED_GLOBAL_TARGET_WITH_SNI\",\"leaf_certificate_sha256\":\"c14d6f3eda27dcd7e8c8a44c18844f8009b4f23a74ab82d49475f138ddef0b93\",\"npmplus_default\":true,\"status\":200},\"tcp_443\":{\"addresses_returned\":false,\"attempt_count\":1,\"error_types\":{},\"reachable\":true,\"success_count\":1},\"tls_443\":{\"addresses_returned\":false,\"attempt_count\":1,\"certificate_contents_returned\":false,\"unverified\":{\"certificate_contents_returned\":false,\"certificate_validation_disabled\":true,\"completed\":true,\"error_types\":{},\"leaf_certificate_count\":1,\"leaf_certificate_sha256\":\"c14d6f3eda27dcd7e8c8a44c18844f8009b4f23a74ab82d49475f138ddef0b93\",\"leaf_set_sha256\":\"620f5c3147455134d92b987f4f0c17c97663931b52966c15d089b43e1e452c1b\",\"protocols\":[\"TLSv1.3\"],\"success_count\":1},\"verified\":false,\"verified_leaf_certificate_sha256\":null,\"verified_protocol\":null,\"verified_success_count\":0,\"verify_codes\":{\"18\":1}}},\"public_proxy_changed\":false,\"rc\":1,\"read_only\":true,\"ready_for_apply\":false,\"rollback_restored\":null,\"rollback_started\":false,\"sanitized\":true,\"schema\":1,\"secret_files_read\":false,\"secrets_included\":false,\"source_contents_returned\":false,\"status\":\"FAIL\",\"transport\":{\"core\":{\"config_view\":\"service-view\",\"mode\":\"DIRECT_QGA\",\"private_addresses_returned\":false,\"qga_step_count\":6,\"qga_step_set_sha256\":\"f92240111278a3961d57abef0c8b2355f2df8bcd699389644c3bd89c88c2ae71\",\"remote_rc\":0,\"remote_stdout_bytes\":2825,\"remote_stdout_sha256\":\"4556d04776c1ae8af2b5f86b9eed50a0f8bf7921d03dab34ede484204ce62cd5\",\"socket_view\":\"service-view\",\"vm_name\":\"core-apps\",\"vmid\":170},\"edge\":{\"config_view\":\"service-view\",\"mode\":\"STRICT_SSH_TO_OWNING_NODE_THEN_DIRECT_QGA\",\"node\":\"pve03\",\"private_addresses_returned\":false,\"qga_step_count\":11,\"qga_step_set_sha256\":\"8770c5ee987676ac36df95e408ecc38422127743f70b57757d2705ad588ff845\",\"remote_rc\":1,\"remote_stdout_bytes\":7226,\"remote_stdout_sha256\":\"7f4df938cae5eb518251d236127f9b8762f195e3c2d9f07898bb9f2897b6705c\",\"socket_view\":\"service-view\",\"ssh_rc\":0,\"vm_name\":\"edge-vm\",\"vmid\":130}}}\n" -} +{"schema_version":1,"channel":"homelab-runtime","command_id":"CONTEXT-AUTO-20260804T141701Z","status":"OK","rc":0,"host":"pve01","mode":"read-only","component":"cluster-context","started_at_utc":"2026-08-04T14:17:01Z","finished_at_utc":"2026-08-04T14:17:02Z","reference_register_checked":true,"reference_sha256":"5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e","error_register_checked":true,"error_register_sha256":"24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83","changes_made":false,"sanitized":true,"secrets_included":false,"private_addresses_included":false,"output":"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK"} diff --git a/runtime/latest.txt b/runtime/latest.txt index 87ff649..dcd67a0 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,34 +1,164 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=HOMEPAGE-NEWFILYA-NGINX-IN-MEMORY-READ-ONLY-COMPAT-DIAGNOSTIC-FIX1-V19R-20260804T140000Z -STATUS=FAIL -RC=1 +COMMAND_ID=CONTEXT-AUTO-[PRIVATE_IP]701Z +STATUS=OK +RC=0 HOST=pve01 -MODE=verify -COMPONENT=homepage-newfilya-nginx-read-only-compat-diagnostic-fix1-v19r -REFERENCE_REGISTER_CHECK=OK -REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e -ERROR_REGISTER_CHECK=OK -ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 -COMMAND_SHA256=8febb2330c20e25d3b02941a0fdc6628b6a0494ff2a23df5bfbebe8e60f79220 -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=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=e222ec116c2b92072009b881ba6ea81f0f4af77ac6f4dde6206ce9e0bcaff3dd -SANITIZED_OUTPUT_SHA256=e222ec116c2b92072009b881ba6ea81f0f4af77ac6f4dde6206ce9e0bcaff3dd +COMPONENT=cluster-context +REFERENCE_SHA[PRIVATE_IP]f8edc75fcf[PRIVATE_IP]c[PRIVATE_IP]cc112ceccb6cf[PRIVATE_IP]a4deb8e +ERROR_REGISTER_SHA[PRIVATE_IP]c7fa[PRIVATE_IP]583c4aefac[PRIVATE_IP]1736ed[PRIVATE_IP]ab83 OUTPUT_BEGIN -HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMEPAGE-NEWFILYA-NGINX-IN-MEMORY-READ-ONLY-COMPAT-DIAGNOSTIC-FIX1-V19R-20260804T140000Z","mutation_outcome":"NO_MUTATION","rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1} -{"COMPATIBILITY_SHA256":null,"PLAN_SHA256":null,"action":null,"blockers":["NGINX_IN_MEMORY_COMPATIBILITY_CONTRACT_INVALID","POST_V18_ROLLBACK_V17_BASELINE_DRIFT"],"body_returned":false,"certificate_changed":false,"certificate_contents_returned":false,"changes_made":false,"cluster_changed":false,"command_id":"HOMEPAGE-NEWFILYA-NGINX-IN-MEMORY-READ-ONLY-COMPAT-DIAGNOSTIC-FIX1-V19R-20260804T140000Z","container_restarted":false,"control_plane_error":null,"desired_state_changed":false,"diagnosis":"NEWFILYA_NGINX_COMPATIBILITY_DIAGNOSTIC_BLOCKED","dns_changed":false,"duration_ms":3468,"edge":{"body_returned":false,"candidate":{"asset_bytes":712859,"asset_filename":"newfilya-ilyusha-7f8d6c40d5f8f740.jpg","asset_original_bytes_preserved":true,"asset_sha256":"7f8d6c40d5f8f740f2d719fe739c456cf832cb67ed1b15161b616b8632caf367","asset_url_path":"/ilyusha.jpg","body_bytes":2575,"body_sha256":"02c89362aac89175e6ff2c18cf3265536417e8ac8f03f6174e25759ecfea8b1d","cache_policy":"NO_STORE","candidate_bytes":4100,"candidate_filename":"992.conf","candidate_numeric_id":992,"candidate_selection_strategy":"HIGHEST_FREE_NUMERIC_ID_900_999_V1","candidate_sha256":"3600fec59a28f95160cdf63bc3271b9e22af3da043b2a00861c3f21dbdb5043e","checks":{"body_utf8":true,"bounded_config":true,"cache_disabled":true,"certificate_path_exact":true,"domain_exact":true,"http_listener_exact":true,"https_listener_exact":true,"image_alias_exact":true,"image_content_type_exact":true,"image_csp_exact":true,"local_image_exact":true,"no_external_assets":true,"no_proxy_pass":true,"no_upstream_block":true,"persistent_acme_exact":true,"private_key_path_exact":true,"robots_disabled":true,"safe_acme_override_exact":true,"single_server_block":true,"single_server_name":true,"static_return_exact":true},"content_returned":false,"external_assets":false,"future_origin":"CLUSTER_SITE","local_asset_count":1,"private_addresses_returned":false,"ready":true,"robots_policy":"NOINDEX_NOFOLLOW","strategy":"NPMPLUS_DIRECT_STATIC_RETURN_V1","temporary":true,"title":"Здесь будет сайт ньюфаундленда Илюши"},"certbot":{"account_content_read":false,"account_count":2,"account_path_set_sha256":"27b94e58c9c61e1300cfe7d73f5061f93b31c7966a8e8f101f2fd68c7fcff31e","candidate_paths":{"archive":{"exists":false,"kind":null},"live":{"exists":false,"kind":null},"renewal":{"exists":false,"kind":null}},"candidate_paths_absent":true,"cert_name":"newfilya.ru","cert_name_sha256":"94223ea418f001f0469109dcb52fd88c8d6b90aeacc610bb0cc17a6ce3b9b868","certbot_config_metadata_exact":true,"certbot_config_rc":0,"certbot_config_stat_sha256":"ac465eeb18a1b03028ed66ef0589dc6b5bdf2a432efe01445044987a3b7ff08d","legacy_webroot_rc":1,"legacy_webroot_stderr_sha256":"cc274d2263556e58eb68b37dd0bf350896eebc810eedb715c83eb33c6c10565e","legacy_webroot_stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","persistent_webroot_metadata_exact":true,"persistent_webroot_rc":0,"persistent_webroot_stat_sha256":"7dc3f096f6dd4f071a221da871e2f62ea96230e5c9b876b2b7202a754390641b","private_addresses_returned":false,"private_keys_read":false,"root":{"bytes":4096,"exists":true,"gid":0,"kind":"directory","mode":"0700","uid":0},"secret_files_read":false,"selected_webroot":"/data/tls/certbot/acme-challenge","selected_webroot_sha256":"30d7909b816648baae928075d5896e0f899e97c81b6af645d41645df2cd87ec7","strategy":"CERTBOT_WEBROOT_HTTP_01_PERSISTENT"},"certbot_available":true,"certbot_version_output_sha256":"8c31103b5cdff55122dcf38b8be5468538b6a9eb292acf0e10b9175643c24fcc","certificate_contents_returned":false,"checks":{"asset_path_absent":true,"candidate_path_absent":true,"candidate_selection_proven":true,"certbot_account_present":true,"certbot_available":true,"certbot_config_metadata_exact":true,"certbot_root_exact":true,"certificate_paths_absent":true,"default_acme_route_present":true,"docker_server_available":true,"effective_acme_route_present":true,"effective_domain_absent":true,"hostname_exact":true,"nginx_config_valid":true,"npmplus_not_restarting":true,"npmplus_running":true,"persistent_webroot_metadata_exact":true,"persistent_webroot_selected":true,"privacy_contract":true,"proxy_domain_absent":true,"proxy_root_exact":true,"static_candidate_ready":true},"command_audit_count":8,"command_audit_output_returned":false,"command_audit_record_set_sha256":"6046031dfed13d5d73381a4c84fe804e4254d77924a880b73be65ee6b89bb5b7","command_audit_stage_set_sha256":"47de86374eff55636cecf9aacc24ad1d5e140f2483c660e8907ffb7cbe3f64cf","diagnosis":"NEWFILYA_NGINX_IN_MEMORY_COMPATIBILITY_EXCEPTION","docker_server_version_sha256":"ff21e5cfb54b956ea1c5129ae06b4ff0c36f6ef6bf8f942ed2eb20754cdc3032","effective_nginx":{"combined_bytes":117434,"combined_sha256":"65a2bc2c284ecc78b0d8d08b222d0cdab377c34305e87ceee367a26316829403","content_returned":false,"default_persistent_acme_route_count":1,"default_persistent_acme_route_present":true,"domain_server_block_count":0,"domain_server_block_set_sha256":"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b","persistent_acme_http_route_count":46,"persistent_acme_http_route_present":true,"persistent_acme_http_route_set_sha256":"bfa9b1b855ef8455d74b14d7b2a4835965bbcc3bdfdb29b7d3919fd9b1e24b1f","private_addresses_returned":false,"server_block_count":75},"failed_checks":["COMPATIBILITY_MATRIX_NOT_CLASSIFIED"],"failure_evidence":{"errno":null,"message_bytes":46,"message_sha256":"3138c1e9f52403c2b4bac9fcd983a020506debfba18c442acb917bd1cad0b545","type":"ValueError"},"hostname_exact":true,"nginx_compatibility":null,"nginx_test":{"rc":0,"stderr_bytes":154,"stderr_sha256":"9cb221b6993277a11765b15bdded4e9b090f1c2a8f5ed573e907ae3b6921f27c","stdout_bytes":0,"stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"npmplus":{"container_env_read":false,"container_id_sha256":"493576b742fc30ff359bab4661f9f1aedde0bdb840b9bf61012388d9559ad296","full_config_read":false,"image_sha256":"d16df105013397a10fa5200e967d82c9e9144b1e81737fe30f91165f65a35402","private_addresses_returned":false,"restart_count":0,"restarting":false,"running":true,"started_at_sha256":"2e3db5e8a35be23cae35c3ad39b177cb0750fe38dbbcec8902f77352a56b8ba0"},"ok":false,"private_addresses_included":false,"private_keys_read":false,"proxy":{"asset_filename":"newfilya-ilyusha-7f8d6c40d5f8f740.jpg","asset_path_absent":true,"asset_path_state":{"exists":false,"kind":null},"candidate_filename":"992.conf","candidate_id_max":999,"candidate_id_min":900,"candidate_numeric_id":992,"candidate_path_absent":true,"candidate_path_state":{"exists":false,"kind":null},"candidate_pool_available_count":93,"candidate_pool_occupied_count":7,"candidate_pool_occupied_set_sha256":"75db8c3916c241dc890934dd14337d5657142d74d79371dab3347f8c27ec0ca3","candidate_pool_size":100,"candidate_selection_proven":true,"candidate_selection_strategy":"HIGHEST_FREE_NUMERIC_ID_900_999_V1","content_returned":false,"domain_match_count":0,"domain_matches":[],"file_count":56,"numeric_id_count":56,"numeric_id_set_sha256":"f1516b8818f73594beb1ca511bfe6dca42d98ad98aa9d42238c711e82edf9833","private_addresses_returned":false,"root":{"bytes":4096,"exists":true,"gid":0,"kind":"directory","mode":"0755","uid":0},"tree_sha256":"801f76eb3c58d198a4ced9fe43248e7c7bb815343e242a17c9006c6d26c18b28"},"secret_files_read":false,"secrets_included":false,"source_contents_returned":false,"status":"FAIL","write_attempted":false},"gate":"BLOCKED","gitea_changed":false,"homepage":{"backup_bytes":12005,"backup_mode":"0o600","backup_sha256":"6468974ef09b3d9899bae5df4d8a7fa711d6cf16edda00b116747192277dcb2c","card_count":65,"contains_private_dispatch_material":false,"failed_checks":[],"group_count":7,"hbarhub_card_exact":true,"homepage_api_sha256":"a1ece968406ec5ce5ba02197d5270d1e3ce34da451a69cc3cc5f38b6081ada0d","homepage_api_target_href_counts":{"hbarhub.ru":1,"newfilya.ru":1},"homepage_image_id_sha256":"242e6332e372aaffcf7c821cff66dcbc12c42b2cd4ae282db9533b640892ac79","homepage_image_reference_sha256":"b0c046cffbc1a48af0e6b240575c63b6f405debba0b2c50fa190616b5ea62808","homepage_mount_exact":true,"homepage_restart_count":0,"newfilya_card_exact":true,"newfilya_monitor_enabled":false,"ok":true,"secret_file_read":false,"secrets_included":false,"services_bytes":12308,"services_sha256":"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928","services_structure_sha256":"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82","source_contents_returned":false,"status":"OK","target_href_counts":{"hbarhub.ru":1,"newfilya.ru":1}},"homepage_changed":false,"mutation_outcome":"NO_MUTATION","next_stage":"NEWFILYA_NGINX_COMPATIBILITY_DIAGNOSTIC_FIX","npmplus_reloaded":false,"operator_decision":{"external_assets":false,"future_target":"cluster_site","local_photo_sha256":"7f8d6c40d5f8f740f2d719fe739c456cf832cb67ed1b15161b616b8632caf367","local_photo_supplied":true,"monitor_enable_deferred":true,"origin_type":"new_static_landing","presentation":"neutral_launch_placeholder","site_subject":"newfoundland_ilyusha","temporary":true},"parent_v15r_evidence":{"PLAN_SHA256":null,"capsule_bytes":96265,"capsule_sha256":"d24cc4066fce46b17aa22b020a86f67d09d3dfc5725707ad93c274e6ef39dd46","card_count":65,"changes_made":false,"command_id":"HOMEPAGE-NEWFILYA-UPSTREAM-READ-ONLY-DISCOVERY-FIX2-V15R-20260804T114500Z","command_sha256":"61c4cf57bd2ac4bb370800ee31f7bac68cefb1abea2c6b430d4b2aa0d00b9b42","core_remote_stdout_sha256":"8eee46305b129ee0d912f6b432810b58391df09a4d02cb76ce5fdf93336a951f","database_exact_domain_match_count":0,"diagnosis":"NEWFILYA_ORIGIN_NOT_FOUND_IN_HOMELAB","docker_strong_candidate_count":0,"edge_remote_stdout_sha256":"a9a7f3da75c19646198c64354ee0977635387762bd04a33265b039e0b88f5614","gate":"OPERATOR_INPUT_REQUIRED","group_count":7,"homepage_restart_count":0,"mutation_outcome":"NO_MUTATION","newfilya_monitor_enabled":false,"operator_input_required":true,"output_sha256":"dbb4841cf66094610efdb23ef11c213faba6cb724249d044c2ef46198b6f5757","public_leaf_certificate_sha256":"c14d6f3eda27dcd7e8c8a44c18844f8009b4f23a74ab82d49475f138ddef0b93","rc":0,"rollback_restored":null,"rollback_started":false,"services_bytes":12308,"services_sha256":"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928","services_structure_sha256":"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82","stacks_strong_candidate_count":0,"status":"OK"},"parent_v16_evidence":{"PLAN_SHA256":null,"blockers":["EDGE_STATIC_PLACEHOLDER_PREFLIGHT_INCOMPLETE","NEWFILYA_STATIC_CONFIG_PATH_NOT_FREE"],"candidate_filename":"998.conf","candidate_path_bytes":867,"candidate_path_exists":true,"candidate_path_gid":0,"candidate_path_kind":"regular","candidate_path_mode":"0644","candidate_path_uid":0,"capsule_bytes":95066,"capsule_sha256":"1370453ba42fbc997021981a52c5445c5843c4a027c2357784f9e90b47342b97","card_count":65,"certificate_paths_absent":true,"changes_made":false,"command_id":"HOMEPAGE-NEWFILYA-STATIC-PLACEHOLDER-TLS-READ-ONLY-PLAN-V16-20260804T120500Z","command_sha256":"dffeed8860eb0b5a4545b991d10cf28ba2cae513675449623e2d05cb3e7e01ae","core_remote_stdout_sha256":"4430d15bad3cc3286b28390d7d7ed7b22d0eb9f6a3af24491c6031c638dff5ba","diagnosis":"NEWFILYA_STATIC_PLACEHOLDER_TLS_PLAN_BLOCKED","document_rc":1,"document_status":"FAIL","edge_remote_stdout_sha256":"c8cd2bb3cf6f2abf4a46b28b20ce2fc9213c7dd336721bc09cea64983c38a756","gate":"BLOCKED","group_count":7,"homepage_restart_count":0,"mutation_outcome":"NO_MUTATION","newfilya_monitor_enabled":false,"next_stage":"NEWFILYA_STATIC_PLACEHOLDER_PLAN_FIX","npmplus_restart_count":0,"output_sha256":"7b9c0a671d4c7bb02268dec1a019d0f90d37c4a287f76c20a730c0cc6810d92c","proxy_domain_match_count":0,"public_leaf_certificate_sha256":"c14d6f3eda27dcd7e8c8a44c18844f8009b4f23a74ab82d49475f138ddef0b93","ready_for_apply":false,"rollback_restored":null,"rollback_started":false,"runner_rc":1,"runner_status":"FAIL","runtime_commit":"b86e6564664ebcdedea16e686f5fc3fe80cf2496","services_bytes":12308,"services_sha256":"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928","services_structure_sha256":"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82"},"parent_v18_evidence":{"PLAN_SHA256":"7cda56347806e7ad26ac5f7b96c4731d6aa58b483840517520c7c398edf449cf","asset_absent_after_rollback":true,"asset_bytes":712859,"asset_filename":"newfilya-ilyusha-7f8d6c40d5f8f740.jpg","asset_sha256":"7f8d6c40d5f8f740f2d719fe739c456cf832cb67ed1b15161b616b8632caf367","candidate_absent_after_rollback":true,"candidate_bytes":4100,"candidate_filename":"992.conf","candidate_sha256":"3600fec59a28f95160cdf63bc3271b9e22af3da043b2a00861c3f21dbdb5043e","capsule_bytes":1082055,"capsule_sha256":"5d48d9ae1c8e03a5c556286583d8d4f2e2d9ddbccb3e1af98b2a2a89761986a3","certificate_absent_after_rollback":true,"certificate_issue_rc":0,"certificate_issued_before_failure":true,"changes_made":true,"cluster_changed":false,"command_id":"HOMEPAGE-NEWFILYA-STATIC-PLACEHOLDER-TLS-ATOMIC-APPLY-V18-20260804T124500Z","command_sha256":"dbb13114a69cde684d7cd48d6ec293cdd5ba285e26a5daa62a851672db4fdf4e","diagnosis":"NEWFILYA_STATIC_PLACEHOLDER_TLS_EDGE_EXCEPTION","dns_changed":false,"document_rc":1,"document_status":"FAIL","failed_operation":"NGINX_TEST_BEFORE_RELOAD","gate":"RETURNED_TO_V17_BASELINE","gitea_changed":false,"homepage_card_count":65,"homepage_group_count":7,"homepage_restart_count":0,"homepage_services_bytes":12308,"homepage_services_sha256":"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928","homepage_services_structure_sha256":"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82","mutation_outcome":"ROLLED_BACK","newfilya_monitor_enabled":false,"next_stage":"NEWFILYA_STATIC_PLACEHOLDER_TLS_APPLY_RETRY","nginx_test_rc":1,"nginx_test_stderr_bytes":225,"nginx_test_stderr_sha256":"ac7853b56118a76752fd093f00081a9380e663e4482de2ec7065e88e6a0289ac","npmplus_restart_count":0,"output_sha256":"8c3feba7da13b7ee9e2d14e503a25940e1cdb1282856405113637b9de1d7795a","result_contract_valid":true,"rollback_certbot_delete_rc":0,"rollback_nginx_reload_rc":0,"rollback_nginx_test_rc":0,"rollback_restored":true,"rollback_started":true,"runner_rc":1,"runner_status":"FAIL","runtime_commit":"e5345c2447e16aa5b10ed6dcf459fc6e27f68f84"},"plan":null,"private_addresses_included":false,"private_keys_read":false,"production_site_changed":false,"public":{"acme_http":{"completed":true,"final_hop":{"body_bytes":124,"body_sha256":"8cdc5c9588e8cc315d89a7c73f1bea4d41f8d68ae165756df0ec4a7db6a49892","certificate_validation_disabled":true,"completed":true,"header_values_returned":false,"location_present":false,"status":404},"first_hop":{"body_bytes":140,"body_sha256":"367cbd2bd4bb3ccdbff9b81ad94e4c1d9c66ee80e9df3ffcd7080f2000cbac6a","completed":true,"header_values_returned":false,"location_matches_expected_https":true,"location_present":true,"status":301},"header_values_returned":false,"path_sha256":"e607916d673bf51a6f3308ddd6069ae2da45daaec36dd78c419a41250a81f1af","redirect_count":1,"route_model":"HTTP_TO_HTTPS_404","route_proven":true},"addresses_returned":false,"anchor_dns":{"address_set_sha256":"c76b6b888b15b83623f3fc36fe6617dc24550f6b09b0d8f73c92ea22016e3a13","addresses_returned":false,"public_target_count":1,"record_count":1,"resolved":true},"body_returned":false,"certificate_contents_returned":false,"dns":{"address_set_sha256":"c76b6b888b15b83623f3fc36fe6617dc24550f6b09b0d8f73c92ea22016e3a13","addresses_returned":false,"families":["IPv4"],"public_target_count":1,"record_count":1,"rejected_non_public_count":0,"resolved":true},"dns_matches_hbarhub_anchor":true,"http":{"bad_gateway":false,"body_bytes":140,"body_sha256":"367cbd2bd4bb3ccdbff9b81ad94e4c1d9c66ee80e9df3ffcd7080f2000cbac6a","completed":true,"connection_mode":"PINNED_GLOBAL_TARGET","header_values_returned":false,"npmplus_default":false,"redirects_to_expected_https":true,"status":301},"https_unverified":{"bad_gateway":false,"body_bytes":2056,"body_returned":false,"body_sha256":"808dfeea0cf787d85e03645e62ab18b97ab8138924420966413edcfe22ef4879","certificate_validation_disabled":true,"completed":true,"connection_mode":"PINNED_GLOBAL_TARGET_WITH_SNI","leaf_certificate_sha256":"c14d6f3eda27dcd7e8c8a44c18844f8009b4f23a74ab82d49475f138ddef0b93","npmplus_default":true,"status":200},"tcp_443":{"addresses_returned":false,"attempt_count":1,"error_types":{},"reachable":true,"success_count":1},"tls_443":{"addresses_returned":false,"attempt_count":1,"certificate_contents_returned":false,"unverified":{"certificate_contents_returned":false,"certificate_validation_disabled":true,"completed":true,"error_types":{},"leaf_certificate_count":1,"leaf_certificate_sha256":"c14d6f3eda27dcd7e8c8a44c18844f8009b4f23a74ab82d49475f138ddef0b93","leaf_set_sha256":"620f5c3147455134d92b987f4f0c17c97663931b52966c15d089b43e1e452c1b","protocols":["TLSv1.3"],"success_count":1},"verified":false,"verified_leaf_certificate_sha256":null,"verified_protocol":null,"verified_success_count":0,"verify_codes":{"18":1}}},"public_proxy_changed":false,"rc":1,"read_only":true,"ready_for_apply":false,"rollback_restored":null,"rollback_started":false,"sanitized":true,"schema":1,"secret_files_read":false,"secrets_included":false,"source_contents_returned":false,"status":"FAIL","transport":{"core":{"config_view":"service-view","mode":"DIRECT_QGA","private_addresses_returned":false,"qga_step_count":6,"qga_step_set_sha256":"f92240111278a3961d57abef0c8b2355f2df8bcd699389644c3bd89c88c2ae71","remote_rc":0,"remote_stdout_bytes":2825,"remote_stdout_sha256":"4556d04776c1ae8af2b5f86b9eed50a0f8bf7921d03dab34ede484204ce62cd5","socket_view":"service-view","vm_name":"core-apps","vmid":170},"edge":{"config_view":"service-view","mode":"STRICT_SSH_TO_OWNING_NODE_THEN_DIRECT_QGA","node":"pve03","private_addresses_returned":false,"qga_step_count":11,"qga_step_set_sha256":"8770c5ee987676ac36df95e408ecc38422127743f70b57757d2705ad588ff845","remote_rc":1,"remote_stdout_bytes":7226,"remote_stdout_sha256":"7f4df938cae5eb518251d236127f9b8762f195e3c2d9f07898bb9f2897b6705c","socket_view":"service-view","ssh_rc":0,"vm_name":"edge-vm","vmid":130}}} +GENERATED_AT_UTC=[PRIVATE_IP]T14:17:01Z +Cluster information +------------------- +Name: homelab +Config Version: 3 +Transport: knet +Secure auth: on +Quorum information +------------------ +Date: Tue Aug [PRIVATE_IP] 2026 +Quorum provider: corosync_votequorum +Nodes: 3 +Node ID: [PRIVATE_IP] +Ring ID: 1.db +Quorate: Yes + +Votequorum information +---------------------- +Expected votes: 3 +Highest expected: 3 +Total votes: 3 +Quorum: 2 +Flags: Quorate + +Membership information +---------------------- + Nodeid Votes Name +[PRIVATE_IP] [PRIVATE_IP].11 (local) +[PRIVATE_IP] [PRIVATE_IP].13 +[PRIVATE_IP] [PRIVATE_IP].12 + +Membership information +---------------------- + Nodeid Votes Name + 1 1 pve01 (local) + 2 1 pve03 + 3 1 pve02 +[{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/110","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":616201,"vmid":110},{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/111","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":616285,"vmid":111},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/112","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":616246,"vmid":112},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/113","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":616288,"vmid":113},{"cpu":[PRIVATE_IP]09547,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"edge-vm","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":616224,"vmid":130},{"cpu":[PRIVATE_IP]44895,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/150","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"nextcloud","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":616198,"vmid":150},{"cpu":[PRIVATE_IP]768345,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/160","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"forum-prod","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":616281,"vmid":160},{"cpu":[PRIVATE_IP]50139,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/170","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"core-apps","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":616194,"vmid":170},{"cpu":[PRIVATE_IP]27507,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/171","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"monitoring","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":616191,"vmid":171},{"cpu":[PRIVATE_IP]65899,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/180","maxcpu":2,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"cluster-admin","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":616279,"vmid":180},{"cpu":[PRIVATE_IP]24452,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/190","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"homelab-ops-worker","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":616220,"vmid":190},{"cpu":0,"disk":0,"diskread":0,"diskwrite":0,"id":"qemu/9130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":0,"memhost":0,"name":"edge-cold-standby","netin":0,"netout":0,"node":"pve02","status":"stopped","template":0,"type":"qemu","uptime":0,"vmid":9130},{"cgroup-mode":2,"cpu":[PRIVATE_IP]07456,"disk":[PRIVATE_IP],"id":"node/pve01","level":"","maxcpu":24,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve01","status":"online","type":"node","uptime":616303},{"cgroup-mode":2,"cpu":[PRIVATE_IP]87802,"disk":[PRIVATE_IP],"id":"node/pve03","level":"","maxcpu":8,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve03","status":"online","type":"node","uptime":616242},{"cgroup-mode":2,"cpu":[PRIVATE_IP]56967,"disk":[PRIVATE_IP],"id":"node/pve02","level":"","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve02","status":"online","type":"node","uptime":616321},{"content":"vztmpl,import,iso,backup","disk":[PRIVATE_IP],"id":"storage/pve01/local","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"vztmpl,import,iso,backup","disk":[PRIVATE_IP],"id":"storage/pve03/local","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"vztmpl,import,iso,backup","disk":[PRIVATE_IP],"id":"storage/pve02/local","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve01/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve03/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve02/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"id":"network/pve01/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve01","status":"ok","type":"network"},{"id":"network/pve03/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve03","status":"ok","type":"network"},{"id":"network/pve02/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve02","status":"ok","type":"network"}] +Name Type Status Total (KiB) Used (KiB) Available (KiB) % +local dir active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 14.19% +local-lvm lvmthin active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 27.37% + UNIT LOAD ACTIVE SUB DESCRIPTION +● homelab-backup-matrix-refresh.service loaded failed failed Generate unified homelab backup matrix state +● homelab-crypto-portfolio-chart-health.service loaded failed failed Crypto portfolio chart health check +● skladchik-reports-monitor-supervisor.service loaded failed failed Skladchik reports monitor full supervisor + +Legend: LOAD → Reflects whether the unit definition was properly loaded. + ACTIVE → The high-level unit activation state, i.e. generalization of SUB. + SUB → The low-level unit activation state, values depend on unit type. + +3 loaded units listed. +NEXT LEFT LAST PASSED UNIT ACTIVATES +Tue [PRIVATE_IP] 17:17:18 MSK 15s Tue [PRIVATE_IP] 17:16:18 MSK 44s ago homelab-cluster-admin-webpanel-sync.timer homelab-cluster-admin-webpanel-sync.service +Tue [PRIVATE_IP] 17:17:18 MSK 15s Tue [PRIVATE_IP] 17:16:18 MSK 44s ago homelab-private-vpn-hosts-health.timer homelab-private-vpn-hosts-health.service +Tue [PRIVATE_IP] 17:17:18 MSK 16s Tue [PRIVATE_IP] 17:15:04 MSK 1min 58s ago homelab-cluster-admin-inventory-sync.timer homelab-cluster-admin-inventory-sync.service +Tue [PRIVATE_IP] 17:17:22 MSK 19s Tue [PRIVATE_IP] 17:16:21 MSK 41s ago homelab-router-watchdog.timer homelab-router-watchdog.service +Tue [PRIVATE_IP] 17:19:08 MSK 2min 6s Tue [PRIVATE_IP] 17:14:08 MSK 2min 53s ago homelab-smartctl-textfile.timer homelab-smartctl-textfile.service +Tue [PRIVATE_IP] 17:19:08 MSK 2min 6s Tue [PRIVATE_IP] 17:14:08 MSK 2min 53s ago netbird-peers-health.timer netbird-peers-health.service +Tue [PRIVATE_IP] 17:19:26 MSK 2min 23s Tue [PRIVATE_IP] 17:04:26 MSK 12min ago prometheus-node-exporter-apt.timer prometheus-node-exporter-apt.service +Tue [PRIVATE_IP] 17:20:15 MSK 3min 13s Tue [PRIVATE_IP] 17:14:57 MSK 2min 5s ago homelab-crypto-portfolio-chart-health.timer homelab-crypto-portfolio-chart-health.service +Tue [PRIVATE_IP] 17:20:23 MSK 3min 20s Tue [PRIVATE_IP] 17:14:57 MSK 2min 5s ago homelab-health-metrics.timer homelab-health-metrics.service +Tue [PRIVATE_IP] 17:21:26 MSK 4min 23s Tue [PRIVATE_IP] 17:11:26 MSK 5min ago skladchik-reports-monitor-supervisor.timer skladchik-reports-monitor-supervisor.service +Tue [PRIVATE_IP] 17:22:14 MSK 5min Tue [PRIVATE_IP] 17:07:14 MSK 9min ago homelab-disk-space-health.timer homelab-disk-space-health.service +Tue [PRIVATE_IP] 17:23:14 MSK 6min Tue [PRIVATE_IP] 17:08:14 MSK 8min ago homelab-pve03-staging-capacity-health.timer homelab-pve03-staging-capacity-health.service +Tue [PRIVATE_IP] 17:24:26 MSK 7min Tue [PRIVATE_IP] 17:09:26 MSK 7min ago prometheus-node-exporter-nvme.timer prometheus-node-exporter-nvme.service +Tue [PRIVATE_IP] 17:25:45 MSK 8min Tue [PRIVATE_IP] 16:51:47 MSK 25min ago homelab-reference-refresh.timer homelab-reference-refresh.service +Tue [PRIVATE_IP] 17:30:00 MSK 12min Tue [PRIVATE_IP] 17:15:02 MSK 2min 0s ago homelab-incident-journal.timer homelab-incident-journal.service +Tue [PRIVATE_IP] 17:30:55 MSK 13min Tue [PRIVATE_IP] 17:15:14 MSK 1min 47s ago homelab-external-probe-vps-health.timer homelab-external-probe-vps-health.service +Tue [PRIVATE_IP] 17:30:55 MSK 13min Tue [PRIVATE_IP] 17:16:50 MSK 12s ago homelab-duty-admin-v2.timer homelab-duty-admin-v2.service +Tue [PRIVATE_IP] 17:31:27 MSK 14min Tue [PRIVATE_IP] 17:15:02 MSK 2min 0s ago homelab-forum-snuffleupagus-health.timer homelab-forum-snuffleupagus-health.service +Tue [PRIVATE_IP] 17:32:09 MSK 15min Tue [PRIVATE_IP] 17:04:07 MSK 12min ago homelab-mkdocs-auto-refresh.timer homelab-mkdocs-auto-refresh.service +Tue [PRIVATE_IP] 20:08:26 MSK 2h 51min Tue [PRIVATE_IP] 14:08:26 MSK 3h 8min ago homelab-vps-identity-audit.timer homelab-vps-identity-audit.service +Wed [PRIVATE_IP] 00:00:00 MSK 6h Tue [PRIVATE_IP] 00:00:07 MSK 17h ago dpkg-db-backup.timer dpkg-db-backup.service +Wed [PRIVATE_IP] 00:08:04 MSK 6h Tue [PRIVATE_IP] 00:05:08 MSK 17h ago homelab-storage-capacity.timer homelab-storage-capacity.service +Wed [PRIVATE_IP] 00:08:47 MSK 6h Tue [PRIVATE_IP] 00:08:07 MSK 17h ago homelab-evidence-catalog.timer homelab-evidence-catalog.service +Wed [PRIVATE_IP] 00:13:19 MSK 6h Tue [PRIVATE_IP] 00:13:28 MSK 17h ago homelab-docker-health.timer homelab-docker-health.service +Wed [PRIVATE_IP] 00:18:54 MSK 7h Tue [PRIVATE_IP] 00:08:14 MSK 17h ago homelab-quality-gate.timer homelab-quality-gate.service +Wed [PRIVATE_IP] 00:51:16 MSK 7h Tue [PRIVATE_IP] 00:08:36 MSK 17h ago logrotate.timer logrotate.service +Wed [PRIVATE_IP] 01:56:09 MSK 8h Tue [PRIVATE_IP] 00:14:22 MSK 17h ago man-db.timer man-db.service +Wed [PRIVATE_IP] 03:50:00 MSK 10h Tue [PRIVATE_IP] 03:50:02 MSK 13h ago filebrowser-offhost-sync.timer filebrowser-offhost-sync.service +Wed [PRIVATE_IP] 04:05:55 MSK 10h Tue [PRIVATE_IP] 01:23:47 MSK 15h ago pve-daily-update.timer pve-daily-update.service +Wed [PRIVATE_IP] 04:48:13 MSK 11h Tue [PRIVATE_IP] 04:42:07 MSK 12h ago homelab-edge-vm-offhost-freshness.timer homelab-edge-vm-offhost-freshness.service +Wed [PRIVATE_IP] 04:58:15 MSK 11h Tue [PRIVATE_IP] 05:15:14 MSK 12h ago homelab-sops-edge-secret-coverage.timer homelab-sops-edge-secret-coverage.service +Wed [PRIVATE_IP] 05:30:03 MSK 12h Tue [PRIVATE_IP] 12:02:37 MSK 5h 14min ago apt-daily.timer apt-daily.service +Wed [PRIVATE_IP] 06:01:06 MSK 12h Tue [PRIVATE_IP] 06:53:08 MSK 10h ago apt-daily-upgrade.timer apt-daily-upgrade.service +Wed [PRIVATE_IP] 07:16:56 MSK 13h Tue [PRIVATE_IP] 07:03:50 MSK 10h ago homelab-drift-check.timer homelab-drift-check.service +Wed [PRIVATE_IP] 07:32:01 MSK 14h Tue [PRIVATE_IP] 07:39:26 MSK 9h ago homelab-service-registry-check.timer homelab-service-registry-check.service +Wed [PRIVATE_IP] 07:48:22 MSK 14h Tue [PRIVATE_IP] 07:54:17 MSK 9h ago homelab-desired-state-sync.timer homelab-desired-state-sync.service +Wed [PRIVATE_IP] 07:53:58 MSK 14h Tue [PRIVATE_IP] 07:46:07 MSK 9h ago homelab-alerting-health.timer homelab-alerting-health.service +Wed [PRIVATE_IP] 07:56:28 MSK 14h Tue [PRIVATE_IP] 07:56:07 MSK 9h ago homelab-dependency-map-check.timer homelab-dependency-map-check.service +Wed [PRIVATE_IP] 07:56:57 MSK 14h Tue [PRIVATE_IP] 07:56:50 MSK 9h ago homelab-runbook-generate.timer homelab-runbook-generate.service +Wed [PRIVATE_IP] 08:06:21 MSK 14h Tue [PRIVATE_IP] 07:59:39 MSK 9h ago homelab-duty-admin-report.timer homelab-duty-admin-report.service +Wed [PRIVATE_IP] 08:11:00 MSK 14h Tue [PRIVATE_IP] 08:03:50 MSK 9h ago homelab-overall-health.timer homelab-overall-health.service +Wed [PRIVATE_IP] 08:16:53 MSK 14h Tue [PRIVATE_IP] 08:16:35 MSK 9h ago homelab-kuma-monitor-policy.timer homelab-kuma-monitor-policy.service +Wed [PRIVATE_IP] 08:21:31 MSK 15h Tue [PRIVATE_IP] 08:12:26 MSK 9h ago homelab-final-readiness-gate.timer homelab-final-readiness-gate.service +Wed [PRIVATE_IP] 08:30:08 MSK 15h Tue [PRIVATE_IP] 08:36:50 MSK 8h ago homelab-capacity-risk.timer homelab-capacity-risk.service +Wed [PRIVATE_IP] 08:37:04 MSK 15h Tue [PRIVATE_IP] 08:52:38 MSK 8h ago homelab-cluster-passport.timer homelab-cluster-passport.service +Wed [PRIVATE_IP] 08:40:47 MSK 15h Tue [PRIVATE_IP] 08:36:17 MSK 8h ago homelab-secret-exposure-guard.timer homelab-secret-exposure-guard.service +Wed [PRIVATE_IP] 08:47:05 MSK 15h Tue [PRIVATE_IP] 08:54:47 MSK 8h ago immich-media-offhost-sync.timer immich-media-offhost-sync.service +Wed [PRIVATE_IP] 08:55:12 MSK 15h Tue [PRIVATE_IP] 08:50:07 MSK 8h ago homelab-golden-state-index.timer homelab-golden-state-index.service +Wed [PRIVATE_IP] 09:20:57 MSK 16h Tue [PRIVATE_IP] 09:06:50 MSK 8h ago memos-offhost-sync.timer memos-offhost-sync.service +Wed [PRIVATE_IP] 10:15:00 MSK 16h Tue [PRIVATE_IP] 10:15:14 MSK 7h ago skladchik-reports-monitor-monthly-selftest-watch.timer skladchik-reports-monitor-monthly-selftest-watch.service +Wed [PRIVATE_IP] 14:20:26 MSK 21h Tue [PRIVATE_IP] 14:20:26 MSK 2h 56min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service +Sun [PRIVATE_IP] 03:10:38 MSK 4 days Sun [PRIVATE_IP] 03:10:25 MSK 2 days ago xfs_scrub_all.timer xfs_scrub_all.service +Sun [PRIVATE_IP] 03:10:48 MSK 4 days Sun [PRIVATE_IP] 03:10:50 MSK 2 days ago e2scrub_all.timer e2scrub_all.service +Mon [PRIVATE_IP] 00:03:56 MSK 5 days Mon [PRIVATE_IP] 00:11:50 MSK 1 day 17h ago homelab-secret-sanity.timer homelab-secret-sanity.service +Mon [PRIVATE_IP] 01:11:21 MSK 5 days Mon [PRIVATE_IP] 01:17:56 MSK 1 day 15h ago fstrim.timer fstrim.service +- - - - prometheus-node-exporter-ipmitool-sensor.timer prometheus-node-exporter-ipmitool-sensor.service +- - - - prometheus-node-exporter-mellanox-hca-temp.timer prometheus-node-exporter-mellanox-hca-temp.service +- - - - prometheus-node-exporter-smartmon.timer prometheus-node-exporter-smartmon.service + +58 timers listed. +- Обрезанная, повреждённая или частично вставленная команда считается невыполненной; сначала проводится side-effect audit. +- Хвост parse-ошибки закрывается только после доказательства отсутствия изменений и временных артефактов. +- Proof: /var/lib/homelab-change-sets/operator-command-size-guard-v[PRIVATE_IP]T182653Z/report.txt + +## HOMELAB_ADMIN_CLI_CONTRACT_[PRIVATE_IP] +- Поддерживаемые команды: version, status, lint TASK_DIR, validate TASK_DIR, run TASK_DIR PHASE. +- Отдельная команда --help отсутствует. Неизвестный аргумент печатает usage и штатно возвращает RC=64. +- Нельзя трактовать RC=64 от --help как неисправность runner. +- Для проверки доступности runner использовать homelab-admin version; для структуры CLI использовать зафиксированную usage-строку. +- Proof: /var/lib/homelab-change-sets/homelab-admin-cli-contract-fix-v[PRIVATE_IP]T183338Z/report.txt + +AUTOMATIC_CLUSTER_CONTEXT_REFRESH_[PRIVATE_IP] +Collector: /usr/local/sbin/homelab-context-collect +Scheduler: hourly at minute 17 via /etc/cron.d/homelab-context-refresh +Destination: immutable Gitea runtime history with CONTEXT-AUTO UTC command IDs. + +AUTOMATIC_CLUSTER_CONTEXT_REFRESH_DIRECT_[PRIVATE_IP] +Publisher: /usr/local/sbin/homelab-context-refresh-direct +Schedule: hourly at minute 17. +Destination: immutable assistant-runtime history with CONTEXT-AUTO UTC IDs. +ANTI_REGRESSION_TOKEN=HOMELAB_VM_2CLOUD_444_OUTER_LAUNCHER_BOUNDARY_REQUIRED +- Anti-regression: validate the complete outer launcher with a shell syntax check and verify the wrapper argument boundary before issuing it. +- Infrastructure action executed: none. +- Backup payload impact: none. +- Production impact: none. +- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. +- Registered at: [PRIVATE_IP]T11:20:32Z + +## ERROR_[PRIVATE_IP]_HOMELAB_VM_2CLOUD_DRAIN_CLOSURE_PREFLIGHT_446 +COMMAND_ID=HOMELAB-VM-2CLOUD-DRAIN-CLOSURE-PREFLIGHT-446 +- Symptom: homelab-chat-run-linked printed Usage and skipped result-feed publication as invalid input. +- Root cause: the diagnostic script was piped to wrapper stdin and the mandatory double-dash command separator was omitted. +- Correction: invoke homelab-chat-run-linked as COMMAND_ID MODE COMPONENT -- command arguments; stdin is not its command interface. +ANTI_REGRESSION_TOKEN=HOMELAB_CHAT_RUN_COMMAND_REQUIRES_DOUBLE_DASH +- Anti-regression: treat wrapper Usage as the authoritative CLI contract and syntax-check the complete launcher, not only its inner payload. +- Infrastructure action executed: none. +- Backup payload impact: none. +- Production impact: none. +- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. +- Registered at: [PRIVATE_IP]T11:20:32Z OUTPUT_END CHAT_OUTPUT_END