Live, personal Home Assistant configuration shared for **browsing and inspiration**. This is not a turnkey clone-and-run setup; borrow ideas, adapt entity IDs/secrets, and test in your own environment.
Live, personal Home Assistant configuration shared for **browsing and inspiration**. This is not a turnkey clone-and-run setup; borrow ideas, adapt entity IDs/secrets, and test in your own environment.
### Latest video: How to use Home Assistant and Tugtainer for Docker Updates
### Latest video: Using Codex to Clean Up Home Assistant Entities
[](https://youtu.be/4NNOkXzUyYw)
[](https://youtu.be/aceV7ObKJVA)
Tugtainer handles routine image checks, recreates, health results, and cleanup across the Docker estate. Home Assistant receives every report as a persistent notification and opens a controlled review lane for updates that need Compose-aware recovery and service-specific proof. [](https://youtu.be/4NNOkXzUyYw) [](https://www.vcloudinfo.com/2026/07/home-assistant-tugtainer-docker-updates.html). Browse the implementation in [](config/packages/tugtainer_updates.yaml) and the [infrastructure dashboard](config/dashboards/infrastructure).
Codex compared the Home Assistant entity registry with Proxmox, Docker, and repository references before removing stale Portainer entities or renaming active Glances sensors. The cleanup also rebuilt recorder and logbook exclusions while preserving aggregate Docker outage history. [](https://youtu.be/aceV7ObKJVA) [](https://www.vcloudinfo.com/2026/07/using-codex-clean-up-home-assistant-entities.html). Browse [](config/packages/docker_infrastructure.yaml), [](config/packages/infrastructure.yaml), [recorder](config/recorder.yaml), and [logbook](config/logbook.yaml).
### Quick navigation
### Quick navigation
- You are here: `/` (root repo guide)
- You are here: `/` (root repo guide)
@ -49,6 +49,7 @@ Tugtainer handles routine image checks, recreates, health results, and cleanup a
- Garage routines and entry lighting: [](config/packages/garadget.yaml), [](config/automation/garage_entry_light.yaml), [](https://youtu.be/wFO0H5zgnzk)
- Garage routines and entry lighting: [](config/packages/garadget.yaml), [](config/automation/garage_entry_light.yaml), [](https://youtu.be/wFO0H5zgnzk)
| Duplicati | [duplicati/duplicati](https://github.com/duplicati/duplicati) | Off-box, versioned backups for HA config, media, and infrastructure compose/config trees. |
| Duplicati | [duplicati/duplicati](https://github.com/duplicati/duplicati) | Off-box, versioned backups for HA config, media, and infrastructure compose/config trees. |
| Dozzle | [amir20/dozzle](https://github.com/amir20/dozzle) | Lightweight Docker log viewer (useful for quick tailing across the homelab stacks). |
| Cloudflared | [cloudflare/cloudflared](https://hub.docker.com/r/cloudflare/cloudflared) | Secure tunnel/edge access to Home Assistant without opening inbound ports. |
| Cloudflared | [cloudflare/cloudflared](https://hub.docker.com/r/cloudflare/cloudflared) | Secure tunnel/edge access to Home Assistant without opening inbound ports. |
| WordPress | [wordpress](https://hub.docker.com/_/wordpress) | Hosts [vCloudInfo.com](https://www.vcloudinfo.com) for docs, how-tos, videos, and long-form writeups that accompany this config. |
| WordPress | [wordpress](https://hub.docker.com/_/wordpress) | Hosts [vCloudInfo.com](https://www.vcloudinfo.com) for docs, how-tos, videos, and long-form writeups that accompany this config. |
@ -33,6 +33,7 @@ Live view of the `config/` directory my production Home Assistant instance loads
### How the config is organized
### How the config is organized
- **Packages (`packages/`)**– complete subsystems that bundle sensors, switches, automations, scripts, and lovelace assets for a single feature (alarm, garage, water shutoff, etc.).
- **Packages (`packages/`)**– complete subsystems that bundle sensors, switches, automations, scripts, and lovelace assets for a single feature (alarm, garage, water shutoff, etc.).
- **Container updates**– [](packages/tugtainer_updates.yaml) logs Tugtainer reports into Home Assistant persistent notifications and dispatches controlled review work. [](https://youtu.be/4NNOkXzUyYw) [](https://www.vcloudinfo.com/2026/07/home-assistant-tugtainer-docker-updates.html)
- **Container updates**– [](packages/tugtainer_updates.yaml) logs Tugtainer reports into Home Assistant persistent notifications and dispatches controlled review work. [](https://youtu.be/4NNOkXzUyYw) [](https://www.vcloudinfo.com/2026/07/home-assistant-tugtainer-docker-updates.html)
- **Entity cleanup**– [](packages/docker_infrastructure.yaml), [](packages/infrastructure.yaml), [recorder](recorder.yaml), and [logbook](logbook.yaml) show how the Portainer and Glances audit kept proven history while removing stale registry noise. [](https://youtu.be/aceV7ObKJVA) [](https://www.vcloudinfo.com/2026/07/using-codex-clean-up-home-assistant-entities.html)
- **Automations (`automation/`)**– event-driven YAML broken out by area or device; the legacy `automations.yaml` remains for UI-created flows.
- **Automations (`automation/`)**– event-driven YAML broken out by area or device; the legacy `automations.yaml` remains for UI-created flows.
- **Scripts & scenes (`script/`, `scene/`)**– curated lighting, notification, and AGENT engineer handoff helpers used by presence, holiday, seasonal, and infrastructure routines.
- **Scripts & scenes (`script/`, `scene/`)**– curated lighting, notification, and AGENT engineer handoff helpers used by presence, holiday, seasonal, and infrastructure routines.
- **Templates (`templates/`)**– Jinja helpers and speech templates reused by the notify/speech engines.
- **Templates (`templates/`)**– Jinja helpers and speech templates reused by the notify/speech engines.
@ -51,7 +52,7 @@ Live view of the `config/` directory my production Home Assistant instance loads
| Dashboards & Media | UI chrome, floorplans, sound bites, and automation assets. | [dashboards/kiosk](dashboards/kiosk), [topology diagram](../README.md#network-diagram), [media/](media) |
| Dashboards & Media | UI chrome, floorplans, sound bites, and automation assets. | [dashboards/kiosk](dashboards/kiosk), [topology diagram](../README.md#network-diagram), [media/](media) |
| Seasonal Audio | Cuckoo clock with Halloween and Christmas sound packs. | [](automation/System/CucKoo_Clock.yaml) |
| Seasonal Audio | Cuckoo clock with Halloween and Christmas sound packs. | [](automation/System/CucKoo_Clock.yaml) |
The latest walkthrough shows a two-lane Docker update workflow: Tugtainer handles routine checks and recreates, Home Assistant keeps every report visible, and Codex handles exceptions through Compose with service-specific proof. [](https://youtu.be/4NNOkXzUyYw) [](https://www.vcloudinfo.com/2026/07/home-assistant-tugtainer-docker-updates.html). YAML lives in [](packages/tugtainer_updates.yaml), with the supporting [infrastructure dashboard](dashboards/infrastructure). The earlier water-softener, HVAC, Powerwall, Codex reset-credit, leak-detection, kiosk, and LLM Vision walkthroughs are still available with examples in [](packages/maintenance_log.yaml), [](packages/climate.yaml), [](packages/powerwall.yaml), [](packages/bearclaw.yaml), [](packages/phynplus.yaml), [](packages/kiosk_tablet.yaml), and [](packages/llmvision.yaml).
The latest walkthrough shows how Codex audited Home Assistant entities against Proxmox, Docker, and repository references before removing stale Portainer records or migrating active Glances names. [](https://youtu.be/aceV7ObKJVA) [](https://www.vcloudinfo.com/2026/07/using-codex-clean-up-home-assistant-entities.html). The implementation spans [](packages/docker_infrastructure.yaml), [](packages/infrastructure.yaml), [recorder](recorder.yaml), and [logbook](logbook.yaml). The earlier Tugtainer, water-softener, HVAC, Powerwall, Codex reset-credit, leak-detection, kiosk, and LLM Vision walkthroughs remain available in their featured package rows.
### Gear tied to these automations (affiliate links)
### Gear tied to these automations (affiliate links)
Only including devices that have active references in the files above or an open implementation issue.
Only including devices that have active references in the files above or an open implementation issue.
| [](mariadb_monitoring.yaml) | MariaDB health sensors and Lovelace dashboard snippet for recorder stats. | `sensor.mariadb_status`, `sensor.database_size` |
| [](mariadb_monitoring.yaml) | MariaDB health sensors and Lovelace dashboard snippet for recorder stats. | `sensor.mariadb_status`, `sensor.database_size` |
| [](llmvision.yaml) | Vision-backed garage-can and front-door package checks with rate-limited, downscaled OpenAI calls for package detection. [](https://youtu.be/nAhCezFetvI) | `input_button.llmvision_*`, `binary_sensor.front_door_packages_present`, `llmvision.stream_analyzer` |
| [](llmvision.yaml) | Vision-backed garage-can and front-door package checks with rate-limited, downscaled OpenAI calls for package detection. [](https://youtu.be/nAhCezFetvI) | `input_button.llmvision_*`, `binary_sensor.front_door_packages_present`, `llmvision.stream_analyzer` |
| [](docker_infrastructure.yaml) | Docker host patching telemetry, container/stack Repairs automation, retired Portainer repair cleanup, 20-minute Joanna escalation for persistent container outages including stuck `restarting`/`created` states, and weekly scheduled prune actions across docker_10/14/17/69; the dedicated codex_appliance VM is monitored through BearClaw status telemetry. | `sensor.docker_*_apt_status`, `binary_sensor.*_stack_status`, `sensor.docker_stacks_down_count`, `repairs.create`, `repairs.remove`, `script.joanna_dispatch` |
| [](docker_infrastructure.yaml) | Docker host patching telemetry, container/stack Repairs automation, retired Portainer repair cleanup, 20-minute Joanna escalation for persistent container outages including stuck `restarting`/`created` states, and weekly scheduled prune actions across docker_10/14/17/69; the dedicated codex_appliance VM is monitored through BearClaw status telemetry. [](https://youtu.be/aceV7ObKJVA) [](https://www.vcloudinfo.com/2026/07/using-codex-clean-up-home-assistant-entities.html) | `sensor.docker_*_apt_status`, `binary_sensor.*_stack_status`, `sensor.docker_stacks_down_count`, `repairs.create`, `repairs.remove`, `script.joanna_dispatch` |
| [](proxmox.yaml) | Proxmox update detection with Repairs, 02:15 Joanna patch orchestration, final per-host HA success notifications, kernel-refresh handoff hints, runtime and disk pressure monitoring, plus nightly Frigate reboot. | `binary_sensor.node_proxmox*_updates_packages`, `sensor.node_proxmox*_total_updates`, `persistent_notification.create`, `script.joanna_dispatch`, `binary_sensor.proxmox*_runtime_healthy`, `sensor.proxmox*_disk_used_percentage`, `button.qemu_docker2_101_reboot` |
| [](proxmox.yaml) | Proxmox update detection with Repairs, 02:15 Joanna patch orchestration, final per-host HA success notifications, kernel-refresh handoff hints, runtime and disk pressure monitoring, plus nightly Frigate reboot. | `binary_sensor.node_proxmox*_updates_packages`, `sensor.node_proxmox*_total_updates`, `persistent_notification.create`, `script.joanna_dispatch`, `binary_sensor.proxmox*_runtime_healthy`, `sensor.proxmox*_disk_used_percentage`, `button.qemu_docker2_101_reboot` |
| [](synology_dsm.yaml) | Synology DSM integration health normalization for Carlo-NAS01 and Carlo-NVR, with outage-aware Joanna-first handling for lone post-outage volume warnings and Repairs escalation for persistent or non-outage problems. | `binary_sensor.carlo_*_synology_problem`, `sensor.carlo_*_synology_problem_summary`, `binary_sensor.powerwall_grid_status`, `repairs.create`, `script.joanna_dispatch` |
| [](synology_dsm.yaml) | Synology DSM integration health normalization for Carlo-NAS01 and Carlo-NVR, with outage-aware Joanna-first handling for lone post-outage volume warnings and Repairs escalation for persistent or non-outage problems. | `binary_sensor.carlo_*_synology_problem`, `sensor.carlo_*_synology_problem_summary`, `binary_sensor.powerwall_grid_status`, `repairs.create`, `script.joanna_dispatch` |
| [](infrastructure.yaml) | Normalized WAN/DNS/backup/domain/cert health, Nebula Sync and promoted IoT primary/backup Pi-hole consistency monitoring with Joanna dispatch, Glances-backed Docker host disk pressure with Joanna-only warning cleanup and critical Repairs, immediate website-down Repairs/Joanna dispatch plus uptime/latency SLO signals, nightly backup verification, and monthly Joanna HA log hygiene review with public-safe GitHub issue follow-up. | `sensor.infra_nebula_sync_dns_consistency`, `sensor.infra_pihole_iot_dns_consistency`, `binary_sensor.infra_nebula_sync_degraded`, `binary_sensor.infra_pihole_iot_dns_degraded`, `sensor.docker_*_disk_used_percentage`, `automation.infra_nebula_sync_health_dispatch`, `automation.infra_pihole_iot_dns_drift_dispatch`, `automation.docker_host_disk_pressure_monitor`, `automation.infra_website_down_repair_and_dispatch`, `binary_sensor.infra_website_uptime_slo_breach`, `binary_sensor.infra_website_latency_degraded`, `automation.infra_backup_nightly_verification`, `script.joanna_dispatch` |
| [](infrastructure.yaml) | Normalized WAN/DNS/backup/domain/cert health, Nebula Sync and promoted IoT primary/backup Pi-hole consistency monitoring with Joanna dispatch, Glances-backed Docker host disk pressure with Joanna-only warning cleanup and critical Repairs, immediate website-down Repairs/Joanna dispatch plus uptime/latency SLO signals, nightly backup verification, and monthly Joanna HA log hygiene review with public-safe GitHub issue follow-up. [](https://youtu.be/aceV7ObKJVA) [](https://www.vcloudinfo.com/2026/07/using-codex-clean-up-home-assistant-entities.html) | `sensor.infra_nebula_sync_dns_consistency`, `sensor.infra_pihole_iot_dns_consistency`, `binary_sensor.infra_nebula_sync_degraded`, `binary_sensor.infra_pihole_iot_dns_degraded`, `sensor.docker_*_disk_used_percentage`, `automation.infra_nebula_sync_health_dispatch`, `automation.infra_pihole_iot_dns_drift_dispatch`, `automation.docker_host_disk_pressure_monitor`, `automation.infra_website_down_repair_and_dispatch`, `binary_sensor.infra_website_uptime_slo_breach`, `binary_sensor.infra_website_latency_degraded`, `automation.infra_backup_nightly_verification`, `script.joanna_dispatch` |
| [](onenote_indexer.yaml) | Dedicated-appliance OneNote indexer health/status monitoring for Joanna, explicit index-health confirmation, failure-repair automation, and a daily duplicate-delete maintenance request. | `sensor.onenote_indexer_last_job_status`, `binary_sensor.onenote_indexer_last_job_successful`, `binary_sensor.onenote_indexer_index_healthy` |
| [](onenote_indexer.yaml) | Dedicated-appliance OneNote indexer health/status monitoring for Joanna, explicit index-health confirmation, failure-repair automation, and a daily duplicate-delete maintenance request. | `sensor.onenote_indexer_last_job_status`, `binary_sensor.onenote_indexer_last_job_successful`, `binary_sensor.onenote_indexer_index_healthy` |
| [](mqtt_status.yaml) | Command-line MQTT broker reachability probe with Spook Repairs escalation and Joanna troubleshooting dispatch on outage. | `binary_sensor.mqtt_status_raw`, `binary_sensor.mqtt_broker_problem`, `repairs.create`, `rest_command.bearclaw_command` |
| [](mqtt_status.yaml) | Command-line MQTT broker reachability probe with Spook Repairs escalation and Joanna troubleshooting dispatch on outage. | `binary_sensor.mqtt_status_raw`, `binary_sensor.mqtt_broker_problem`, `repairs.create`, `rest_command.bearclaw_command` |
| [](mariadb.yaml) | MariaDB recorder health and capacity snapshots with hourly live metrics, weekly admin/recorder polling, and stats-ready numeric sensors. | `sensor.mariadb_status`, `sensor.database_size` |
| [](mariadb.yaml) | MariaDB recorder health and capacity snapshots with hourly live metrics, weekly admin/recorder polling, and stats-ready numeric sensors. | `sensor.mariadb_status`, `sensor.database_size` |
@ -62,7 +62,7 @@ Live collection of plug-and-play Home Assistant packages. Each YAML file in this
| [](bearclaw.yaml) | Joanna/BearClaw bridge automations that forward Telegram commands to codex_appliance, include LLM-first routing context for freeform text, relay replies back, ingest `/api/bearclaw/status` telemetry, and expose dispatch, QMD/memory-index, plus Codex reset-credit expiry sensors and Repairs for Infrastructure dashboards. [](https://youtu.be/7wKhtrvtyiI) [](https://www.vcloudinfo.com/2026/06/track-codex-resets-home-assistant.html) | `rest_command.bearclaw_*`, `sensor.bearclaw_status_telemetry`, `sensor.joanna_*`, `sensor.codex_reset_*`, `binary_sensor.joanna_*`, `binary_sensor.codex_reset_credit_expiring_soon`, `automation.bearclaw_*`, `automation.codex_reset_credit_expiry_repair`, `repairs.create`, `repairs.remove`, `script.send_to_logbook` |
| [](bearclaw.yaml) | Joanna/BearClaw bridge automations that forward Telegram commands to codex_appliance, include LLM-first routing context for freeform text, relay replies back, ingest `/api/bearclaw/status` telemetry, and expose dispatch, QMD/memory-index, plus Codex reset-credit expiry sensors and Repairs for Infrastructure dashboards. [](https://youtu.be/7wKhtrvtyiI) [](https://www.vcloudinfo.com/2026/06/track-codex-resets-home-assistant.html) | `rest_command.bearclaw_*`, `sensor.bearclaw_status_telemetry`, `sensor.joanna_*`, `sensor.codex_reset_*`, `binary_sensor.joanna_*`, `binary_sensor.codex_reset_credit_expiring_soon`, `automation.bearclaw_*`, `automation.codex_reset_credit_expiry_repair`, `repairs.create`, `repairs.remove`, `script.send_to_logbook` |
| [](telegram_bot.yaml) | Legacy Telegram transport marker for BearClaw; the shared `joanna_send_telegram` helper now forwards through the codex_appliance direct Telegram API. | `rest_command.bearclaw_telegram_send`, `script.joanna_send_telegram` |
| [](telegram_bot.yaml) | Legacy Telegram transport marker for BearClaw; the shared `joanna_send_telegram` helper now forwards through the codex_appliance direct Telegram API. | `rest_command.bearclaw_telegram_send`, `script.joanna_send_telegram` |
| [](phynplus.yaml) | Phyn shutoff automations with leak-test guard, Activity Feed context, Repairs tracking, and critical push recovery when the valve closes. [](https://youtu.be/xbhgWnomFYI) | `valve.phyn_shutoff_valve`, `binary_sensor.phyn_leak_test_running`, `script.phyn_send_actionable_leak_notification`, `repairs.create` |
| [](phynplus.yaml) | Phyn shutoff automations with leak-test guard, Activity Feed context, Repairs tracking, and critical push recovery when the valve closes. [](https://youtu.be/xbhgWnomFYI) | `valve.phyn_shutoff_valve`, `binary_sensor.phyn_leak_test_running`, `script.phyn_send_actionable_leak_notification`, `repairs.create` |
| [](water_delivery.yaml) | ReadyRefresh delivery date helper with night-before plus day-before garage door Alexa reminders, helper-change audit logging, and Telegram confirmations. | `input_datetime.water_delivery_date`, `script.send_to_logbook`, `script.joanna_send_telegram`, `notify.alexa_media_garage` |
| [](water_delivery.yaml) | ReadyRefresh delivery date helper with Joanna email-triage updates, night-before plus day-before garage door Alexa reminders, helper-change audit logging, and Telegram confirmations. | `input_datetime.water_delivery_date`, `script.send_to_logbook`, `script.joanna_send_telegram`, `notify.alexa_media_garage` |
| [](rachio.yaml) + [](../dashboards/overview/views/10_sprinklers.yaml) | Rachio sprinkler status with active-zone summaries, trigger-derived last-run duration sensors, dashboard controls, and Activity Feed audit logging without input_* helpers. | `sensor.rachio_controller_status`, `sensor.rachio_last_run_summary`, `sensor.rachio_*_last_run`, `script.rachio_*`, `automation.rachio_activity_feed` |
| [](rachio.yaml) + [](../dashboards/overview/views/10_sprinklers.yaml) | Rachio sprinkler status with active-zone summaries, trigger-derived last-run duration sensors, dashboard controls, and Activity Feed audit logging without input_* helpers. | `sensor.rachio_controller_status`, `sensor.rachio_last_run_summary`, `sensor.rachio_*_last_run`, `script.rachio_*`, `automation.rachio_activity_feed` |
| [](vacation_mode.yaml) | Auto-enable vacation mode after 24 hours away or no bed use, track sitter analytics/secure-house checks, stale-visit timeout protection, deliver sitter-facing briefings, and send 10 AM/10 PM house digests with Powerwall/security/backup status plus Joanna review. | `input_boolean.vacation_mode`, `input_boolean.house_sitter_present`, `input_datetime.vacation_house_sitter_*`, `input_datetime.vacation_house_status_digest_last_sent`, `sensor.vacation_house_sitter_*`, `binary_sensor.powerwall_grid_status`, `sensor.powerwall_charge`, `group.garage_doors`, `lock.front_door`, `script.vacation_house_sitter_clear_presence`, `script.vacation_house_status_digest`, `script.notify_engine`, `rest_command.bearclaw_command`, `script.joanna_send_telegram` |
| [](vacation_mode.yaml) | Auto-enable vacation mode after 24 hours away or no bed use, track sitter analytics/secure-house checks, stale-visit timeout protection, deliver sitter-facing briefings, and send 10 AM/10 PM house digests with Powerwall/security/backup status plus Joanna review. | `input_boolean.vacation_mode`, `input_boolean.house_sitter_present`, `input_datetime.vacation_house_sitter_*`, `input_datetime.vacation_house_status_digest_last_sent`, `sensor.vacation_house_sitter_*`, `binary_sensor.powerwall_grid_status`, `sensor.powerwall_charge`, `group.garage_doors`, `lock.front_door`, `script.vacation_house_sitter_clear_presence`, `script.vacation_house_status_digest`, `script.notify_engine`, `rest_command.bearclaw_command`, `script.joanna_send_telegram` |
| [](maintenance_log.yaml) | Webhook-based water softener salt maintenance logging with idempotent event handling, Activity Feed logging, parser-safe refill cadence history, and dashboard-ready template sensors. [](https://youtu.be/_OqTv9i-jAs) [](https://www.vcloudinfo.com/2026/07/home-assistant-water-softener-salt-automation.html) | `automation.maintenance_log_joanna_webhook_ingest`, `sensor.water_softener_salt_average_days_between_refills`, `sensor.water_softener_salt_refill_count`, `sensor.water_softener_salt_total_added` |
| [](maintenance_log.yaml) | Webhook-based water softener salt maintenance logging with idempotent event handling, Activity Feed logging, parser-safe refill cadence history, and dashboard-ready template sensors. [](https://youtu.be/_OqTv9i-jAs) [](https://www.vcloudinfo.com/2026/07/home-assistant-water-softener-salt-automation.html) | `automation.maintenance_log_joanna_webhook_ingest`, `sensor.water_softener_salt_average_days_between_refills`, `sensor.water_softener_salt_refill_count`, `sensor.water_softener_salt_total_added` |
# Notes: Hosts run daily read-only APT pending checks plus Mon/Thu 12:00 APT jobs.
# Notes: Hosts run daily read-only APT pending checks plus Mon/Thu 12:00 APT jobs.
# Notes: Reboots are handled directly on each host by apt_weekly.sh.
# Notes: Reboots are handled directly on each host by apt_weekly.sh.
@ -23,7 +25,7 @@
# Notes: codex_appliance moved to a dedicated VM; keep the standard codex_appliance switches and retire the legacy hashed discovery entity when it disappears.
# Notes: codex_appliance moved to a dedicated VM; keep the standard codex_appliance switches and retire the legacy hashed discovery entity when it disappears.
# Notes: Paige's Bookshelf is a live monitored service and should remain in the group when its discovery switch is present.
# Notes: Paige's Bookshelf is a live monitored service and should remain in the group when its discovery switch is present.
# Notes: Panel Notes currently exposes both `switch.panel_notes_container` and `switch.panel_notes_container_2`; keep the discovered live switches aligned until the duplicate is removed.
# Notes: Panel Notes currently exposes both `switch.panel_notes_container` and `switch.panel_notes_container_2`; keep the discovered live switches aligned until the duplicate is removed.
# Notes: Retired repair cleanup clears old codex_appliance and hashed dozzle Portainer repair IDs.
# Notes: Retired repair cleanup clears stale legacy codex_appliance and Dozzle repair IDs.