From 03358dccd15dae9140009b5bc49e117772759c10 Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Tue, 16 Jun 2026 14:42:04 -0700 Subject: [PATCH] arbo: mount repo pyproject.toml ro into the engine (catalog_version observability) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /healthz catalog_version read the BAKED package version (importlib.metadata), so a catalog/frontend-only webhook deploy (no image rebuild) left it stale — v0.12.4 data went live but /healthz still reported 0.12.3. comfy-dev's v0.12.5 reads comfy_catalog.__version__ from the repo-root pyproject.toml; mounting it on the same checkout mount (catalog/graphs/frontend) makes /healthz report the MOUNTED version after a catalog-restart. Falls back cleanly if absent. Pushed to irv-ml1's host compose + validated via `docker compose config` (bind -> /app/pyproject.toml:ro resolves). Recreate deferred to comfy-dev's imminent v0.12.5 rebuild (the mount is inert for v0.12.5 itself, which bakes its own version — it only matters for subsequent catalog-only deploys — so no separate prod blip). Requested by comfy-dev (engine owner), althing thread 01KV95R88A3Y. --- stacks/arbo/compose.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/stacks/arbo/compose.yaml b/stacks/arbo/compose.yaml index a4b38cb..a990c1a 100644 --- a/stacks/arbo/compose.yaml +++ b/stacks/arbo/compose.yaml @@ -68,6 +68,13 @@ services: - ${ARBO_CATALOG_DIR:-/worktank/arbo/repo}/catalog:/app/catalog:ro - ${ARBO_CATALOG_DIR:-/worktank/arbo/repo}/graphs:/app/graphs:ro - ${ARBO_CATALOG_DIR:-/worktank/arbo/repo}/frontend:/app/frontend:ro + # pyproject.toml rides the same checkout mount so /healthz catalog_version + # reports the MOUNTED repo version (read from /app/pyproject.toml), not the + # baked importlib.metadata one — otherwise a catalog/frontend-only webhook + # deploy (no image rebuild) leaves the reported version stale (comfy-dev + # v0.12.5 observability fix, 2026-06-16). Activated on the next engine + # recreate; the code falls back cleanly if the file is absent. + - ${ARBO_CATALOG_DIR:-/worktank/arbo/repo}/pyproject.toml:/app/pyproject.toml:ro # python-based (the slim image ships no curl/wget; python is always present): healthcheck: test: ["CMD-SHELL", "python -c \"import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://localhost:8200/healthz').status==200 else 1)\""]