From 822d5651070f8ddb8e595cb3d3ad399f94f37e8a Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Mon, 3 Aug 2026 09:17:03 +0000 Subject: [PATCH] runtime: publish CONTEXT-AUTO-20260803T091701Z --- .../CONTEXT-AUTO-20260803T091701Z.json | 1 + .../history/CONTEXT-AUTO-20260803T091701Z.txt | 164 ++++++++++++++++ runtime/latest.json | 39 +--- runtime/latest.txt | 182 +++++++++++++++--- 4 files changed, 322 insertions(+), 64 deletions(-) create mode 100644 runtime/history/CONTEXT-AUTO-20260803T091701Z.json create mode 100644 runtime/history/CONTEXT-AUTO-20260803T091701Z.txt diff --git a/runtime/history/CONTEXT-AUTO-20260803T091701Z.json b/runtime/history/CONTEXT-AUTO-20260803T091701Z.json new file mode 100644 index 0000000..1f7a252 --- /dev/null +++ b/runtime/history/CONTEXT-AUTO-20260803T091701Z.json @@ -0,0 +1 @@ +{"schema_version":1,"channel":"homelab-runtime","command_id":"CONTEXT-AUTO-20260803T091701Z","status":"OK","rc":0,"host":"pve01","mode":"read-only","component":"cluster-context","started_at_utc":"2026-08-03T09:17:01Z","finished_at_utc":"2026-08-03T09: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-20260803T091701Z.txt b/runtime/history/CONTEXT-AUTO-20260803T091701Z.txt new file mode 100644 index 0000000..0f1004a --- /dev/null +++ b/runtime/history/CONTEXT-AUTO-20260803T091701Z.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]T09:17:01Z +Cluster information +------------------- +Name: homelab +Config Version: 3 +Transport: knet +Secure auth: on + +Quorum information +------------------ +Date: Mon 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":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/110","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":511799,"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":511884,"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":511844,"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":511888,"vmid":113},{"cpu":[PRIVATE_IP]7986,"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":511829,"vmid":130},{"cpu":[PRIVATE_IP]82286,"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":511796,"vmid":150},{"cpu":[PRIVATE_IP]293857,"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":511881,"vmid":160},{"cpu":[PRIVATE_IP]24485,"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":511792,"vmid":170},{"cpu":[PRIVATE_IP]03521,"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":511789,"vmid":171},{"cpu":[PRIVATE_IP]66958,"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":511878,"vmid":180},{"cpu":[PRIVATE_IP]741608,"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":511825,"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]12157,"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":511921},{"cgroup-mode":2,"cpu":[PRIVATE_IP]3454,"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":511901},{"cgroup-mode":2,"cpu":[PRIVATE_IP]38302,"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":511847},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve02/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/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":"vztmpl,import,backup,iso","disk":[PRIVATE_IP],"id":"storage/pve02/local","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"vztmpl,import,backup,iso","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,backup,iso","disk":[PRIVATE_IP],"id":"storage/pve03/local","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"id":"network/pve02/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve02","status":"ok","type":"network"},{"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"}] +Name Type Status Total (KiB) Used (KiB) Available (KiB) % +local dir active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 13.96% +local-lvm lvmthin active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 27.30% + 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 +Mon [PRIVATE_IP] 12:17:26 MSK 23s Mon [PRIVATE_IP] 12:16:26 MSK 36s ago homelab-cluster-admin-webpanel-sync.timer homelab-cluster-admin-webpanel-sync.service +Mon [PRIVATE_IP] 12:17:26 MSK 23s Mon [PRIVATE_IP] 12:16:26 MSK 36s ago homelab-private-vpn-hosts-health.timer homelab-private-vpn-hosts-health.service +Mon [PRIVATE_IP] 12:17:38 MSK 35s Mon [PRIVATE_IP] 12:12:25 MSK 4min 36s ago homelab-health-metrics.timer homelab-health-metrics.service +Mon [PRIVATE_IP] 12:17:41 MSK 38s Mon [PRIVATE_IP] 12:12:14 MSK 4min 47s ago homelab-crypto-portfolio-chart-health.timer homelab-crypto-portfolio-chart-health.service +Mon [PRIVATE_IP] 12:17:59 MSK 57s Mon [PRIVATE_IP] 12:16:57 MSK 5s ago homelab-router-watchdog.timer homelab-router-watchdog.service +Mon [PRIVATE_IP] 12:18:26 MSK 1min 24s Mon [PRIVATE_IP] 12:13:26 MSK 3min 35s ago homelab-smartctl-textfile.timer homelab-smartctl-textfile.service +Mon [PRIVATE_IP] 12:18:41 MSK 1min 39s Mon [PRIVATE_IP] 12:16:39 MSK 22s ago homelab-cluster-admin-inventory-sync.timer homelab-cluster-admin-inventory-sync.service +Mon [PRIVATE_IP] 12:19:26 MSK 2min 23s Mon [PRIVATE_IP] 12:04:26 MSK 12min ago homelab-disk-space-health.timer homelab-disk-space-health.service +Mon [PRIVATE_IP] 12:20:21 MSK 3min 19s Mon [PRIVATE_IP] 12:05:21 MSK 11min ago homelab-pve03-staging-capacity-health.timer homelab-pve03-staging-capacity-health.service +Mon [PRIVATE_IP] 12:20:21 MSK 3min 19s Mon [PRIVATE_IP] 12:05:21 MSK 11min ago prometheus-node-exporter-nvme.timer prometheus-node-exporter-nvme.service +Mon [PRIVATE_IP] 12:20:26 MSK 3min 23s Mon [PRIVATE_IP] 12:15:26 MSK 1min 36s ago netbird-peers-health.timer netbird-peers-health.service +Mon [PRIVATE_IP] 12:26:14 MSK 9min Mon [PRIVATE_IP] 12:16:14 MSK 47s ago skladchik-reports-monitor-supervisor.timer skladchik-reports-monitor-supervisor.service +Mon [PRIVATE_IP] 12:29:41 MSK 12min Mon [PRIVATE_IP] 11:58:47 MSK 18min ago homelab-reference-refresh.timer homelab-reference-refresh.service +Mon [PRIVATE_IP] 12:30:00 MSK 12min Mon [PRIVATE_IP] 12:15:14 MSK 1min 47s ago homelab-incident-journal.timer homelab-incident-journal.service +Mon [PRIVATE_IP] 12:30:15 MSK 13min Mon [PRIVATE_IP] 12:15:47 MSK 1min 15s ago homelab-external-probe-vps-health.timer homelab-external-probe-vps-health.service +Mon [PRIVATE_IP] 12:30:29 MSK 13min Mon [PRIVATE_IP] 12:16:36 MSK 26s ago homelab-duty-admin-v2.timer homelab-duty-admin-v2.service +Mon [PRIVATE_IP] 12:30:32 MSK 13min Mon [PRIVATE_IP] 12:01:14 MSK 15min ago homelab-mkdocs-auto-refresh.timer homelab-mkdocs-auto-refresh.service +Mon [PRIVATE_IP] 12:31:14 MSK 14min Mon [PRIVATE_IP] 12:16:14 MSK 47s ago prometheus-node-exporter-apt.timer prometheus-node-exporter-apt.service +Mon [PRIVATE_IP] 12:31:24 MSK 14min Mon [PRIVATE_IP] 12:15:14 MSK 1min 47s ago homelab-forum-snuffleupagus-health.timer homelab-forum-snuffleupagus-health.service +Mon [PRIVATE_IP] 12:38:49 MSK 21min Mon [PRIVATE_IP] 05:11:57 MSK 7h ago apt-daily.timer apt-daily.service +Mon [PRIVATE_IP] 14:08:25 MSK 1h 51min Mon [PRIVATE_IP] 08:08:25 MSK 4h 8min ago homelab-vps-identity-audit.timer homelab-vps-identity-audit.service +Mon [PRIVATE_IP] 14:20:25 MSK 2h 3min Sun [PRIVATE_IP] 14:20:25 MSK 21h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service +Tue [PRIVATE_IP] 00:00:00 MSK 11h Mon [PRIVATE_IP] 00:00:06 MSK 12h ago dpkg-db-backup.timer dpkg-db-backup.service +Tue [PRIVATE_IP] 00:05:03 MSK 11h Mon [PRIVATE_IP] 00:15:28 MSK 12h ago homelab-storage-capacity.timer homelab-storage-capacity.service +Tue [PRIVATE_IP] 00:07:51 MSK 11h Mon [PRIVATE_IP] 00:02:07 MSK 12h ago homelab-evidence-catalog.timer homelab-evidence-catalog.service +Tue [PRIVATE_IP] 00:08:11 MSK 11h Mon [PRIVATE_IP] 00:11:14 MSK 12h ago homelab-quality-gate.timer homelab-quality-gate.service +Tue [PRIVATE_IP] 00:08:26 MSK 11h Mon [PRIVATE_IP] 00:49:14 MSK 11h ago logrotate.timer logrotate.service +Tue [PRIVATE_IP] 00:13:28 MSK 11h Mon [PRIVATE_IP] 00:05:50 MSK 12h ago homelab-docker-health.timer homelab-docker-health.service +Tue [PRIVATE_IP] 00:14:17 MSK 11h Mon [PRIVATE_IP] 10:50:38 MSK 1h 26min ago man-db.timer man-db.service +Tue [PRIVATE_IP] 01:23:37 MSK 13h Mon [PRIVATE_IP] 01:28:07 MSK 10h ago pve-daily-update.timer pve-daily-update.service +Tue [PRIVATE_IP] 03:50:00 MSK 15h Mon [PRIVATE_IP] 03:50:07 MSK 8h ago filebrowser-offhost-sync.timer filebrowser-offhost-sync.service +Tue [PRIVATE_IP] 04:41:55 MSK 16h Mon [PRIVATE_IP] 04:50:29 MSK 7h ago homelab-edge-vm-offhost-freshness.timer homelab-edge-vm-offhost-freshness.service +Tue [PRIVATE_IP] 05:14:52 MSK 16h Mon [PRIVATE_IP] 05:06:55 MSK 7h ago homelab-sops-edge-secret-coverage.timer homelab-sops-edge-secret-coverage.service +Tue [PRIVATE_IP] 06:52:59 MSK 18h Mon [PRIVATE_IP] 06:53:14 MSK 5h 23min ago apt-daily-upgrade.timer apt-daily-upgrade.service +Tue [PRIVATE_IP] 07:03:42 MSK 18h Mon [PRIVATE_IP] 07:05:50 MSK 5h 11min ago homelab-drift-check.timer homelab-drift-check.service +Tue [PRIVATE_IP] 07:39:24 MSK 19h Mon [PRIVATE_IP] 07:21:25 MSK 4h 55min ago homelab-service-registry-check.timer homelab-service-registry-check.service +Tue [PRIVATE_IP] 07:45:52 MSK 19h Mon [PRIVATE_IP] 07:50:14 MSK 4h 26min ago homelab-alerting-health.timer homelab-alerting-health.service +Tue [PRIVATE_IP] 07:54:16 MSK 19h Mon [PRIVATE_IP] 07:52:50 MSK 4h 24min ago homelab-desired-state-sync.timer homelab-desired-state-sync.service +Tue [PRIVATE_IP] 07:55:52 MSK 19h Mon [PRIVATE_IP] 07:50:25 MSK 4h 26min ago homelab-dependency-map-check.timer homelab-dependency-map-check.service +Tue [PRIVATE_IP] 07:56:48 MSK 19h Mon [PRIVATE_IP] 07:46:38 MSK 4h 30min ago homelab-runbook-generate.timer homelab-runbook-generate.service +Tue [PRIVATE_IP] 07:59:39 MSK 19h Mon [PRIVATE_IP] 08:11:07 MSK 4h 5min ago homelab-duty-admin-report.timer homelab-duty-admin-report.service +Tue [PRIVATE_IP] 08:03:48 MSK 19h Mon [PRIVATE_IP] 08:19:07 MSK 3h 57min ago homelab-overall-health.timer homelab-overall-health.service +Tue [PRIVATE_IP] 08:12:24 MSK 19h Mon [PRIVATE_IP] 08:23:50 MSK 3h 53min ago homelab-final-readiness-gate.timer homelab-final-readiness-gate.service +Tue [PRIVATE_IP] 08:16:32 MSK 19h Mon [PRIVATE_IP] 08:21:25 MSK 3h 55min ago homelab-kuma-monitor-policy.timer homelab-kuma-monitor-policy.service +Tue [PRIVATE_IP] 08:36:17 MSK 20h Mon [PRIVATE_IP] 08:42:03 MSK 3h 34min ago homelab-secret-exposure-guard.timer homelab-secret-exposure-guard.service +Tue [PRIVATE_IP] 08:36:39 MSK 20h Mon [PRIVATE_IP] 08:32:47 MSK 3h 44min ago homelab-capacity-risk.timer homelab-capacity-risk.service +Tue [PRIVATE_IP] 08:50:00 MSK 20h Mon [PRIVATE_IP] 08:47:23 MSK 3h 29min ago homelab-golden-state-index.timer homelab-golden-state-index.service +Tue [PRIVATE_IP] 08:52:29 MSK 20h Mon [PRIVATE_IP] 08:53:07 MSK 3h 23min ago homelab-cluster-passport.timer homelab-cluster-passport.service +Tue [PRIVATE_IP] 08:54:34 MSK 20h Mon [PRIVATE_IP] 08:51:27 MSK 3h 25min ago immich-media-offhost-sync.timer immich-media-offhost-sync.service +Tue [PRIVATE_IP] 09:06:42 MSK 20h Mon [PRIVATE_IP] 09:20:50 MSK 2h 56min ago memos-offhost-sync.timer memos-offhost-sync.service +Tue [PRIVATE_IP] 10:15:00 MSK 21h Mon [PRIVATE_IP] 10:15:05 MSK 2h 1min ago skladchik-reports-monitor-monthly-selftest-watch.timer skladchik-reports-monitor-monthly-selftest-watch.service +Sun [PRIVATE_IP] 03:10:38 MSK 5 days Sun [PRIVATE_IP] 03:10:25 MSK 1 day 9h ago xfs_scrub_all.timer xfs_scrub_all.service +Sun [PRIVATE_IP] 03:10:48 MSK 5 days Sun [PRIVATE_IP] 03:10:50 MSK 1 day 9h ago e2scrub_all.timer e2scrub_all.service +Mon [PRIVATE_IP] 00:03:56 MSK 6 days Mon [PRIVATE_IP] 00:11:50 MSK 12h ago homelab-secret-sanity.timer homelab-secret-sanity.service +Mon [PRIVATE_IP] 01:11:21 MSK 6 days Mon [PRIVATE_IP] 01:17:56 MSK 10h 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 5b73fdb..1f7a252 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,38 +1 @@ -{ - "schema_version": 1, - "channel": "homelab-runtime", - "command_id": "HBARHUB-READONLY-INVENTORY-V3-20260803T084243Z", - "status": "OK", - "rc": 0, - "host": "pve01", - "mode": "verify", - "component": "hbarhub-readonly-inventory-v3", - "started_at_utc": "2026-08-03T09:05:25Z", - "finished_at_utc": "2026-08-03T09:05:26Z", - "reference_register_checked": true, - "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", - "error_register_checked": true, - "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", - "command_sha256": "cfa3f34538788178e6bf5932eac989cfd0c931e3f32a2a9defdd03fd2ca24e83", - "duplicate_failed_command_blocked": false, - "block_reason": null, - "execution_started": true, - "change_declared": false, - "result_contract_valid": true, - "result_contract_status": null, - "result_contract_error": null, - "command_rc": 0, - "changes_made": false, - "rollback_started": false, - "rollback_restored": null, - "mutation_outcome": "NO_MUTATION", - "sanitized": true, - "secrets_included": false, - "private_addresses_included": false, - "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "7b70a290dc7df9007fe86173b4a78b52de6c6ed8036da67ae5aaf34f3efcaed5", - "sanitized_output_sha256": "7b70a290dc7df9007fe86173b4a78b52de6c6ed8036da67ae5aaf34f3efcaed5", - "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\":\"HBARHUB-READONLY-INVENTORY-V3-20260803T084243Z\",\"mutation_outcome\":\"NO_MUTATION\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"capacity\":{\"disk\":{\"available_bytes\":76468895744,\"total_bytes\":126605975552},\"memory\":{\"available_bytes\":2762182656,\"standard_profile_memory_gate\":true,\"standard_required_available_bytes\":2147483648,\"swap_free_bytes\":6714781696,\"swap_total_bytes\":8589930496,\"total_bytes\":10435301376}},\"changes_made\":false,\"command_audit\":[{\"duration_ms\":5,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-candidate-1-is-bare\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":5,\"stdout_sha256\":\"a17fcf0a2f50e2d495e4f90ce263410edc183add6c62699a2facbccf60410f74\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":3,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-main-head\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":41,\"stdout_sha256\":\"dc0f064e529250268d3ff6232078a19aca8a12b3abc0291e79756ffde77303ed\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-main-tree\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":41,\"stdout_sha256\":\"59f30ea418f3e638f5c0294f375feeda787f7da9acc07ac67f8276032be811a2\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":1,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-branches\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":5,\"stdout_sha256\":\"6403203dd5a0867eb14d104ee8a73730bd72dd9ad92e78d996a6dba0a5dcfc01\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":1,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-main-ls-tree\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":2095,\"stdout_sha256\":\"8119f9a0c680eca043b5d648b8bf90567c90e5a6ae4f503779f4e8b66fcaa954\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-2f754321d62f\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":82,\"stdout_sha256\":\"3870cba2def4ee4e45c8ef33cb7239c6d391a9b57ff17e9b26d7bbdaf03501fa\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-a3046da0d15a\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":419,\"stdout_sha256\":\"0c93f24bb448c384a430b65bebcd54b86b570c62df88aa073e1342f7a3eba5b3\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-dd2c0eb6ea5c\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":477,\"stdout_sha256\":\"9c0be49681f983c329937f486427dbf002b826973a48d5c1851de7f55a6ce1ab\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-b33563055168\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":1429,\"stdout_sha256\":\"3b6de9c4d5c9f76d51280bb395f86e3cf51b69c982ea6a5a8d3740d09739cfff\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-facaded51b7d\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":2980,\"stdout_sha256\":\"65ea3fe0cd0d13651f920a776379876e9202a9614dd0368404d7a24561497efc\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-9a44fc761080\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":2787,\"stdout_sha256\":\"dfa2fc55e610dc5bb341169c24d45aaaf4143a1b8c9d021db37a8a8725cd15ff\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-ff21b6b9a3a3\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":1214,\"stdout_sha256\":\"cf219e2f0ee4be0e4881afc7035afff4c79b167579486ecf2eb601fd925d0e8e\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-3b441db82a6a\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":957,\"stdout_sha256\":\"5b41e7fcb4527eea3e5ab2496ec2239d8021ae8843c302a9f5371d77fdd043a7\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-1b2de4dd3c84\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":65,\"stdout_sha256\":\"8974a9c493587f508e73f358876ade4f3ab0369012b29ffb14280dbe30f721ce\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-ddfb2d760e2d\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":223,\"stdout_sha256\":\"b33bfae9785e01372e6b3c88a5747275013831fa5b323cfc60ada4f361551a47\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-b84b221603f4\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":3614,\"stdout_sha256\":\"662118548cce23f916be7ed66a468255a3405a3430b301bfe5adba4b764a1f88\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-7a60ba4bc1c3\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":165,\"stdout_sha256\":\"ddcebb4348c298dd8047df40cd1698603523f8a4ced6b518ad58f4b724db8cac\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-65d8eefb1783\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":168,\"stdout_sha256\":\"03ee75d6dd996de897b4a1c221584459e3b41c507d21f010d5b0372c4da8a630\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-57f701b24994\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":284,\"stdout_sha256\":\"f9cca66c33a7b629895d0637299fa3aa2396ab6759bcade14ed28a6e2d306b5a\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-2a240c00d383\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-be5aeb6bd421\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":174,\"stdout_sha256\":\"9308f2f4d7e9d110253fe8574aa42edeabd35a7316ab740d9e5e6ac0ee5498a2\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-dab1ce994488\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":911,\"stdout_sha256\":\"ce231cb3af3460166ef2a23c1456e3f704e44d9f19db42ce030af8a4bea71019\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-35edcefc0cbe\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":192,\"stdout_sha256\":\"8b4402ff2ac1c8603bc9c0821ca16b3b6d610facad7eccf76b83076ee912f0b2\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-8fa3b1bcd9fa\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":3478,\"stdout_sha256\":\"bad177066fedee2f8e427cb81ba9c32db4ae36ce533ce0f2090e60b6970378ae\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-82884eece61f\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":1371,\"stdout_sha256\":\"42420399fd48c97ce5ab4872d95b5490e0d3a266df8677d31d0ee1987852c9ff\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-86fd9bdfb2a6\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":260,\"stdout_sha256\":\"164665d9a442ab79bc4c0f250d1e3d76a096b4f93825e9900fab5bde0d53a088\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-92efa686bbd6\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":1449,\"stdout_sha256\":\"b1166fa6008792a83701740f560f93a3b74b3203003bc738c35a5f56454c1f14\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-blob-4d7c51b1efe9\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":81,\"stdout_sha256\":\"9838729f64d26b126c20f47836bcedfc97262a46059c6f810e088b1b7bf02ffa\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-published-baseline-present\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":0,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-published-baseline-ancestor\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":1,\"output_within_limit\":true,\"rc\":0,\"stage\":\"git-commits-ahead\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":2,\"stdout_sha256\":\"9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa\",\"timed_out\":false,\"tool\":\"git\"},{\"duration_ms\":10,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-server-version\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":13,\"stdout_sha256\":\"8484e7b831ba500ccf015246dc0a7b3f98de3c11519b347437ff8e91db018257\",\"timed_out\":false,\"tool\":\"docker\"},{\"duration_ms\":28,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-compose-version\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":9,\"stdout_sha256\":\"9a98539f27de5f629edafed2968b89d8ca06b9b39c9469ed2c22f3ca265bb6f9\",\"timed_out\":false,\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-hbarhub-containers\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"timed_out\":false,\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-hbarhub-networks\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"timed_out\":false,\"tool\":\"docker\"},{\"duration_ms\":9,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-hbarhub-volumes\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"timed_out\":false,\"tool\":\"docker\"},{\"duration_ms\":14,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-hbarhub-images\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"timed_out\":false,\"tool\":\"docker\"}],\"command_id\":\"HBARHUB-READONLY-INVENTORY-V3-20260803T084243Z\",\"container_environment_requested\":false,\"control_plane_error\":null,\"diagnosis\":\"HBARHUB_CURRENT_STATE_CAPTURED\",\"diagnostic_complete\":true,\"docker\":{\"available\":true,\"compose_version\":\"2.26.1-4\",\"containers\":[],\"expected_services\":[\"postgres\",\"redis\",\"scheduler\",\"web\",\"worker\"],\"images\":[],\"missing_expected_services\":[\"postgres\",\"redis\",\"scheduler\",\"web\",\"worker\"],\"networks\":[],\"present_services\":[],\"server_version\":\"26.1.5+dfsg1\",\"unexpected_services\":[],\"volumes\":[]},\"duration_ms\":190,\"failures\":[],\"gate\":\"READY_FOR_FRESH_STANDARD_DEPLOYMENT_PLAN_REVIEW\",\"gitea\":{\"available\":true,\"branch_names\":[\"main\"],\"changed_path_count_capped\":0,\"changed_paths_from_published_baseline\":[],\"classification\":\"MAIN_ADVANCED_FROM_PUBLISHED_BASELINE\",\"invalid_utf8_path_count\":0,\"main_head\":\"57d2704dc4dc4f1e00c3e1bda67fc0bc2bef6957\",\"main_tree\":\"7e13a2e1b5ab35046dbe172383a814151c16cce0\",\"published_baseline\":{\"commit\":\"57d2704dc4dc4f1e00c3e1bda67fc0bc2bef6957\",\"commit_present\":true,\"commits_ahead\":0,\"exact\":false,\"expected_file_count\":23,\"file_match_count\":23,\"is_ancestor_of_current_main\":true,\"source_archive_sha256\":\"25fb04b8dd74d4da2f50ba3aef76680b1813799a61fbd26c55bfcc1466cf82ac\"},\"published_path_candidates\":[{\"bare_repository\":true,\"bytes\":4096,\"exists\":true,\"gid\":1000,\"git_rc\":0,\"kind\":\"directory\",\"mode\":\"0755\",\"path\":\"/opt/stacks/gitea/data/git/repositories/homelab-admin/hbarhub.git\",\"uid\":1000},{\"exists\":false,\"kind\":null,\"path\":\"/opt/stacks/gitea/data/gitea-repositories/homelab-admin/hbarhub.git\"}],\"safe_files\":{\".dockerignore\":{\"bytes\":82,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"a02899f5e398a6deb0181cb71513bde4e65ce411\",\"published_sha256\":\"3870cba2def4ee4e45c8ef33cb7239c6d391a9b57ff17e9b26d7bbdaf03501fa\",\"sha256\":\"3870cba2def4ee4e45c8ef33cb7239c6d391a9b57ff17e9b26d7bbdaf03501fa\",\"within_read_limit\":true},\".env.example\":{\"bytes\":419,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"073a7a135b64d0d5a7cc41047b53b50a7ba07114\",\"published_sha256\":\"0c93f24bb448c384a430b65bebcd54b86b570c62df88aa073e1342f7a3eba5b3\",\"sha256\":\"0c93f24bb448c384a430b65bebcd54b86b570c62df88aa073e1342f7a3eba5b3\",\"within_read_limit\":true},\"Dockerfile\":{\"bytes\":477,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"7209eef3b39c70216015e1b0dbde6e227c9a4907\",\"published_sha256\":\"9c0be49681f983c329937f486427dbf002b826973a48d5c1851de7f55a6ce1ab\",\"sha256\":\"9c0be49681f983c329937f486427dbf002b826973a48d5c1851de7f55a6ce1ab\",\"within_read_limit\":true},\"README.md\":{\"bytes\":1429,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"01cd4fc7cbdabebbca9da603873a4807c1ed5a06\",\"published_sha256\":\"3b6de9c4d5c9f76d51280bb395f86e3cf51b69c982ea6a5a8d3740d09739cfff\",\"sha256\":\"3b6de9c4d5c9f76d51280bb395f86e3cf51b69c982ea6a5a8d3740d09739cfff\",\"within_read_limit\":true},\"compose.yaml\":{\"bytes\":2980,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"fd968f37af5650a3b8b636b1a1bb00b17cef3896\",\"published_sha256\":\"65ea3fe0cd0d13651f920a776379876e9202a9614dd0368404d7a24561497efc\",\"sha256\":\"65ea3fe0cd0d13651f920a776379876e9202a9614dd0368404d7a24561497efc\",\"within_read_limit\":true},\"config/assets.json\":{\"bytes\":2787,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"0dc81b6edf7ee474066ae018f10062659a0ad013\",\"published_sha256\":\"dfa2fc55e610dc5bb341169c24d45aaaf4143a1b8c9d021db37a8a8725cd15ff\",\"sha256\":\"dfa2fc55e610dc5bb341169c24d45aaaf4143a1b8c9d021db37a8a8725cd15ff\",\"within_read_limit\":true},\"docs/ARCHITECTURE.md\":{\"bytes\":1214,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"799999d3c9da253c52fdec41ff97ac08ed464a3a\",\"published_sha256\":\"cf219e2f0ee4be0e4881afc7035afff4c79b167579486ecf2eb601fd925d0e8e\",\"sha256\":\"cf219e2f0ee4be0e4881afc7035afff4c79b167579486ecf2eb601fd925d0e8e\",\"within_read_limit\":true},\"docs/OPERATIONS.md\":{\"bytes\":957,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"1bd3f3d56bcd4f8b69c450012ce93f58ab2c662f\",\"published_sha256\":\"5b41e7fcb4527eea3e5ab2496ec2239d8021ae8843c302a9f5371d77fdd043a7\",\"sha256\":\"5b41e7fcb4527eea3e5ab2496ec2239d8021ae8843c302a9f5371d77fdd043a7\",\"within_read_limit\":true},\"hbarhub/__init__.py\":{\"bytes\":65,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"53f4ccb1d8eb50e131da7b0e3abdd22cf9e0151c\",\"published_sha256\":\"8974a9c493587f508e73f358876ade4f3ab0369012b29ffb14280dbe30f721ce\",\"sha256\":\"8974a9c493587f508e73f358876ade4f3ab0369012b29ffb14280dbe30f721ce\",\"within_read_limit\":true},\"hbarhub/celery.py\":{\"bytes\":223,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"906c8930ea65134fe622c70b9002b7f2f55bae00\",\"published_sha256\":\"b33bfae9785e01372e6b3c88a5747275013831fa5b323cfc60ada4f361551a47\",\"sha256\":\"b33bfae9785e01372e6b3c88a5747275013831fa5b323cfc60ada4f361551a47\",\"within_read_limit\":true},\"hbarhub/settings.py\":{\"bytes\":3614,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"6ef7ad25210fb7c43191bd96cf63a79524d145ac\",\"published_sha256\":\"662118548cce23f916be7ed66a468255a3405a3430b301bfe5adba4b764a1f88\",\"sha256\":\"662118548cce23f916be7ed66a468255a3405a3430b301bfe5adba4b764a1f88\",\"within_read_limit\":true},\"hbarhub/urls.py\":{\"bytes\":165,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"9a10dd4dddeabe5941179a61477a0584ff26bd17\",\"published_sha256\":\"ddcebb4348c298dd8047df40cd1698603523f8a4ced6b518ad58f4b724db8cac\",\"sha256\":\"ddcebb4348c298dd8047df40cd1698603523f8a4ced6b518ad58f4b724db8cac\",\"within_read_limit\":true},\"hbarhub/wsgi.py\":{\"bytes\":168,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"415cafd0c0344a6f6d29efb521e23a649f009ca1\",\"published_sha256\":\"03ee75d6dd996de897b4a1c221584459e3b41c507d21f010d5b0372c4da8a630\",\"sha256\":\"03ee75d6dd996de897b4a1c221584459e3b41c507d21f010d5b0372c4da8a630\",\"within_read_limit\":true},\"manage.py\":{\"bytes\":284,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"9d363e250e1e8ba9febcea3cb8bf3ec7dd361e8d\",\"published_sha256\":\"f9cca66c33a7b629895d0637299fa3aa2396ab6759bcade14ed28a6e2d306b5a\",\"sha256\":\"f9cca66c33a7b629895d0637299fa3aa2396ab6759bcade14ed28a6e2d306b5a\",\"within_read_limit\":true},\"portal/__init__.py\":{\"bytes\":0,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391\",\"published_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"within_read_limit\":true},\"portal/apps.py\":{\"bytes\":174,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"0ea1880809e8edfb64bb0abd62ec9fb9cb28cdeb\",\"published_sha256\":\"9308f2f4d7e9d110253fe8574aa42edeabd35a7316ab740d9e5e6ac0ee5498a2\",\"sha256\":\"9308f2f4d7e9d110253fe8574aa42edeabd35a7316ab740d9e5e6ac0ee5498a2\",\"within_read_limit\":true},\"portal/assets.py\":{\"bytes\":911,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"c4b22d1d1535588cc81196785714451a767d5968\",\"published_sha256\":\"ce231cb3af3460166ef2a23c1456e3f704e44d9f19db42ce030af8a4bea71019\",\"sha256\":\"ce231cb3af3460166ef2a23c1456e3f704e44d9f19db42ce030af8a4bea71019\",\"within_read_limit\":true},\"portal/tasks.py\":{\"bytes\":192,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"5b1c254ed5cac283212c30f832ac24b2c62724b6\",\"published_sha256\":\"8b4402ff2ac1c8603bc9c0821ca16b3b6d610facad7eccf76b83076ee912f0b2\",\"sha256\":\"8b4402ff2ac1c8603bc9c0821ca16b3b6d610facad7eccf76b83076ee912f0b2\",\"within_read_limit\":true},\"portal/templates/portal/home.html\":{\"bytes\":3478,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"80a9f1a49eaf607261e4d320097f723c6bf0a63e\",\"published_sha256\":\"bad177066fedee2f8e427cb81ba9c32db4ae36ce533ce0f2090e60b6970378ae\",\"sha256\":\"bad177066fedee2f8e427cb81ba9c32db4ae36ce533ce0f2090e60b6970378ae\",\"within_read_limit\":true},\"portal/tests.py\":{\"bytes\":1371,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"e1e51cead4ace66a0d337b6a8a7fc0b5a5455ec3\",\"published_sha256\":\"42420399fd48c97ce5ab4872d95b5490e0d3a266df8677d31d0ee1987852c9ff\",\"sha256\":\"42420399fd48c97ce5ab4872d95b5490e0d3a266df8677d31d0ee1987852c9ff\",\"within_read_limit\":true},\"portal/urls.py\":{\"bytes\":260,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"5d116b9a7f60d18f7415b1b34d9e98a544823ba4\",\"published_sha256\":\"164665d9a442ab79bc4c0f250d1e3d76a096b4f93825e9900fab5bde0d53a088\",\"sha256\":\"164665d9a442ab79bc4c0f250d1e3d76a096b4f93825e9900fab5bde0d53a088\",\"within_read_limit\":true},\"portal/views.py\":{\"bytes\":1449,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"83e86fbc4ce799510acc60c9e77dea6789a47690\",\"published_sha256\":\"b1166fa6008792a83701740f560f93a3b74b3203003bc738c35a5f56454c1f14\",\"sha256\":\"b1166fa6008792a83701740f560f93a3b74b3203003bc738c35a5f56454c1f14\",\"within_read_limit\":true},\"requirements.txt\":{\"bytes\":81,\"exists\":true,\"matches_published_baseline\":true,\"mode\":\"100644\",\"object_id\":\"628a66d3d7509d2321f75cae59b46385007f2997\",\"published_sha256\":\"9838729f64d26b126c20f47836bcedfc97262a46059c6f810e088b1b7bf02ffa\",\"sha256\":\"9838729f64d26b126c20f47836bcedfc97262a46059c6f810e088b1b7bf02ffa\",\"within_read_limit\":true}},\"safe_manifest_scope\":\"PUBLISHED_23_SOURCE_FILES\",\"safe_manifest_sha256\":\"2c955c4cf40ccab69ff8df4438f2c8e71e3293fa6fb064f15846bcbd54e632b7\",\"selected_path\":\"/opt/stacks/gitea/data/git/repositories/homelab-admin/hbarhub.git\",\"tracked_file_count\":27,\"tracked_total_bytes\":26067,\"tree_listing_sha256\":\"8119f9a0c680eca043b5d648b8bf90567c90e5a6ae4f503779f4e8b66fcaa954\",\"tree_path_set_sha256\":\"245c3f22584759bed02f493855facb68662333953100f036716afffc1f65e83f\"},\"identity\":{\"expected_hostname\":\"core-apps\",\"hostname_short\":\"core-apps\",\"matches\":true},\"mutation_outcome\":\"NO_MUTATION\",\"port_listener\":{\"addresses_read_from_output\":false,\"errors\":[],\"kernel_tables_read\":2,\"listener_entry_count\":0,\"listener_present\":false,\"port\":8040},\"private_addresses_included\":false,\"probes\":{\"local\":{\"live\":{\"error\":{\"errno\":111,\"message_bytes\":53,\"message_sha256\":\"940a0bc11bd121c0bf597d80167e9cdd8790439157cb53c6db217105c8249f4b\",\"type\":\"ConnectionRefusedError\"},\"ok\":false},\"ready\":{\"error\":{\"errno\":111,\"message_bytes\":53,\"message_sha256\":\"940a0bc11bd121c0bf597d80167e9cdd8790439157cb53c6db217105c8249f4b\",\"type\":\"ConnectionRefusedError\"},\"ok\":false},\"root\":{\"error\":{\"errno\":111,\"message_bytes\":53,\"message_sha256\":\"940a0bc11bd121c0bf597d80167e9cdd8790439157cb53c6db217105c8249f4b\",\"type\":\"ConnectionRefusedError\"},\"ok\":false}},\"public_https\":{\"live\":{\"error\":{\"errno\":1,\"message_bytes\":122,\"message_sha256\":\"4cbab0545ff989953a0087607b1db17b4ca88e632720bc889ffc6ba4d6babc5f\",\"type\":\"SSLCertVerificationError\"},\"ok\":false},\"ready\":{\"error\":{\"errno\":1,\"message_bytes\":122,\"message_sha256\":\"4cbab0545ff989953a0087607b1db17b4ca88e632720bc889ffc6ba4d6babc5f\",\"type\":\"SSLCertVerificationError\"},\"ok\":false},\"root\":{\"error\":{\"errno\":1,\"message_bytes\":122,\"message_sha256\":\"4cbab0545ff989953a0087607b1db17b4ca88e632720bc889ffc6ba4d6babc5f\",\"type\":\"SSLCertVerificationError\"},\"ok\":false}}},\"rc\":0,\"read_only\":true,\"rollback_restored\":null,\"rollback_started\":false,\"sanitized\":true,\"schema\":3,\"secret_files_read\":false,\"secrets_included\":false,\"stack\":{\"classification\":\"TARGET_STACK_ABSENT\",\"current_gitea_match_count\":0,\"expected_file_count\":23,\"git_metadata_only\":{\"exists\":false,\"kind\":null,\"path\":\"/opt/stacks/hbarhub/.git\"},\"published_match_count\":0,\"root\":{\"exists\":false,\"kind\":null,\"path\":\"/opt/stacks/hbarhub\"},\"secret_file_metadata_only\":{\"content_read\":false,\"exists\":false,\"kind\":null,\"path\":\"/opt/stacks/hbarhub/.env\"},\"source_files\":{},\"source_scope\":\"PUBLISHED_23_SOURCE_FILES\"},\"status\":\"OK\",\"unexpected_exception\":{}}\n" -} +{"schema_version":1,"channel":"homelab-runtime","command_id":"CONTEXT-AUTO-20260803T091701Z","status":"OK","rc":0,"host":"pve01","mode":"read-only","component":"cluster-context","started_at_utc":"2026-08-03T09:17:01Z","finished_at_utc":"2026-08-03T09: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 08797ce..0f1004a 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,34 +1,164 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=HBARHUB-READONLY-INVENTORY-V3-20260803T084243Z +COMMAND_ID=CONTEXT-AUTO-[PRIVATE_IP]701Z STATUS=OK RC=0 HOST=pve01 -MODE=verify -COMPONENT=hbarhub-readonly-inventory-v3 -REFERENCE_REGISTER_CHECK=OK -REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e -ERROR_REGISTER_CHECK=OK -ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 -COMMAND_SHA256=cfa3f34538788178e6bf5932eac989cfd0c931e3f32a2a9defdd03fd2ca24e83 -DUPLICATE_FAILED_COMMAND_BLOCKED=false -EXECUTION_STARTED=true -CHANGE_DECLARED=false -RESULT_CONTRACT_VALID=true -RESULT_CONTRACT_STATUS=NOT_APPLICABLE -RESULT_CONTRACT_ERROR=NONE -COMMAND_RC=0 -CHANGES_MADE=false -ROLLBACK_STARTED=false -ROLLBACK_RESTORED=null -MUTATION_OUTCOME=NO_MUTATION -SANITIZED=yes -SECRETS_INCLUDED=no -PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=7b70a290dc7df9007fe86173b4a78b52de6c6ed8036da67ae5aaf34f3efcaed5 -SANITIZED_OUTPUT_SHA256=7b70a290dc7df9007fe86173b4a78b52de6c6ed8036da67ae5aaf34f3efcaed5 +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":"HBARHUB-READONLY-INVENTORY-V3-20260803T084243Z","mutation_outcome":"NO_MUTATION","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} -{"capacity":{"disk":{"available_bytes":76468895744,"total_bytes":126605975552},"memory":{"available_bytes":2762182656,"standard_profile_memory_gate":true,"standard_required_available_bytes":2147483648,"swap_free_bytes":6714781696,"swap_total_bytes":8589930496,"total_bytes":10435301376}},"changes_made":false,"command_audit":[{"duration_ms":5,"output_within_limit":true,"rc":0,"stage":"git-candidate-1-is-bare","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":5,"stdout_sha256":"a17fcf0a2f50e2d495e4f90ce263410edc183add6c62699a2facbccf60410f74","timed_out":false,"tool":"git"},{"duration_ms":3,"output_within_limit":true,"rc":0,"stage":"git-main-head","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":41,"stdout_sha256":"dc0f064e529250268d3ff6232078a19aca8a12b3abc0291e79756ffde77303ed","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-main-tree","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":41,"stdout_sha256":"59f30ea418f3e638f5c0294f375feeda787f7da9acc07ac67f8276032be811a2","timed_out":false,"tool":"git"},{"duration_ms":1,"output_within_limit":true,"rc":0,"stage":"git-branches","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":5,"stdout_sha256":"6403203dd5a0867eb14d104ee8a73730bd72dd9ad92e78d996a6dba0a5dcfc01","timed_out":false,"tool":"git"},{"duration_ms":1,"output_within_limit":true,"rc":0,"stage":"git-main-ls-tree","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":2095,"stdout_sha256":"8119f9a0c680eca043b5d648b8bf90567c90e5a6ae4f503779f4e8b66fcaa954","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-2f754321d62f","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":82,"stdout_sha256":"3870cba2def4ee4e45c8ef33cb7239c6d391a9b57ff17e9b26d7bbdaf03501fa","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-a3046da0d15a","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":419,"stdout_sha256":"0c93f24bb448c384a430b65bebcd54b86b570c62df88aa073e1342f7a3eba5b3","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-dd2c0eb6ea5c","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":477,"stdout_sha256":"9c0be49681f983c329937f486427dbf002b826973a48d5c1851de7f55a6ce1ab","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-b33563055168","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":1429,"stdout_sha256":"3b6de9c4d5c9f76d51280bb395f86e3cf51b69c982ea6a5a8d3740d09739cfff","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-facaded51b7d","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":2980,"stdout_sha256":"65ea3fe0cd0d13651f920a776379876e9202a9614dd0368404d7a24561497efc","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-9a44fc761080","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":2787,"stdout_sha256":"dfa2fc55e610dc5bb341169c24d45aaaf4143a1b8c9d021db37a8a8725cd15ff","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-ff21b6b9a3a3","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":1214,"stdout_sha256":"cf219e2f0ee4be0e4881afc7035afff4c79b167579486ecf2eb601fd925d0e8e","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-3b441db82a6a","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":957,"stdout_sha256":"5b41e7fcb4527eea3e5ab2496ec2239d8021ae8843c302a9f5371d77fdd043a7","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-1b2de4dd3c84","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":65,"stdout_sha256":"8974a9c493587f508e73f358876ade4f3ab0369012b29ffb14280dbe30f721ce","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-ddfb2d760e2d","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":223,"stdout_sha256":"b33bfae9785e01372e6b3c88a5747275013831fa5b323cfc60ada4f361551a47","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-b84b221603f4","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":3614,"stdout_sha256":"662118548cce23f916be7ed66a468255a3405a3430b301bfe5adba4b764a1f88","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-7a60ba4bc1c3","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":165,"stdout_sha256":"ddcebb4348c298dd8047df40cd1698603523f8a4ced6b518ad58f4b724db8cac","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-65d8eefb1783","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":168,"stdout_sha256":"03ee75d6dd996de897b4a1c221584459e3b41c507d21f010d5b0372c4da8a630","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-57f701b24994","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":284,"stdout_sha256":"f9cca66c33a7b629895d0637299fa3aa2396ab6759bcade14ed28a6e2d306b5a","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-2a240c00d383","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":0,"stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-be5aeb6bd421","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":174,"stdout_sha256":"9308f2f4d7e9d110253fe8574aa42edeabd35a7316ab740d9e5e6ac0ee5498a2","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-dab1ce994488","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":911,"stdout_sha256":"ce231cb3af3460166ef2a23c1456e3f704e44d9f19db42ce030af8a4bea71019","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-35edcefc0cbe","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":192,"stdout_sha256":"8b4402ff2ac1c8603bc9c0821ca16b3b6d610facad7eccf76b83076ee912f0b2","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-8fa3b1bcd9fa","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":3478,"stdout_sha256":"bad177066fedee2f8e427cb81ba9c32db4ae36ce533ce0f2090e60b6970378ae","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-82884eece61f","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":1371,"stdout_sha256":"42420399fd48c97ce5ab4872d95b5490e0d3a266df8677d31d0ee1987852c9ff","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-86fd9bdfb2a6","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":260,"stdout_sha256":"164665d9a442ab79bc4c0f250d1e3d76a096b4f93825e9900fab5bde0d53a088","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-92efa686bbd6","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":1449,"stdout_sha256":"b1166fa6008792a83701740f560f93a3b74b3203003bc738c35a5f56454c1f14","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-blob-4d7c51b1efe9","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":81,"stdout_sha256":"9838729f64d26b126c20f47836bcedfc97262a46059c6f810e088b1b7bf02ffa","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-published-baseline-present","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":0,"stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","timed_out":false,"tool":"git"},{"duration_ms":0,"output_within_limit":true,"rc":0,"stage":"git-published-baseline-ancestor","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":0,"stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","timed_out":false,"tool":"git"},{"duration_ms":1,"output_within_limit":true,"rc":0,"stage":"git-commits-ahead","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":2,"stdout_sha256":"9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa","timed_out":false,"tool":"git"},{"duration_ms":10,"output_within_limit":true,"rc":0,"stage":"docker-server-version","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":13,"stdout_sha256":"8484e7b831ba500ccf015246dc0a7b3f98de3c11519b347437ff8e91db018257","timed_out":false,"tool":"docker"},{"duration_ms":28,"output_within_limit":true,"rc":0,"stage":"docker-compose-version","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":9,"stdout_sha256":"9a98539f27de5f629edafed2968b89d8ca06b9b39c9469ed2c22f3ca265bb6f9","timed_out":false,"tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-hbarhub-containers","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":0,"stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","timed_out":false,"tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-hbarhub-networks","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":0,"stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","timed_out":false,"tool":"docker"},{"duration_ms":9,"output_within_limit":true,"rc":0,"stage":"docker-hbarhub-volumes","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":0,"stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","timed_out":false,"tool":"docker"},{"duration_ms":14,"output_within_limit":true,"rc":0,"stage":"docker-hbarhub-images","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":0,"stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","timed_out":false,"tool":"docker"}],"command_id":"HBARHUB-READONLY-INVENTORY-V3-20260803T084243Z","container_environment_requested":false,"control_plane_error":null,"diagnosis":"HBARHUB_CURRENT_STATE_CAPTURED","diagnostic_complete":true,"docker":{"available":true,"compose_version":"2.26.1-4","containers":[],"expected_services":["postgres","redis","scheduler","web","worker"],"images":[],"missing_expected_services":["postgres","redis","scheduler","web","worker"],"networks":[],"present_services":[],"server_version":"26.1.5+dfsg1","unexpected_services":[],"volumes":[]},"duration_ms":190,"failures":[],"gate":"READY_FOR_FRESH_STANDARD_DEPLOYMENT_PLAN_REVIEW","gitea":{"available":true,"branch_names":["main"],"changed_path_count_capped":0,"changed_paths_from_published_baseline":[],"classification":"MAIN_ADVANCED_FROM_PUBLISHED_BASELINE","invalid_utf8_path_count":0,"main_head":"57d2704dc4dc4f1e00c3e1bda67fc0bc2bef6957","main_tree":"7e13a2e1b5ab35046dbe172383a814151c16cce0","published_baseline":{"commit":"57d2704dc4dc4f1e00c3e1bda67fc0bc2bef6957","commit_present":true,"commits_ahead":0,"exact":false,"expected_file_count":23,"file_match_count":23,"is_ancestor_of_current_main":true,"source_archive_sha256":"25fb04b8dd74d4da2f50ba3aef76680b1813799a61fbd26c55bfcc1466cf82ac"},"published_path_candidates":[{"bare_repository":true,"bytes":4096,"exists":true,"gid":1000,"git_rc":0,"kind":"directory","mode":"0755","path":"/opt/stacks/gitea/data/git/repositories/homelab-admin/hbarhub.git","uid":1000},{"exists":false,"kind":null,"path":"/opt/stacks/gitea/data/gitea-repositories/homelab-admin/hbarhub.git"}],"safe_files":{".dockerignore":{"bytes":82,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"a02899f5e398a6deb0181cb71513bde4e65ce411","published_sha256":"3870cba2def4ee4e45c8ef33cb7239c6d391a9b57ff17e9b26d7bbdaf03501fa","sha256":"3870cba2def4ee4e45c8ef33cb7239c6d391a9b57ff17e9b26d7bbdaf03501fa","within_read_limit":true},".env.example":{"bytes":419,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"073a7a135b64d0d5a7cc41047b53b50a7ba07114","published_sha256":"0c93f24bb448c384a430b65bebcd54b86b570c62df88aa073e1342f7a3eba5b3","sha256":"0c93f24bb448c384a430b65bebcd54b86b570c62df88aa073e1342f7a3eba5b3","within_read_limit":true},"Dockerfile":{"bytes":477,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"7209eef3b39c70216015e1b0dbde6e227c9a4907","published_sha256":"9c0be49681f983c329937f486427dbf002b826973a48d5c1851de7f55a6ce1ab","sha256":"9c0be49681f983c329937f486427dbf002b826973a48d5c1851de7f55a6ce1ab","within_read_limit":true},"README.md":{"bytes":1429,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"01cd4fc7cbdabebbca9da603873a4807c1ed5a06","published_sha256":"3b6de9c4d5c9f76d51280bb395f86e3cf51b69c982ea6a5a8d3740d09739cfff","sha256":"3b6de9c4d5c9f76d51280bb395f86e3cf51b69c982ea6a5a8d3740d09739cfff","within_read_limit":true},"compose.yaml":{"bytes":2980,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"fd968f37af5650a3b8b636b1a1bb00b17cef3896","published_sha256":"65ea3fe0cd0d13651f920a776379876e9202a9614dd0368404d7a24561497efc","sha256":"65ea3fe0cd0d13651f920a776379876e9202a9614dd0368404d7a24561497efc","within_read_limit":true},"config/assets.json":{"bytes":2787,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"0dc81b6edf7ee474066ae018f10062659a0ad013","published_sha256":"dfa2fc55e610dc5bb341169c24d45aaaf4143a1b8c9d021db37a8a8725cd15ff","sha256":"dfa2fc55e610dc5bb341169c24d45aaaf4143a1b8c9d021db37a8a8725cd15ff","within_read_limit":true},"docs/ARCHITECTURE.md":{"bytes":1214,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"799999d3c9da253c52fdec41ff97ac08ed464a3a","published_sha256":"cf219e2f0ee4be0e4881afc7035afff4c79b167579486ecf2eb601fd925d0e8e","sha256":"cf219e2f0ee4be0e4881afc7035afff4c79b167579486ecf2eb601fd925d0e8e","within_read_limit":true},"docs/OPERATIONS.md":{"bytes":957,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"1bd3f3d56bcd4f8b69c450012ce93f58ab2c662f","published_sha256":"5b41e7fcb4527eea3e5ab2496ec2239d8021ae8843c302a9f5371d77fdd043a7","sha256":"5b41e7fcb4527eea3e5ab2496ec2239d8021ae8843c302a9f5371d77fdd043a7","within_read_limit":true},"hbarhub/__init__.py":{"bytes":65,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"53f4ccb1d8eb50e131da7b0e3abdd22cf9e0151c","published_sha256":"8974a9c493587f508e73f358876ade4f3ab0369012b29ffb14280dbe30f721ce","sha256":"8974a9c493587f508e73f358876ade4f3ab0369012b29ffb14280dbe30f721ce","within_read_limit":true},"hbarhub/celery.py":{"bytes":223,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"906c8930ea65134fe622c70b9002b7f2f55bae00","published_sha256":"b33bfae9785e01372e6b3c88a5747275013831fa5b323cfc60ada4f361551a47","sha256":"b33bfae9785e01372e6b3c88a5747275013831fa5b323cfc60ada4f361551a47","within_read_limit":true},"hbarhub/settings.py":{"bytes":3614,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"6ef7ad25210fb7c43191bd96cf63a79524d145ac","published_sha256":"662118548cce23f916be7ed66a468255a3405a3430b301bfe5adba4b764a1f88","sha256":"662118548cce23f916be7ed66a468255a3405a3430b301bfe5adba4b764a1f88","within_read_limit":true},"hbarhub/urls.py":{"bytes":165,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"9a10dd4dddeabe5941179a61477a0584ff26bd17","published_sha256":"ddcebb4348c298dd8047df40cd1698603523f8a4ced6b518ad58f4b724db8cac","sha256":"ddcebb4348c298dd8047df40cd1698603523f8a4ced6b518ad58f4b724db8cac","within_read_limit":true},"hbarhub/wsgi.py":{"bytes":168,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"415cafd0c0344a6f6d29efb521e23a649f009ca1","published_sha256":"03ee75d6dd996de897b4a1c221584459e3b41c507d21f010d5b0372c4da8a630","sha256":"03ee75d6dd996de897b4a1c221584459e3b41c507d21f010d5b0372c4da8a630","within_read_limit":true},"manage.py":{"bytes":284,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"9d363e250e1e8ba9febcea3cb8bf3ec7dd361e8d","published_sha256":"f9cca66c33a7b629895d0637299fa3aa2396ab6759bcade14ed28a6e2d306b5a","sha256":"f9cca66c33a7b629895d0637299fa3aa2396ab6759bcade14ed28a6e2d306b5a","within_read_limit":true},"portal/__init__.py":{"bytes":0,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391","published_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","within_read_limit":true},"portal/apps.py":{"bytes":174,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"0ea1880809e8edfb64bb0abd62ec9fb9cb28cdeb","published_sha256":"9308f2f4d7e9d110253fe8574aa42edeabd35a7316ab740d9e5e6ac0ee5498a2","sha256":"9308f2f4d7e9d110253fe8574aa42edeabd35a7316ab740d9e5e6ac0ee5498a2","within_read_limit":true},"portal/assets.py":{"bytes":911,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"c4b22d1d1535588cc81196785714451a767d5968","published_sha256":"ce231cb3af3460166ef2a23c1456e3f704e44d9f19db42ce030af8a4bea71019","sha256":"ce231cb3af3460166ef2a23c1456e3f704e44d9f19db42ce030af8a4bea71019","within_read_limit":true},"portal/tasks.py":{"bytes":192,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"5b1c254ed5cac283212c30f832ac24b2c62724b6","published_sha256":"8b4402ff2ac1c8603bc9c0821ca16b3b6d610facad7eccf76b83076ee912f0b2","sha256":"8b4402ff2ac1c8603bc9c0821ca16b3b6d610facad7eccf76b83076ee912f0b2","within_read_limit":true},"portal/templates/portal/home.html":{"bytes":3478,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"80a9f1a49eaf607261e4d320097f723c6bf0a63e","published_sha256":"bad177066fedee2f8e427cb81ba9c32db4ae36ce533ce0f2090e60b6970378ae","sha256":"bad177066fedee2f8e427cb81ba9c32db4ae36ce533ce0f2090e60b6970378ae","within_read_limit":true},"portal/tests.py":{"bytes":1371,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"e1e51cead4ace66a0d337b6a8a7fc0b5a5455ec3","published_sha256":"42420399fd48c97ce5ab4872d95b5490e0d3a266df8677d31d0ee1987852c9ff","sha256":"42420399fd48c97ce5ab4872d95b5490e0d3a266df8677d31d0ee1987852c9ff","within_read_limit":true},"portal/urls.py":{"bytes":260,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"5d116b9a7f60d18f7415b1b34d9e98a544823ba4","published_sha256":"164665d9a442ab79bc4c0f250d1e3d76a096b4f93825e9900fab5bde0d53a088","sha256":"164665d9a442ab79bc4c0f250d1e3d76a096b4f93825e9900fab5bde0d53a088","within_read_limit":true},"portal/views.py":{"bytes":1449,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"83e86fbc4ce799510acc60c9e77dea6789a47690","published_sha256":"b1166fa6008792a83701740f560f93a3b74b3203003bc738c35a5f56454c1f14","sha256":"b1166fa6008792a83701740f560f93a3b74b3203003bc738c35a5f56454c1f14","within_read_limit":true},"requirements.txt":{"bytes":81,"exists":true,"matches_published_baseline":true,"mode":"100644","object_id":"628a66d3d7509d2321f75cae59b46385007f2997","published_sha256":"9838729f64d26b126c20f47836bcedfc97262a46059c6f810e088b1b7bf02ffa","sha256":"9838729f64d26b126c20f47836bcedfc97262a46059c6f810e088b1b7bf02ffa","within_read_limit":true}},"safe_manifest_scope":"PUBLISHED_23_SOURCE_FILES","safe_manifest_sha256":"2c955c4cf40ccab69ff8df4438f2c8e71e3293fa6fb064f15846bcbd54e632b7","selected_path":"/opt/stacks/gitea/data/git/repositories/homelab-admin/hbarhub.git","tracked_file_count":27,"tracked_total_bytes":26067,"tree_listing_sha256":"8119f9a0c680eca043b5d648b8bf90567c90e5a6ae4f503779f4e8b66fcaa954","tree_path_set_sha256":"245c3f22584759bed02f493855facb68662333953100f036716afffc1f65e83f"},"identity":{"expected_hostname":"core-apps","hostname_short":"core-apps","matches":true},"mutation_outcome":"NO_MUTATION","port_listener":{"addresses_read_from_output":false,"errors":[],"kernel_tables_read":2,"listener_entry_count":0,"listener_present":false,"port":8040},"private_addresses_included":false,"probes":{"local":{"live":{"error":{"errno":111,"message_bytes":53,"message_sha256":"940a0bc11bd121c0bf597d80167e9cdd8790439157cb53c6db217105c8249f4b","type":"ConnectionRefusedError"},"ok":false},"ready":{"error":{"errno":111,"message_bytes":53,"message_sha256":"940a0bc11bd121c0bf597d80167e9cdd8790439157cb53c6db217105c8249f4b","type":"ConnectionRefusedError"},"ok":false},"root":{"error":{"errno":111,"message_bytes":53,"message_sha256":"940a0bc11bd121c0bf597d80167e9cdd8790439157cb53c6db217105c8249f4b","type":"ConnectionRefusedError"},"ok":false}},"public_https":{"live":{"error":{"errno":1,"message_bytes":122,"message_sha256":"4cbab0545ff989953a0087607b1db17b4ca88e632720bc889ffc6ba4d6babc5f","type":"SSLCertVerificationError"},"ok":false},"ready":{"error":{"errno":1,"message_bytes":122,"message_sha256":"4cbab0545ff989953a0087607b1db17b4ca88e632720bc889ffc6ba4d6babc5f","type":"SSLCertVerificationError"},"ok":false},"root":{"error":{"errno":1,"message_bytes":122,"message_sha256":"4cbab0545ff989953a0087607b1db17b4ca88e632720bc889ffc6ba4d6babc5f","type":"SSLCertVerificationError"},"ok":false}}},"rc":0,"read_only":true,"rollback_restored":null,"rollback_started":false,"sanitized":true,"schema":3,"secret_files_read":false,"secrets_included":false,"stack":{"classification":"TARGET_STACK_ABSENT","current_gitea_match_count":0,"expected_file_count":23,"git_metadata_only":{"exists":false,"kind":null,"path":"/opt/stacks/hbarhub/.git"},"published_match_count":0,"root":{"exists":false,"kind":null,"path":"/opt/stacks/hbarhub"},"secret_file_metadata_only":{"content_read":false,"exists":false,"kind":null,"path":"/opt/stacks/hbarhub/.env"},"source_files":{},"source_scope":"PUBLISHED_23_SOURCE_FILES"},"status":"OK","unexpected_exception":{}} +GENERATED_AT_UTC=[PRIVATE_IP]T09:17:01Z +Cluster information +------------------- +Name: homelab +Config Version: 3 +Transport: knet +Secure auth: on +Quorum information +------------------ +Date: Mon 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":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/110","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":511799,"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":511884,"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":511844,"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":511888,"vmid":113},{"cpu":[PRIVATE_IP]7986,"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":511829,"vmid":130},{"cpu":[PRIVATE_IP]82286,"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":511796,"vmid":150},{"cpu":[PRIVATE_IP]293857,"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":511881,"vmid":160},{"cpu":[PRIVATE_IP]24485,"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":511792,"vmid":170},{"cpu":[PRIVATE_IP]03521,"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":511789,"vmid":171},{"cpu":[PRIVATE_IP]66958,"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":511878,"vmid":180},{"cpu":[PRIVATE_IP]741608,"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":511825,"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]12157,"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":511921},{"cgroup-mode":2,"cpu":[PRIVATE_IP]3454,"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":511901},{"cgroup-mode":2,"cpu":[PRIVATE_IP]38302,"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":511847},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve02/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/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":"vztmpl,import,backup,iso","disk":[PRIVATE_IP],"id":"storage/pve02/local","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"vztmpl,import,backup,iso","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,backup,iso","disk":[PRIVATE_IP],"id":"storage/pve03/local","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"id":"network/pve02/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve02","status":"ok","type":"network"},{"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"}] +Name Type Status Total (KiB) Used (KiB) Available (KiB) % +local dir active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 13.96% +local-lvm lvmthin active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 27.30% + 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 +Mon [PRIVATE_IP] 12:17:26 MSK 23s Mon [PRIVATE_IP] 12:16:26 MSK 36s ago homelab-cluster-admin-webpanel-sync.timer homelab-cluster-admin-webpanel-sync.service +Mon [PRIVATE_IP] 12:17:26 MSK 23s Mon [PRIVATE_IP] 12:16:26 MSK 36s ago homelab-private-vpn-hosts-health.timer homelab-private-vpn-hosts-health.service +Mon [PRIVATE_IP] 12:17:38 MSK 35s Mon [PRIVATE_IP] 12:12:25 MSK 4min 36s ago homelab-health-metrics.timer homelab-health-metrics.service +Mon [PRIVATE_IP] 12:17:41 MSK 38s Mon [PRIVATE_IP] 12:12:14 MSK 4min 47s ago homelab-crypto-portfolio-chart-health.timer homelab-crypto-portfolio-chart-health.service +Mon [PRIVATE_IP] 12:17:59 MSK 57s Mon [PRIVATE_IP] 12:16:57 MSK 5s ago homelab-router-watchdog.timer homelab-router-watchdog.service +Mon [PRIVATE_IP] 12:18:26 MSK 1min 24s Mon [PRIVATE_IP] 12:13:26 MSK 3min 35s ago homelab-smartctl-textfile.timer homelab-smartctl-textfile.service +Mon [PRIVATE_IP] 12:18:41 MSK 1min 39s Mon [PRIVATE_IP] 12:16:39 MSK 22s ago homelab-cluster-admin-inventory-sync.timer homelab-cluster-admin-inventory-sync.service +Mon [PRIVATE_IP] 12:19:26 MSK 2min 23s Mon [PRIVATE_IP] 12:04:26 MSK 12min ago homelab-disk-space-health.timer homelab-disk-space-health.service +Mon [PRIVATE_IP] 12:20:21 MSK 3min 19s Mon [PRIVATE_IP] 12:05:21 MSK 11min ago homelab-pve03-staging-capacity-health.timer homelab-pve03-staging-capacity-health.service +Mon [PRIVATE_IP] 12:20:21 MSK 3min 19s Mon [PRIVATE_IP] 12:05:21 MSK 11min ago prometheus-node-exporter-nvme.timer prometheus-node-exporter-nvme.service +Mon [PRIVATE_IP] 12:20:26 MSK 3min 23s Mon [PRIVATE_IP] 12:15:26 MSK 1min 36s ago netbird-peers-health.timer netbird-peers-health.service +Mon [PRIVATE_IP] 12:26:14 MSK 9min Mon [PRIVATE_IP] 12:16:14 MSK 47s ago skladchik-reports-monitor-supervisor.timer skladchik-reports-monitor-supervisor.service +Mon [PRIVATE_IP] 12:29:41 MSK 12min Mon [PRIVATE_IP] 11:58:47 MSK 18min ago homelab-reference-refresh.timer homelab-reference-refresh.service +Mon [PRIVATE_IP] 12:30:00 MSK 12min Mon [PRIVATE_IP] 12:15:14 MSK 1min 47s ago homelab-incident-journal.timer homelab-incident-journal.service +Mon [PRIVATE_IP] 12:30:15 MSK 13min Mon [PRIVATE_IP] 12:15:47 MSK 1min 15s ago homelab-external-probe-vps-health.timer homelab-external-probe-vps-health.service +Mon [PRIVATE_IP] 12:30:29 MSK 13min Mon [PRIVATE_IP] 12:16:36 MSK 26s ago homelab-duty-admin-v2.timer homelab-duty-admin-v2.service +Mon [PRIVATE_IP] 12:30:32 MSK 13min Mon [PRIVATE_IP] 12:01:14 MSK 15min ago homelab-mkdocs-auto-refresh.timer homelab-mkdocs-auto-refresh.service +Mon [PRIVATE_IP] 12:31:14 MSK 14min Mon [PRIVATE_IP] 12:16:14 MSK 47s ago prometheus-node-exporter-apt.timer prometheus-node-exporter-apt.service +Mon [PRIVATE_IP] 12:31:24 MSK 14min Mon [PRIVATE_IP] 12:15:14 MSK 1min 47s ago homelab-forum-snuffleupagus-health.timer homelab-forum-snuffleupagus-health.service +Mon [PRIVATE_IP] 12:38:49 MSK 21min Mon [PRIVATE_IP] 05:11:57 MSK 7h ago apt-daily.timer apt-daily.service +Mon [PRIVATE_IP] 14:08:25 MSK 1h 51min Mon [PRIVATE_IP] 08:08:25 MSK 4h 8min ago homelab-vps-identity-audit.timer homelab-vps-identity-audit.service +Mon [PRIVATE_IP] 14:20:25 MSK 2h 3min Sun [PRIVATE_IP] 14:20:25 MSK 21h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service +Tue [PRIVATE_IP] 00:00:00 MSK 11h Mon [PRIVATE_IP] 00:00:06 MSK 12h ago dpkg-db-backup.timer dpkg-db-backup.service +Tue [PRIVATE_IP] 00:05:03 MSK 11h Mon [PRIVATE_IP] 00:15:28 MSK 12h ago homelab-storage-capacity.timer homelab-storage-capacity.service +Tue [PRIVATE_IP] 00:07:51 MSK 11h Mon [PRIVATE_IP] 00:02:07 MSK 12h ago homelab-evidence-catalog.timer homelab-evidence-catalog.service +Tue [PRIVATE_IP] 00:08:11 MSK 11h Mon [PRIVATE_IP] 00:11:14 MSK 12h ago homelab-quality-gate.timer homelab-quality-gate.service +Tue [PRIVATE_IP] 00:08:26 MSK 11h Mon [PRIVATE_IP] 00:49:14 MSK 11h ago logrotate.timer logrotate.service +Tue [PRIVATE_IP] 00:13:28 MSK 11h Mon [PRIVATE_IP] 00:05:50 MSK 12h ago homelab-docker-health.timer homelab-docker-health.service +Tue [PRIVATE_IP] 00:14:17 MSK 11h Mon [PRIVATE_IP] 10:50:38 MSK 1h 26min ago man-db.timer man-db.service +Tue [PRIVATE_IP] 01:23:37 MSK 13h Mon [PRIVATE_IP] 01:28:07 MSK 10h ago pve-daily-update.timer pve-daily-update.service +Tue [PRIVATE_IP] 03:50:00 MSK 15h Mon [PRIVATE_IP] 03:50:07 MSK 8h ago filebrowser-offhost-sync.timer filebrowser-offhost-sync.service +Tue [PRIVATE_IP] 04:41:55 MSK 16h Mon [PRIVATE_IP] 04:50:29 MSK 7h ago homelab-edge-vm-offhost-freshness.timer homelab-edge-vm-offhost-freshness.service +Tue [PRIVATE_IP] 05:14:52 MSK 16h Mon [PRIVATE_IP] 05:06:55 MSK 7h ago homelab-sops-edge-secret-coverage.timer homelab-sops-edge-secret-coverage.service +Tue [PRIVATE_IP] 06:52:59 MSK 18h Mon [PRIVATE_IP] 06:53:14 MSK 5h 23min ago apt-daily-upgrade.timer apt-daily-upgrade.service +Tue [PRIVATE_IP] 07:03:42 MSK 18h Mon [PRIVATE_IP] 07:05:50 MSK 5h 11min ago homelab-drift-check.timer homelab-drift-check.service +Tue [PRIVATE_IP] 07:39:24 MSK 19h Mon [PRIVATE_IP] 07:21:25 MSK 4h 55min ago homelab-service-registry-check.timer homelab-service-registry-check.service +Tue [PRIVATE_IP] 07:45:52 MSK 19h Mon [PRIVATE_IP] 07:50:14 MSK 4h 26min ago homelab-alerting-health.timer homelab-alerting-health.service +Tue [PRIVATE_IP] 07:54:16 MSK 19h Mon [PRIVATE_IP] 07:52:50 MSK 4h 24min ago homelab-desired-state-sync.timer homelab-desired-state-sync.service +Tue [PRIVATE_IP] 07:55:52 MSK 19h Mon [PRIVATE_IP] 07:50:25 MSK 4h 26min ago homelab-dependency-map-check.timer homelab-dependency-map-check.service +Tue [PRIVATE_IP] 07:56:48 MSK 19h Mon [PRIVATE_IP] 07:46:38 MSK 4h 30min ago homelab-runbook-generate.timer homelab-runbook-generate.service +Tue [PRIVATE_IP] 07:59:39 MSK 19h Mon [PRIVATE_IP] 08:11:07 MSK 4h 5min ago homelab-duty-admin-report.timer homelab-duty-admin-report.service +Tue [PRIVATE_IP] 08:03:48 MSK 19h Mon [PRIVATE_IP] 08:19:07 MSK 3h 57min ago homelab-overall-health.timer homelab-overall-health.service +Tue [PRIVATE_IP] 08:12:24 MSK 19h Mon [PRIVATE_IP] 08:23:50 MSK 3h 53min ago homelab-final-readiness-gate.timer homelab-final-readiness-gate.service +Tue [PRIVATE_IP] 08:16:32 MSK 19h Mon [PRIVATE_IP] 08:21:25 MSK 3h 55min ago homelab-kuma-monitor-policy.timer homelab-kuma-monitor-policy.service +Tue [PRIVATE_IP] 08:36:17 MSK 20h Mon [PRIVATE_IP] 08:42:03 MSK 3h 34min ago homelab-secret-exposure-guard.timer homelab-secret-exposure-guard.service +Tue [PRIVATE_IP] 08:36:39 MSK 20h Mon [PRIVATE_IP] 08:32:47 MSK 3h 44min ago homelab-capacity-risk.timer homelab-capacity-risk.service +Tue [PRIVATE_IP] 08:50:00 MSK 20h Mon [PRIVATE_IP] 08:47:23 MSK 3h 29min ago homelab-golden-state-index.timer homelab-golden-state-index.service +Tue [PRIVATE_IP] 08:52:29 MSK 20h Mon [PRIVATE_IP] 08:53:07 MSK 3h 23min ago homelab-cluster-passport.timer homelab-cluster-passport.service +Tue [PRIVATE_IP] 08:54:34 MSK 20h Mon [PRIVATE_IP] 08:51:27 MSK 3h 25min ago immich-media-offhost-sync.timer immich-media-offhost-sync.service +Tue [PRIVATE_IP] 09:06:42 MSK 20h Mon [PRIVATE_IP] 09:20:50 MSK 2h 56min ago memos-offhost-sync.timer memos-offhost-sync.service +Tue [PRIVATE_IP] 10:15:00 MSK 21h Mon [PRIVATE_IP] 10:15:05 MSK 2h 1min ago skladchik-reports-monitor-monthly-selftest-watch.timer skladchik-reports-monitor-monthly-selftest-watch.service +Sun [PRIVATE_IP] 03:10:38 MSK 5 days Sun [PRIVATE_IP] 03:10:25 MSK 1 day 9h ago xfs_scrub_all.timer xfs_scrub_all.service +Sun [PRIVATE_IP] 03:10:48 MSK 5 days Sun [PRIVATE_IP] 03:10:50 MSK 1 day 9h ago e2scrub_all.timer e2scrub_all.service +Mon [PRIVATE_IP] 00:03:56 MSK 6 days Mon [PRIVATE_IP] 00:11:50 MSK 12h ago homelab-secret-sanity.timer homelab-secret-sanity.service +Mon [PRIVATE_IP] 01:11:21 MSK 6 days Mon [PRIVATE_IP] 01:17:56 MSK 10h 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