Changelog archive — v1.14

Moved verbatim from CHANGELOG.md; never edited.

[v1.14.3] - 2026-03-22

Features

  • Deploy infrastructure alerting pipeline using Grafana Unified Alerting with ntfy push notifications. 7 alert rules with runbooks covering service health, pod readiness, PostgreSQL, textfile freshness, Frigate cameras, and ArgoCD sync status. services-check now queries the alerting API for covered checks.

Bug Fixes

  • Fix Frigate NVR crash by re-adding required mqtt config section (disabled) after Mosquitto removal.
  • Fix borgmatic backup failure: use correct kubectl context (minikube) on indri for Mealie SQLite dump hook

Infrastructure

  • Localize Grafana Alloy container image with dual Dockerfile + Nix builds from forge mirror
  • Upgrade Prometheus from v3.9.1 to v3.10.0 (distroless variants, PromQL fill operators, performance improvements)
  • Bump Frigate recording retention (180d continuous, 30d detections, 730d alerts) and add camera-fps health check to services-check.
  • Improve Frigate health checks in services-check: per-camera FPS validation and NFS storage accessibility check.
  • Increase data retention: Prometheus 15d → 10y, Loki 31d → 365d (PVC sizes unchanged; minikube hostpath doesn’t enforce limits)
  • Standardize OCI labels across all container Dockerfiles with consistent title, description, version, source, and vendor metadata.

Documentation

  • Review and correct Tailscale reference doc: fix ACL path, add missing device tags (ringtail, per-service tags, ci-gateway, flyio-proxy), correct access matrix (PyPI→DevPI, homelab grants), add SSH homelab→homelab rule, document auto approvers, add last-reviewed frontmatter.

AI Assistance

  • Add four Claude Code subagents: infra-health (background health monitor), doc-reviewer (persistent-memory doc review), change-classifier (C0/C1/C2 triage), and mikado-navigator (C2 chain state advisor).

Miscellaneous

  • Standardized USAGE pragmas and typer CLI parsing across all mise tasks: added missing #USAGE directive to mikado-branch-invariant-check, converted pr-comments and op-backup from raw sys.argv to typer for consistency with all other uv python scripts.

[v1.14.2] - 2026-03-17

Features

  • Deploy Mealie recipe manager on minikube-indri for meal planning and prep automation.
  • Add UnPoller deployment to monitor UniFi network metrics via Prometheus

Bug Fixes

  • Fix Caddy v2.11 breaking change: preserve original Host header for HTTPS upstreams.
  • Fix plan-a-meal random recipe queries — add required paginationSeed parameter

Infrastructure

  • Externalize Tailscale operator manifest to forge mirror, removing 495 KB vendored file from the repo.
  • Externalize TeslaMate Grafana dashboards to forge mirror, removing 713 KB of ConfigMaps from the repo.
  • Upgrade Caddy from v2.10.2 to v2.11.2 (7 CVE fixes), create caddy-l4 forge mirror, migrate all ~/code/3rd clones on indri to HTTPS forge.ops.eblu.me remotes.
  • Upgrade borgmatic from 2.0.13 to 2.1.3 on indri (improved borg warning handling, memory/performance improvements)

Documentation

  • Add git last-modified subsort to docs-review script, so ties in review date are broken by least recently updated first.
  • Review jellyfin (10.11.6, current) and automounter (1.11.0) services; add missing frigate share to automounter docs.

[v1.14.1] - 2026-03-14

Features

  • Add docs-preview mise task: builds docs with Dagger and serves them locally in the production quartz container, opening the browser directly to the specified card. Also adds visual preview hints to the docs-review checklist and the review-documentation how-to.

Infrastructure

  • Add jobsync to services-check and homepage dashboard; mark as reviewed at v1.1.4
  • Bump Grafana Alloy to v1.14.0 across all deployments (indri, alloy-k8s, alloy-ringtail, alloy-tracing-ringtail)
  • Upgrade zot container registry from v2.1.13 to v2.1.15 (CVE-2025-30204, open redirect fix). Fix trivy CVE DB downloads by adding /usr/local/bin to LaunchAgent PATH.
  • Remove Mosquitto (MQTT broker) — unused since frigate-notify switched to webapi polling. Deleted ArgoCD app, k8s manifests, namespace, and updated all docs.

Documentation

  • Add how-to card for running the 1Password backup (mise run op-backup), with bidirectional links to restore procedure and service reference.

[v1.14.0] - 2026-03-09

Features

  • Deploy JobSync to ringtail k3s — nix-built container, Tailscale Ingress, Caddy route at jobsync.ops.eblu.me, Ollama integration for AI features.

Bug Fixes

  • Fix 1Password Connect logs showing as errors in Grafana by normalizing numeric log levels (1-5) to standard strings (error/warn/info/debug/trace) in the Alloy log processing pipeline.
  • Fix mikado-branch-invariant-check false positive: close commits without preceding impl commits are valid (e.g., operational tasks with no code changes).

Infrastructure

  • Disable Quartz SPA mode and remove robots.txt crawler exclusions to fix the Facebook crawler spider trap. Remove hand-curated category index files in favor of Quartz auto-generated folder pages.

Documentation

  • Add JobSync reference card, update ringtail workloads table, document observability via Loki, and wire RAPIDAPI_KEY through ExternalSecret for job search automation.
  • Relax wiki-link constraints: allow path-based links for disambiguation, drop global filename uniqueness requirement, remove docs-check-filenames and docs-check-index hooks.