fix(compose+hirag): probes the images can run + keep cu121 torch off ARM - #2680
Conversation
Two false-unhealthy healthchecks and one silent torch downgrade, all surfaced by the post-merge rolling recreate on SPARK (GB10/ARM64): - a2ui-renderer and tokenism-ui healthchecks used wget, but the images ship curl only. Both services answered 200 while stuck "unhealthy" (14+ failing streak). Switch to curl, matching the tensorzero-ui probe pattern. Splits regenerated from the monolith. - hi-rag-gateway v1's optional CUDA stanza pip-installs unpinned torch from download.pytorch.org/whl/cu121. That index has no modern aarch64 wheels, so on ARM the install silently resolved torch 2.0.1, clobbering the locked 2.9.x; transformers 4.57.3 then crashes at import on torch.compiler. Guard the stanza to x86_64 hosts. The x86 unpinned-clobber question remains with the hi-rag v1 repin/retire lane. Rebuild on GB10 without build args now yields torch 2.9.1+cpu and a healthy gateway. Validated on-node: both UIs healthy via curl probes; gateway healthy with locked torch after arch-guarded build. 💘 Generated with Crush
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Docker Hardening ValidationHardening Validation ReportValidated: Sat Aug 22 16:34:15 UTC 2026Services CheckedPMOVES.AI Docker Hardening Validation[INFO] Checking: pmoves/docker-compose.hardened.yml [INFO] Validating: hi-rag-gateway-v2 [INFO] Validating: extract-worker [INFO] Validating: langextract [INFO] Validating: presign [INFO] Validating: render-webhook [INFO] Validating: retrieval-eval [INFO] Validating: pdf-ingest [INFO] Validating: jellyfin-bridge [INFO] Validating: invidious-companion-proxy [INFO] Validating: ffmpeg-whisper [INFO] Validating: media-video [INFO] Validating: media-audio [INFO] Validating: hi-rag-gateway-v2-gpu [INFO] Validating: hi-rag-gateway-gpu [INFO] Validating: deepresearch [INFO] Validating: supaserch [INFO] Validating: publisher-discord [INFO] Validating: mesh-agent [INFO] Validating: nats-echo-req [INFO] Validating: nats-echo-res [INFO] Validating: comfy-watcher [INFO] Validating: grayjay-plugin-host [INFO] Validating: agent-zero [INFO] Validating: p7-room-orchestrator [INFO] Validating: archon [INFO] Validating: channel-monitor [INFO] Validating: pmoves-yt [INFO] Validating: notebook-sync [INFO] Validating: supabase_service_role_key [INFO] Validating: supabase_jwt_secret [INFO] Validating: p7_control_token ====================================== |
🔏 CHIT-aware change — control-body routingThis PR touches a CHIT-aware service (ports 8086/8087/8103/8106/8113/9224 surface). Before a Control-Body ACK:
Advisory routing only — the blocking contract check is CHIT Contract. |
Docker Hardening ValidationHardening Validation ReportValidated: Sat Aug 22 18:08:30 UTC 2026Services CheckedPMOVES.AI Docker Hardening Validation[INFO] Checking: pmoves/docker-compose.hardened.yml [INFO] Validating: hi-rag-gateway-v2 [INFO] Validating: extract-worker [INFO] Validating: langextract [INFO] Validating: presign [INFO] Validating: render-webhook [INFO] Validating: retrieval-eval [INFO] Validating: pdf-ingest [INFO] Validating: jellyfin-bridge [INFO] Validating: invidious-companion-proxy [INFO] Validating: ffmpeg-whisper [INFO] Validating: media-video [INFO] Validating: media-audio [INFO] Validating: hi-rag-gateway-v2-gpu [INFO] Validating: hi-rag-gateway-gpu [INFO] Validating: deepresearch [INFO] Validating: supaserch [INFO] Validating: publisher-discord [INFO] Validating: mesh-agent [INFO] Validating: nats-echo-req [INFO] Validating: nats-echo-res [INFO] Validating: comfy-watcher [INFO] Validating: grayjay-plugin-host [INFO] Validating: agent-zero [INFO] Validating: p7-room-orchestrator [INFO] Validating: archon [INFO] Validating: channel-monitor [INFO] Validating: pmoves-yt [INFO] Validating: notebook-sync [INFO] Validating: supabase_service_role_key [INFO] Validating: supabase_jwt_secret [INFO] Validating: p7_control_token ====================================== |
Docker Hardening ValidationHardening Validation ReportValidated: Sat Aug 22 21:56:59 UTC 2026Services CheckedPMOVES.AI Docker Hardening Validation[INFO] Checking: pmoves/docker-compose.hardened.yml [INFO] Validating: hi-rag-gateway-v2 [INFO] Validating: extract-worker [INFO] Validating: langextract [INFO] Validating: presign [INFO] Validating: render-webhook [INFO] Validating: retrieval-eval [INFO] Validating: pdf-ingest [INFO] Validating: jellyfin-bridge [INFO] Validating: invidious-companion-proxy [INFO] Validating: ffmpeg-whisper [INFO] Validating: media-video [INFO] Validating: media-audio [INFO] Validating: hi-rag-gateway-v2-gpu [INFO] Validating: hi-rag-gateway-gpu [INFO] Validating: deepresearch [INFO] Validating: supaserch [INFO] Validating: publisher-discord [INFO] Validating: mesh-agent [INFO] Validating: nats-echo-req [INFO] Validating: nats-echo-res [INFO] Validating: comfy-watcher [INFO] Validating: grayjay-plugin-host [INFO] Validating: agent-zero [INFO] Validating: p7-room-orchestrator [INFO] Validating: archon [INFO] Validating: channel-monitor [INFO] Validating: pmoves-yt [INFO] Validating: notebook-sync [INFO] Validating: supabase_service_role_key [INFO] Validating: supabase_jwt_secret [INFO] Validating: p7_control_token ====================================== |
Summary
Surfaced by the post-merge rolling recreate on SPARK (GB10/ARM64) while applying 4090's wave (#2662–#2674):
wget→curl. The images ship curl only, so both services answered HTTP 200 while permanently "unhealthy" (14+ failing streak) — false-negative probes. Matches the existingtensorzero-uicurl-fallback pattern. Splits regenerated from the monolith.x86_64. The unpinnedpip install --index-url .../cu121 torchhas no modern aarch64 wheels; on ARM it silently resolved torch 2.0.1, clobbering the locked 2.9.x. transformers 4.57.3 then crashes at import (torch.compilermissing). This is the documented unpinned-install defect class (chore(infra): operator-infra-gates - fix pre-existing village-gate 3-policy violations #2285 family) going from latent to live on rebuild.The x86 unpinned-clobber question (cu121 pins vs lock coherence) stays with the hi-rag v1 retirement-or-repin lane — this PR only stops the ARM footgun.
Affected services
a2ui-renderer(healthcheck only)tokenism-ui(healthcheck only)hi-rag-gatewayv1 (Dockerfile, ARM hosts only)Testing
Live-validated on SPARK (GB10) from this branch:
up -d --force-recreate a2ui-renderer tokenism-ui→ both healthy (were permanently unhealthy pre-fix, services returned 200 throughout)build hi-rag-gatewaywith no build args on aarch64 → image containstorch 2.9.1+cpu, gateway healthy (pre-fix rebuild crash-looped on torch 2.0.1)make compose-splitregenerated core/ui splits; diff is exactly the two probe linesFull wave-validation record (regression repairs included):
pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md—SPARK-KIMI::POSTMERGE-WAVE-2662-2674::2026-08-22.💘 Generated with Crush