Преглед на файлове

refactor: rename base image family to jovian-judgement (dir + images + profiles); tag = pin cut + model, :local retired

Alexander Korolev преди 1 месец
родител
ревизия
c11e975b4e
променени са 58 файла, в които са добавени 130 реда и са изтрити 123 реда
  1. 9 7
      .agents/skills/jovian-images/SKILL.md
  2. 3 3
      AGENTS.md
  3. 1 1
      docker-images/jovian-judgement/Dockerfile
  4. 0 0
      docker-images/jovian-judgement/apt-sources.list
  5. 0 0
      docker-images/jovian-judgement/build.sh
  6. 0 0
      docker-images/jovian-judgement/checksums/tiktoken.sha256
  7. 0 0
      docker-images/jovian-judgement/fetch-deps.sh
  8. 0 0
      docker-images/jovian-judgement/lmcache-runtime-requirements.txt
  9. 0 0
      docker-images/jovian-judgement/locks/apt-packages.txt
  10. 0 0
      docker-images/jovian-judgement/locks/apt-sources.list
  11. 0 0
      docker-images/jovian-judgement/locks/deps.lock
  12. 0 0
      docker-images/jovian-judgement/locks/python-bootstrap.txt
  13. 0 0
      docker-images/jovian-judgement/locks/python-build.txt
  14. 0 0
      docker-images/jovian-judgement/locks/python-runtime.txt
  15. 0 0
      docker-images/jovian-judgement/patch_cuda_sm12x.py
  16. 0 0
      docker-images/jovian-judgement/patches-eugr/patch_vllm_autogptq_symmetric_moe_qzeros.py
  17. 0 0
      docker-images/jovian-judgement/patches-eugr/patch_vllm_b12x_c128a_topk_alignment.py
  18. 0 0
      docker-images/jovian-judgement/patches-eugr/patch_vllm_diffusion_tensor_causal.py
  19. 0 0
      docker-images/jovian-judgement/patches-eugr/patch_vllm_disable_minimax_qk_rmsnorm_ipc.py
  20. 0 0
      docker-images/jovian-judgement/patches-eugr/patch_vllm_flashinfer_b12x_swigluoai.py
  21. 0 0
      docker-images/jovian-judgement/patches-eugr/patch_vllm_gemma4_mtp_embedding_share.py
  22. 0 0
      docker-images/jovian-judgement/patches-eugr/patch_vllm_mrv2_speculator_cudagraph_pool.py
  23. 0 0
      docker-images/jovian-judgement/patches-eugr/patch_vllm_preserve_sm12x_target.py
  24. 0 0
      docker-images/jovian-judgement/patches-eugr/patch_vllm_routed_experts_weight_shape.py
  25. 0 0
      docker-images/jovian-judgement/patches-eugr/patch_vllm_sm120_cooperative_topk.py
  26. 0 0
      docker-images/jovian-judgement/patches-eugr/patch_vllm_spark_kv_cache_cleanup.py
  27. 0 0
      docker-images/jovian-judgement/patches-eugr/patch_vllm_topk_softplus_sqrt_control_flow.py
  28. 1 1
      docker-images/jovian-judgement/profiles/r28.env
  29. 1 1
      docker-images/jovian-judgement/profiles/r31.env
  30. 1 1
      docker-images/jovian-judgement/profiles/r35.env
  31. 1 1
      docker-images/jovian-judgement/profiles/r36-ds41.env
  32. 1 1
      docker-images/jovian-judgement/profiles/r37-ds41.env
  33. 2 2
      docker-images/jovian-judgement/profiles/r38.env
  34. 0 0
      docker-images/jovian-judgement/versions.env
  35. 4 4
      recipes/dsv41-flash-jovian-r36-4x/recipe.toml
  36. 5 5
      recipes/dsv41-flash-jovian-r37-4x/recipe.toml
  37. 4 4
      recipes/glm53-flash-nvfp4-lab-4x/recipe.toml
  38. 4 4
      recipes/glm53-flash-nvfp4-lab/recipe.toml
  39. 4 4
      recipes/glm53-flash-nvfp4-spark/recipe.toml
  40. 2 2
      recipes/glm53-flash-r27-4x-dcp4/recipe.toml
  41. 2 2
      recipes/glm53-flash-r27-spark/recipe.toml
  42. 6 6
      recipes/glm53-flash-r28-4x-dcp4-b12xload/recipe.toml
  43. 6 6
      recipes/glm53-flash-r28-4x-dcp4-split2048/recipe.toml
  44. 6 6
      recipes/glm53-flash-r28-4x-dcp4/recipe.toml
  45. 3 3
      recipes/glm53-flash-r28-dflash2-2x/recipe.toml
  46. 3 3
      recipes/glm53-flash-r28-spark/recipe.toml
  47. 3 3
      recipes/glm53-flash-r31-2x/recipe.toml
  48. 6 6
      recipes/glm53-flash-r31-4x-dcp4/recipe.toml
  49. 4 4
      recipes/glm53-flash-r35-2x-dflash2/recipe.toml
  50. 6 6
      recipes/glm53-flash-r35-4x-dcp4/recipe.toml
  51. 6 6
      recipes/glm53-flash-r35-4x-dflash2/recipe.toml
  52. 4 4
      recipes/glm53-flash-spark-4x/recipe.toml
  53. 5 5
      recipes/glm53-full-mxfp4-4x-dspark8/recipe.toml
  54. 5 5
      recipes/glm53-full-mxfp4-4x-probe/recipe.toml
  55. 5 5
      recipes/glm53-full-mxfp4-4x/recipe.toml
  56. 3 3
      recipes/glm53-full-mxfp4-8x/recipe.toml
  57. 6 6
      specs/tech-architecture/glm53-recipe-state.md
  58. 8 3
      src/docker/build_tests.rs

+ 9 - 7
.agents/skills/jovian-images/SKILL.md

@@ -14,14 +14,14 @@ source locks, GB10-adapted runtime.
 
 
 ## Layout
 ## Layout
 
 
-- `docker-images/glm53-jovian-r27/` — the v2 contract build (**reproducible
+- `docker-images/jovian-judgement/` — the v2 contract build (**reproducible
   from a fresh repo clone**; no context tarballs):
   from a fresh repo clone**; no context tarballs):
   - `versions.env` — every pin: source SHAs + tree hashes + pretend
   - `versions.env` — every pin: source SHAs + tree hashes + pretend
     package versions + runtime versions. Single source of truth.
     package versions + runtime versions. Single source of truth.
   - `profiles/<name>.env` — named pin sets for recipe adoption (same
   - `profiles/<name>.env` — named pin sets for recipe adoption (same
     `KEY=VAL` format; only the keys that differ from `versions.env`). A
     `KEY=VAL` format; only the keys that differ from `versions.env`). A
     recipe references one via `build_profile = "<name>"`; merge order:
     recipe references one via `build_profile = "<name>"`; merge order:
-    versions.env < profile < recipe `[build.versions]`. `glm53-r28.env`
+    versions.env < profile < recipe `[build.versions]`. `r28.env`
     is the r28 lock (vLLM 62f6385c + b12x 7216f6b9 + LMCache 934c287a).
     is the r28 lock (vLLM 62f6385c + b12x 7216f6b9 + LMCache 934c287a).
     The profile file lives in the build dir → it ships with the context
     The profile file lives in the build dir → it ships with the context
     and moves the dir checksum.
     and moves the dir checksum.
@@ -33,15 +33,17 @@ source locks, GB10-adapted runtime.
     vllm-clone (gated) → deps-fetched → vllm-builder → b12x-clone/builder →
     vllm-clone (gated) → deps-fetched → vllm-builder → b12x-clone/builder →
     lmcache-builder → runner (installs wheels + gates).
     lmcache-builder → runner (installs wheels + gates).
   - `build.sh` — generic driver; forwards every versions.env KEY=VAL as a
   - `build.sh` — generic driver; forwards every versions.env KEY=VAL as a
-    build-arg. `TAG=glm53-jovian-r27:local bash build.sh`.
+    build-arg. `TAG=jovian-judgement:r35-glm53 bash build.sh`.
 - Legacy r12/r18 staging-era build dirs were REMOVED from the repo
 - Legacy r12/r18 staging-era build dirs were REMOVED from the repo
   (2026-09-07): their tarball contexts were not rebuildable anyway. The
   (2026-09-07): their tarball contexts were not rebuildable anyway. The
   r18 image (`glm53-jovian-r18:local`) lives on the nodes and the recipes
   r18 image (`glm53-jovian-r18:local`) lives on the nodes and the recipes
   keep referencing it; `docker_image_dir` for those recipes is now
   keep referencing it; `docker_image_dir` for those recipes is now
-  informational only (no build dir). The r27 dir is the current build
+  informational only (no build dir). The jovian-judgement dir is the current build
   lineage.
   lineage.
-- Production recipes reference `docker_image = "glm53-jovian-r<N>:local"`
-  and `docker_image_dir = "glm53-jovian-r<N>"` (r27 = the live build dir).
+- Production recipes reference `docker_image = "jovian-judgement:<tag>"`
+  where the tag names the pin cut + target model (e.g. `r35-glm53`,
+  `r37-ds41`; built from the matching `profiles/<profile>.env`) and
+  `docker_image_dir = "jovian-judgement"` (the live build dir).
 
 
 ## Pin discipline (r27 contract, verified 2026-09-06)
 ## Pin discipline (r27 contract, verified 2026-09-06)
 
 
@@ -50,7 +52,7 @@ source locks, GB10-adapted runtime.
 | vLLM | `voipmonitor/vllm` @ `63a82f8d…` (branch `integration/glm53-r27-release-20260906`) | `f54cd9ca…` |
 | vLLM | `voipmonitor/vllm` @ `63a82f8d…` (branch `integration/glm53-r27-release-20260906`) | `f54cd9ca…` |
 | B12X | `voipmonitor/b12x` @ `e8ad299b…` (same branch name) | `f3cd8a9e…` |
 | B12X | `voipmonitor/b12x` @ `e8ad299b…` (same branch name) | `f3cd8a9e…` |
 | LMCache | `local-inference-lab/LMCache` @ `822330db…` | `008ac3e0…` |
 | LMCache | `local-inference-lab/LMCache` @ `822330db…` | `008ac3e0…` |
-| r28 profile | `profiles/glm53-r28.env`: vLLM `62f6385c…` / b12x `7216f6b9…` / LMCache `934c287a…` (one 09-06 cut) | `6361a741…` / `be0572c5…` / `a860684a…` |
+| r28 profile | `profiles/r28.env`: vLLM `62f6385c…` / b12x `7216f6b9…` / LMCache `934c287a…` (one 09-06 cut) | `6361a741…` / `be0572c5…` / `a860684a…` |
 | FlashKDA | `vllm-project/FlashKDA` @ `3b225bf2…` | (gitlink in dep) |
 | FlashKDA | `vllm-project/FlashKDA` @ `3b225bf2…` | (gitlink in dep) |
 | cutlass (top) | `nvidia/cutlass` @ `v4.4.2` | — |
 | cutlass (top) | `nvidia/cutlass` @ `v4.4.2` | — |
 | FlashMLA | `a8f794d1…` (→ vendored cutlass `147f5673…`) | — |
 | FlashMLA | `a8f794d1…` (→ vendored cutlass `147f5673…`) | — |

+ 3 - 3
AGENTS.md

@@ -209,7 +209,7 @@ PORT = { from = "port" }            # or: value resolves from a recipe field at
                                      # serve time (supported target: port) —
                                      # serve time (supported target: port) —
                                      # the value is declared once, can't drift
                                      # the value is declared once, can't drift
 
 
-build_profile = "glm53-r28"        # optional; named pin set from docker-images/<dir>/profiles/<name>.env
+build_profile = "r28"             # optional; named pin set from docker-images/<dir>/profiles/<name>.env
 
 
 [build.versions]                    # optional; overrides pins in docker-images/<dir>/versions.env
 [build.versions]                    # optional; overrides pins in docker-images/<dir>/versions.env
 VLLM_COMMIT = "00907fc..."          # recipe wins over profile > image pin; folded into build checksum
 VLLM_COMMIT = "00907fc..."          # recipe wins over profile > image pin; folded into build checksum
@@ -390,7 +390,7 @@ may override any pin without editing the image dir. A `build_profile =
 "<name>"` references `docker-images/<dir>/profiles/<name>.env` (same `KEY=VAL`
 "<name>"` references `docker-images/<dir>/profiles/<name>.env` (same `KEY=VAL`
 format) — the way to ship a full pin set by name (an engine generation cut
 format) — the way to ship a full pin set by name (an engine generation cut
 across all forks: vLLM + b12x + LMCache together; see
 across all forks: vLLM + b12x + LMCache together; see
-`docker-images/glm53-jovian-r27/profiles/glm53-r28.env`). Precedence:
+`docker-images/jovian-judgement/profiles/r28.env`). Precedence:
 image `versions.env` < profile < recipe `[build.versions]` (one-off
 image `versions.env` < profile < recipe `[build.versions]` (one-off
 experiments). The merged file is written to the node and folded into the
 experiments). The merged file is written to the node and folded into the
 checksum, so any pin change triggers a rebuild. Keys must match `versions.env`
 checksum, so any pin change triggers a rebuild. Keys must match `versions.env`
@@ -401,7 +401,7 @@ source lock is cut as one set — see the profile header comment); a half-cut
 (vLLM advanced, b12x/LMCache left behind) silently skips loader/perf fixes.
 (vLLM advanced, b12x/LMCache left behind) silently skips loader/perf fixes.
 
 
 ```toml
 ```toml
-build_profile = "glm53-r28"        # full r28 lock: vLLM + b12x + LMCache
+build_profile = "r28"             # full r28 lock: vLLM + b12x + LMCache
 # or, for a one-off experiment on top of a profile:
 # or, for a one-off experiment on top of a profile:
 [build.versions]
 [build.versions]
 TORCH_VERSION = "2.11.0"
 TORCH_VERSION = "2.11.0"

+ 1 - 1
docker-images/glm53-jovian-r27/Dockerfile → docker-images/jovian-judgement/Dockerfile

@@ -19,7 +19,7 @@
 # in-container (engine-driven cache transfers sidecar for vram/native/lmcache
 # in-container (engine-driven cache transfers sidecar for vram/native/lmcache
 # cache modes).
 # cache modes).
 #
 #
-# Build: cd docker-images/glm53-jovian-r27 && TAG=... bash build.sh
+# Build: cd docker-images/jovian-judgement && TAG=... bash build.sh
 
 
 ARG CUDA_BASE_IMAGE
 ARG CUDA_BASE_IMAGE
 ARG CUDA_BASE_DIGEST
 ARG CUDA_BASE_DIGEST

+ 0 - 0
docker-images/glm53-jovian-r27/apt-sources.list → docker-images/jovian-judgement/apt-sources.list


+ 0 - 0
docker-images/glm53-jovian-r27/build.sh → docker-images/jovian-judgement/build.sh


+ 0 - 0
docker-images/glm53-jovian-r27/checksums/tiktoken.sha256 → docker-images/jovian-judgement/checksums/tiktoken.sha256


+ 0 - 0
docker-images/glm53-jovian-r27/fetch-deps.sh → docker-images/jovian-judgement/fetch-deps.sh


+ 0 - 0
docker-images/glm53-jovian-r27/lmcache-runtime-requirements.txt → docker-images/jovian-judgement/lmcache-runtime-requirements.txt


+ 0 - 0
docker-images/glm53-jovian-r27/locks/apt-packages.txt → docker-images/jovian-judgement/locks/apt-packages.txt


+ 0 - 0
docker-images/glm53-jovian-r27/locks/apt-sources.list → docker-images/jovian-judgement/locks/apt-sources.list


+ 0 - 0
docker-images/glm53-jovian-r27/locks/deps.lock → docker-images/jovian-judgement/locks/deps.lock


+ 0 - 0
docker-images/glm53-jovian-r27/locks/python-bootstrap.txt → docker-images/jovian-judgement/locks/python-bootstrap.txt


+ 0 - 0
docker-images/glm53-jovian-r27/locks/python-build.txt → docker-images/jovian-judgement/locks/python-build.txt


+ 0 - 0
docker-images/glm53-jovian-r27/locks/python-runtime.txt → docker-images/jovian-judgement/locks/python-runtime.txt


+ 0 - 0
docker-images/glm53-jovian-r27/patch_cuda_sm12x.py → docker-images/jovian-judgement/patch_cuda_sm12x.py


+ 0 - 0
docker-images/glm53-jovian-r27/patches-eugr/patch_vllm_autogptq_symmetric_moe_qzeros.py → docker-images/jovian-judgement/patches-eugr/patch_vllm_autogptq_symmetric_moe_qzeros.py


+ 0 - 0
docker-images/glm53-jovian-r27/patches-eugr/patch_vllm_b12x_c128a_topk_alignment.py → docker-images/jovian-judgement/patches-eugr/patch_vllm_b12x_c128a_topk_alignment.py


+ 0 - 0
docker-images/glm53-jovian-r27/patches-eugr/patch_vllm_diffusion_tensor_causal.py → docker-images/jovian-judgement/patches-eugr/patch_vllm_diffusion_tensor_causal.py


+ 0 - 0
docker-images/glm53-jovian-r27/patches-eugr/patch_vllm_disable_minimax_qk_rmsnorm_ipc.py → docker-images/jovian-judgement/patches-eugr/patch_vllm_disable_minimax_qk_rmsnorm_ipc.py


+ 0 - 0
docker-images/glm53-jovian-r27/patches-eugr/patch_vllm_flashinfer_b12x_swigluoai.py → docker-images/jovian-judgement/patches-eugr/patch_vllm_flashinfer_b12x_swigluoai.py


+ 0 - 0
docker-images/glm53-jovian-r27/patches-eugr/patch_vllm_gemma4_mtp_embedding_share.py → docker-images/jovian-judgement/patches-eugr/patch_vllm_gemma4_mtp_embedding_share.py


+ 0 - 0
docker-images/glm53-jovian-r27/patches-eugr/patch_vllm_mrv2_speculator_cudagraph_pool.py → docker-images/jovian-judgement/patches-eugr/patch_vllm_mrv2_speculator_cudagraph_pool.py


+ 0 - 0
docker-images/glm53-jovian-r27/patches-eugr/patch_vllm_preserve_sm12x_target.py → docker-images/jovian-judgement/patches-eugr/patch_vllm_preserve_sm12x_target.py


+ 0 - 0
docker-images/glm53-jovian-r27/patches-eugr/patch_vllm_routed_experts_weight_shape.py → docker-images/jovian-judgement/patches-eugr/patch_vllm_routed_experts_weight_shape.py


+ 0 - 0
docker-images/glm53-jovian-r27/patches-eugr/patch_vllm_sm120_cooperative_topk.py → docker-images/jovian-judgement/patches-eugr/patch_vllm_sm120_cooperative_topk.py


+ 0 - 0
docker-images/glm53-jovian-r27/patches-eugr/patch_vllm_spark_kv_cache_cleanup.py → docker-images/jovian-judgement/patches-eugr/patch_vllm_spark_kv_cache_cleanup.py


+ 0 - 0
docker-images/glm53-jovian-r27/patches-eugr/patch_vllm_topk_softplus_sqrt_control_flow.py → docker-images/jovian-judgement/patches-eugr/patch_vllm_topk_softplus_sqrt_control_flow.py


+ 1 - 1
docker-images/glm53-jovian-r27/profiles/glm53-r28.env → docker-images/jovian-judgement/profiles/r28.env

@@ -1,6 +1,6 @@
 # Version profile: GLM-5.3-Flash r28 source lock (2026-09-06 cut, all forks).
 # Version profile: GLM-5.3-Flash r28 source lock (2026-09-06 cut, all forks).
 #
 #
-# Referenced from recipes via `build_profile = "glm53-r28"`; merged over this
+# Referenced from recipes via `build_profile = "r28"`; merged over this
 # image dir's versions.env (profile wins, then recipe [build.versions] wins
 # image dir's versions.env (profile wins, then recipe [build.versions] wins
 # last). Only the keys that differ from versions.env are listed — the rest
 # last). Only the keys that differ from versions.env are listed — the rest
 # (CUDA base, torch/flashinfer, apt) stay at the image dir's pins.
 # (CUDA base, torch/flashinfer, apt) stay at the image dir's pins.

+ 1 - 1
docker-images/glm53-jovian-r27/profiles/glm53-r31.env → docker-images/jovian-judgement/profiles/r31.env

@@ -1,6 +1,6 @@
 # Version profile: GLM-5.3-Flash r31 source lock (2026-09-09 cut, all forks).
 # Version profile: GLM-5.3-Flash r31 source lock (2026-09-09 cut, all forks).
 #
 #
-# Referenced from recipes via `build_profile = "glm53-r31"`; merged over this
+# Referenced from recipes via `build_profile = "r31"`; merged over this
 # image dir's versions.env (profile wins, then recipe [build.versions] wins
 # image dir's versions.env (profile wins, then recipe [build.versions] wins
 # last). Only the keys that differ from versions.env are listed — the rest
 # last). Only the keys that differ from versions.env are listed — the rest
 # (CUDA base, torch/flashinfer, apt) stay at the image dir's pins.
 # (CUDA base, torch/flashinfer, apt) stay at the image dir's pins.

+ 1 - 1
docker-images/glm53-jovian-r27/profiles/glm53-r35.env → docker-images/jovian-judgement/profiles/r35.env

@@ -1,6 +1,6 @@
 # Version profile: GLM-5.3-Flash r35 source lock (2026-09-11 cut, all forks).
 # Version profile: GLM-5.3-Flash r35 source lock (2026-09-11 cut, all forks).
 #
 #
-# Referenced from recipes via `build_profile = "glm53-r35"`; merged over this
+# Referenced from recipes via `build_profile = "r35"`; merged over this
 # image dir's versions.env (profile wins, then recipe [build.versions] wins
 # image dir's versions.env (profile wins, then recipe [build.versions] wins
 # last). Only the keys that differ from versions.env are listed — the rest
 # last). Only the keys that differ from versions.env are listed — the rest
 # (CUDA base, torch/flashinfer, apt) stay at the image dir's pins.
 # (CUDA base, torch/flashinfer, apt) stay at the image dir's pins.

+ 1 - 1
docker-images/glm53-jovian-r27/profiles/jovian-r36-ds41.env → docker-images/jovian-judgement/profiles/r36-ds41.env

@@ -14,7 +14,7 @@
 # image's native extension is compiled for sm_120 / CUDA 13.3 x86).
 # image's native extension is compiled for sm_120 / CUDA 13.3 x86).
 #
 #
 # Pinned by commit + tree hash (gated per repo in the Dockerfile). What moved
 # Pinned by commit + tree hash (gated per repo in the Dockerfile). What moved
-# over the r35 profile (glm53-r35.env):
+# over the r35 profile (r35.env):
 #   vLLM  de982a50 -> 202a11a98eb (JJ b40673cd + #740 startup correction;
 #   vLLM  de982a50 -> 202a11a98eb (JJ b40673cd + #740 startup correction;
 #         0.26.1rc0+glm53.r36.vllm202a11a9; adds the DS4.1 DSpark/Engram
 #         0.26.1rc0+glm53.r36.vllm202a11a9; adds the DS4.1 DSpark/Engram
 #         serving path, greedy-Markov sampler fusion #738)
 #         serving path, greedy-Markov sampler fusion #738)

+ 1 - 1
docker-images/glm53-jovian-r27/profiles/jovian-r37-ds41.env → docker-images/jovian-judgement/profiles/r37-ds41.env

@@ -24,7 +24,7 @@
 # (TP3 not serving-qualified).
 # (TP3 not serving-qualified).
 #
 #
 # Pinned by commit + tree hash (gated per repo in the Dockerfile). Delta vs
 # Pinned by commit + tree hash (gated per repo in the Dockerfile). Delta vs
-# the r36 profile (jovian-r36-ds41.env):
+# the r36 profile (r36-ds41.env):
 #   vLLM  202a11a98eb -> c687594b8a8 (composed "release/ds41-optimized-r37":
 #   vLLM  202a11a98eb -> c687594b8a8 (composed "release/ds41-optimized-r37":
 #         JJ b40673cd + #740/#743/#742/#744)
 #         JJ b40673cd + #740/#743/#742/#744)
 #   B12X  323107ff    -> f1c4e9dd5b1 (clean master 05d2c43b + #364/#367/#366/#365)
 #   B12X  323107ff    -> f1c4e9dd5b1 (clean master 05d2c43b + #364/#367/#366/#365)

+ 2 - 2
docker-images/glm53-jovian-r27/profiles/jovian-r38-glm53.env → docker-images/jovian-judgement/profiles/r38.env

@@ -19,7 +19,7 @@
 #         carry — the fused in_proj_qkvbfg naming is the Aiden fork only.
 #         carry — the fused in_proj_qkvbfg naming is the Aiden fork only.
 #   B12X  0f3a8cbfd1c = local-inference-lab/b12x `master` tip.
 #   B12X  0f3a8cbfd1c = local-inference-lab/b12x `master` tip.
 #
 #
-# Delta vs the r37 profile (jovian-r37-ds41.env):
+# Delta vs the r37 profile (r37-ds41.env):
 #   vLLM  c687594b8a8 (release/ds41-optimized-r37) -> 8e1f1e587f8 (JJ tip)
 #   vLLM  c687594b8a8 (release/ds41-optimized-r37) -> 8e1f1e587f8 (JJ tip)
 #   B12X  f1c4e9dd5b1 -> 0f3a8cbfd1c
 #   B12X  f1c4e9dd5b1 -> 0f3a8cbfd1c
 #   LMCache 29bc5a2e — UNCHANGED
 #   LMCache 29bc5a2e — UNCHANGED
@@ -32,7 +32,7 @@
 #     deepgemm 8b1392b9) verified identical to the r37 tree's — fetch-deps.sh
 #     deepgemm 8b1392b9) verified identical to the r37 tree's — fetch-deps.sh
 #     needs no resync.
 #     needs no resync.
 #
 #
-# Build: clone-at-pin (docker-images/glm53-jovian-r27 Dockerfile), in-build
+# Build: clone-at-pin (docker-images/jovian-judgement Dockerfile), in-build
 # git only (no pre-staged tarballs — operator direction 2026-09-19).
 # git only (no pre-staged tarballs — operator direction 2026-09-19).
 VLLM_PIN=8e1f1e587f8d24faf606f334a1c4bdaaa6bd4368
 VLLM_PIN=8e1f1e587f8d24faf606f334a1c4bdaaa6bd4368
 VLLM_TREE=d9f35de1ed5e47dd006f6d420dd25707fb284eae
 VLLM_TREE=d9f35de1ed5e47dd006f6d420dd25707fb284eae

+ 0 - 0
docker-images/glm53-jovian-r27/versions.env → docker-images/jovian-judgement/versions.env


+ 4 - 4
recipes/dsv41-flash-jovian-r36-4x/recipe.toml

@@ -4,7 +4,7 @@
 # localinferencelab/vllm:jovian-judgement-community-20260912-r36 serves GLM
 # localinferencelab/vllm:jovian-judgement-community-20260912-r36 serves GLM
 # (r35 lane) + DS4.1 (this recipe) in one two-layer image. We build the same
 # (r35 lane) + DS4.1 (this recipe) in one two-layer image. We build the same
 # source composition for GB10 sm_121a from our own build dir
 # source composition for GB10 sm_121a from our own build dir
-# (docker-images/glm53-jovian-r27, profile jovian-r36-ds41 — the r36 delta
+# (docker-images/jovian-judgement, profile r36-ds41 — the r36 delta
 # over our r35 pins is only vLLM 202a11a98eb + b12x 323107ff + liburing 2.5;
 # over our r35 pins is only vLLM 202a11a98eb + b12x 323107ff + liburing 2.5;
 # LMCache/FlashKDA/DeepGEMM/FI/torch are the SAME pins as the r35 build).
 # LMCache/FlashKDA/DeepGEMM/FI/torch are the SAME pins as the r35 build).
 #
 #
@@ -53,9 +53,9 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "DeepSeek-V4.1-Flash (jovian r36 img, 4x DCP1, DSpark K7 greedy + Engram disk)"
 name = "DeepSeek-V4.1-Flash (jovian r36 img, 4x DCP1, DSpark K7 greedy + Engram disk)"
-docker_image = "jovian-r36-ds41:local"
-docker_image_dir = "glm53-jovian-r27"
-build_profile = "jovian-r36-ds41"
+docker_image = "jovian-judgement:r36-ds41"
+docker_image_dir = "jovian-judgement"
+build_profile = "r36-ds41"
 model = "deepseek-ai/DeepSeek-V4.1-Flash"
 model = "deepseek-ai/DeepSeek-V4.1-Flash"
 parent_model = "deepseek-ai/DeepSeek-V4.1-Flash"
 parent_model = "deepseek-ai/DeepSeek-V4.1-Flash"
 required_nodes = 4
 required_nodes = 4

+ 5 - 5
recipes/dsv41-flash-jovian-r37-4x/recipe.toml

@@ -15,8 +15,8 @@
 # reasoning_effort explicitly). Carries the B12X small-tile barrier fix (#363)
 # reasoning_effort explicitly). Carries the B12X small-tile barrier fix (#363)
 # and TP3 prefill-head support (TP3 is not serving-qualified here).
 # and TP3 prefill-head support (TP3 is not serving-qualified here).
 #
 #
-# Image: our own build for GB10 sm_121a from docker-images/glm53-jovian-r27
-# with profile jovian-r37-ds41 (vLLM c687594b8a8 + b12x f1c4e9dd5b1; LMCache
+# Image: our own build for GB10 sm_121a from docker-images/jovian-judgement
+# with profile r37-ds41 (vLLM c687594b8a8 + b12x f1c4e9dd5b1; LMCache
 # 29bc5a2e / FlashKDA 3b225bf2 / DeepGEMM 8b1392b9 unchanged; torch 2.13.0 +
 # 29bc5a2e / FlashKDA 3b225bf2 / DeepGEMM 8b1392b9 unchanged; torch 2.13.0 +
 # flashinfer 0.6.17 = the same GB10 pins as r35/r36, dep gates re-checked
 # flashinfer 0.6.17 = the same GB10 pins as r35/r36, dep gates re-checked
 # against the r37 tree; liburing 2.5 + dev headers already in the apt lock).
 # against the r37 tree; liburing 2.5 + dev headers already in the apt lock).
@@ -45,9 +45,9 @@
 # sparse copies under /var/tmp/engram-local/DeepSeek-V4.1-Flash.
 # sparse copies under /var/tmp/engram-local/DeepSeek-V4.1-Flash.
 engine = "vllm"
 engine = "vllm"
 name = "DeepSeek-V4.1-Flash (jovian r37 img, 4x DCP1, DSpark K7 greedy + Engram disk)"
 name = "DeepSeek-V4.1-Flash (jovian r37 img, 4x DCP1, DSpark K7 greedy + Engram disk)"
-docker_image = "jovian-r37-ds41:local"
-docker_image_dir = "glm53-jovian-r27"
-build_profile = "jovian-r37-ds41"
+docker_image = "jovian-judgement:r37-ds41"
+docker_image_dir = "jovian-judgement"
+build_profile = "r37-ds41"
 model = "deepseek-ai/DeepSeek-V4.1-Flash"
 model = "deepseek-ai/DeepSeek-V4.1-Flash"
 parent_model = "deepseek-ai/DeepSeek-V4.1-Flash"
 parent_model = "deepseek-ai/DeepSeek-V4.1-Flash"
 required_nodes = 4
 required_nodes = 4

+ 4 - 4
recipes/glm53-flash-nvfp4-lab-4x/recipe.toml

@@ -12,7 +12,7 @@
 # tower (skipped via --language-model-only), and the MTP head embedded at
 # tower (skipped via --language-model-only), and the MTP head embedded at
 # layer 45 (eh_proj/enorm/hnorm) — no separate drafter download.
 # layer 45 (eh_proj/enorm/hnorm) — no separate drafter download.
 #
 #
-# Image: glm53-jovian-r35:local + VLLM_DISABLED_KERNELS (the small GDN
+# Image: jovian-judgement:r35-glm53 + VLLM_DISABLED_KERNELS (the small GDN
 # mxfp8 GEMMs reject flashinfer cutlass' min n/k=128 — routed to the b12x
 # mxfp8 GEMMs reject flashinfer cutlass' min n/k=128 — routed to the b12x
 # Mxfp8 backend; proven on the Spark 4x lane, 161/176).
 # Mxfp8 backend; proven on the Spark 4x lane, 161/176).
 #
 #
@@ -22,9 +22,9 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4-lab re-cut (vLLM, 4x Spark, MTP-3, r35)"
 name = "GLM-5.3-Flash NVFP4-lab re-cut (vLLM, 4x Spark, MTP-3, r35)"
-docker_image = "glm53-jovian-r35:local"  # r35 loads the lab quants (r38 pool-deadlock on 2x, see bug report)
-docker_image_dir = "glm53-jovian-r27"
-build_profile = "glm53-r35"
+docker_image = "jovian-judgement:r35-glm53"  # r35 loads the lab quants (r38 pool-deadlock on 2x, see bug report)
+docker_image_dir = "jovian-judgement"
+build_profile = "r35"
 entrypoint = ["vllm", "serve"]
 entrypoint = ["vllm", "serve"]
 model = "local-inference-lab/GLM-5.3-Flash-NVFP4"
 model = "local-inference-lab/GLM-5.3-Flash-NVFP4"
 parent_model = "zai-org/GLM-5.3-Flash"
 parent_model = "zai-org/GLM-5.3-Flash"

+ 4 - 4
recipes/glm53-flash-nvfp4-lab/recipe.toml

@@ -15,7 +15,7 @@
 # loader path as the Spark lane: the JJ fork lineage (r35) maps it natively
 # loader path as the Spark lane: the JJ fork lineage (r35) maps it natively
 # (no KeyError); r38 is out — b12x preparation-pool deadlock on 2x GB10.
 # (no KeyError); r38 is out — b12x preparation-pool deadlock on 2x GB10.
 #
 #
-# Image: glm53-jovian-r35:local + VLLM_DISABLED_KERNELS (the small GDN
+# Image: jovian-judgement:r35-glm53 + VLLM_DISABLED_KERNELS (the small GDN
 # mxfp8 GEMMs reject flashinfer cutlass' min n/k=128 — routed to the b12x
 # mxfp8 GEMMs reject flashinfer cutlass' min n/k=128 — routed to the b12x
 # Mxfp8 backend; proven on the Spark lanes 162/176 + 161/176).
 # Mxfp8 backend; proven on the Spark lanes 162/176 + 161/176).
 #
 #
@@ -30,9 +30,9 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4-lab re-cut (vLLM, 2x Spark, MTP-3, r35)"
 name = "GLM-5.3-Flash NVFP4-lab re-cut (vLLM, 2x Spark, MTP-3, r35)"
-docker_image = "glm53-jovian-r35:local"  # r35 loads the lab quants (r38 pool-deadlock on 2x, see bug report)
-docker_image_dir = "glm53-jovian-r27"
-build_profile = "glm53-r35"
+docker_image = "jovian-judgement:r35-glm53"  # r35 loads the lab quants (r38 pool-deadlock on 2x, see bug report)
+docker_image_dir = "jovian-judgement"
+build_profile = "r35"
 entrypoint = ["vllm", "serve"]
 entrypoint = ["vllm", "serve"]
 model = "local-inference-lab/GLM-5.3-Flash-NVFP4"
 model = "local-inference-lab/GLM-5.3-Flash-NVFP4"
 parent_model = "zai-org/GLM-5.3-Flash"
 parent_model = "zai-org/GLM-5.3-Flash"

+ 4 - 4
recipes/glm53-flash-nvfp4-spark/recipe.toml

@@ -4,7 +4,7 @@
 # Operator direction (2026-09-19): after the NAS disk death the interim
 # Operator direction (2026-09-19): after the NAS disk death the interim
 # serving mode is 2x + 4x on local NVMe with the current lab quants. This
 # serving mode is 2x + 4x on local NVMe with the current lab quants. This
 # lane uses the latest lab engine (r38 = dev/jovian-judgement tip 8e1f1e5,
 # lane uses the latest lab engine (r38 = dev/jovian-judgement tip 8e1f1e5,
-# see profiles/jovian-r38-glm53.env) instead of the legacy r12 rebuild
+# see profiles/r38.env) instead of the legacy r12 rebuild
 # (the r12 image is gone from the nodes; the r12 composition is a "phantom"
 # (the r12 image is gone from the nodes; the r12 composition is a "phantom"
 # — the lab mainline keeps the split GDN naming the current quants carry,
 # — the lab mainline keeps the split GDN naming the current quants carry,
 # and the r38 tip adds the B12X MXFP8 linear kernel that the r35-era
 # and the r38 tip adds the B12X MXFP8 linear kernel that the r35-era
@@ -39,9 +39,9 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4-Spark (vLLM, 2x Spark, MTP-3, r38 tip)"
 name = "GLM-5.3-Flash NVFP4-Spark (vLLM, 2x Spark, MTP-3, r38 tip)"
-docker_image = "glm53-jovian-r35:local"  # r35 loads the Spark checkpoint; r38 (JJ tip + b12x master) deadlocks in the b12x preparation pool on 2x GB10
-docker_image_dir = "glm53-jovian-r27"
-build_profile = "glm53-r35"
+docker_image = "jovian-judgement:r35-glm53"  # r35 loads the Spark checkpoint; r38 (JJ tip + b12x master) deadlocks in the b12x preparation pool on 2x GB10
+docker_image_dir = "jovian-judgement"
+build_profile = "r35"
 entrypoint = ["vllm", "serve"]
 entrypoint = ["vllm", "serve"]
 model = "local-inference-lab/GLM-5.3-Flash-NVFP4-Spark"
 model = "local-inference-lab/GLM-5.3-Flash-NVFP4-Spark"
 parent_model = "zai-org/GLM-5.3-Flash"
 parent_model = "zai-org/GLM-5.3-Flash"

+ 2 - 2
recipes/glm53-flash-r27-4x-dcp4/recipe.toml

@@ -77,8 +77,8 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4 (r27 img, lab ckpt, 4x DCP4)"
 name = "GLM-5.3-Flash NVFP4 (r27 img, lab ckpt, 4x DCP4)"
-docker_image = "glm53-jovian-r27:local"  # r27 clone-at-pin build (docker-images/glm53-jovian-r27)
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r27-glm53"  # r27 clone-at-pin build (docker-images/jovian-judgement)
+docker_image_dir = "jovian-judgement"
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # r12 image had ["vllm","serve"] baked in, which is why this was absent
 # r12 image had ["vllm","serve"] baked in, which is why this was absent

+ 2 - 2
recipes/glm53-flash-r27-spark/recipe.toml

@@ -73,8 +73,8 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4-Spark (r27 img, nvfp4 KV, 2x)"
 name = "GLM-5.3-Flash NVFP4-Spark (r27 img, nvfp4 KV, 2x)"
-docker_image = "glm53-jovian-r27:local"  # r27 clone-at-pin build (docker-images/glm53-jovian-r27)
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r27-glm53"  # r27 clone-at-pin build (docker-images/jovian-judgement)
+docker_image_dir = "jovian-judgement"
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # r12 image had ["vllm","serve"] baked in, which is why this was absent
 # r12 image had ["vllm","serve"] baked in, which is why this was absent

+ 6 - 6
recipes/glm53-flash-r28-4x-dcp4-b12xload/recipe.toml

@@ -6,7 +6,7 @@
 # b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes, W4A4 FC1
 # b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes, W4A4 FC1
 # fusion, M8 route prep, M1 FC2 overlap, GDN/MHC perf), LMCache 934c287a
 # fusion, M8 route prep, M1 FC2 overlap, GDN/MHC perf), LMCache 934c287a
 # (3 MP-transfer robustness fixes). Same model/flags/KV pin; the image is
 # (3 MP-transfer robustness fixes). Same model/flags/KV pin; the image is
-# the r27 build dir with the named version profile profiles/glm53-r28.env
+# the r27 build dir with the named version profile profiles/r28.env
 # (clone-at-pin fetches each commit directly, the tree gates verify them).
 # (clone-at-pin fetches each commit directly, the tree gates verify them).
 
 
 # GLM-5.3-Flash NVFP4 — local-inference-lab quant (vLLM) — 2× DGX Spark, TP=2.
 # GLM-5.3-Flash NVFP4 — local-inference-lab quant (vLLM) — 2× DGX Spark, TP=2.
@@ -84,23 +84,23 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4 (r28, b12x O_DIRECT loader test)"
 name = "GLM-5.3-Flash NVFP4 (r28, b12x O_DIRECT loader test)"
-docker_image = "glm53-jovian-r28:local"  # full r28 lock (build_profile) over the r27 image tree
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r28-glm53"  # full r28 lock (build_profile) over the jovian-judgement image tree
+docker_image_dir = "jovian-judgement"
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # [[extra_mounts]] would parse into the last mount table and be silently
 # [[extra_mounts]] would parse into the last mount table and be silently
 # ignored (2026-09-08).
 # ignored (2026-09-08).
 # FULL r28 source lock (2026-09-06 cut, all three forks): the named version
 # FULL r28 source lock (2026-09-06 cut, all three forks): the named version
-# profile docker-images/glm53-jovian-r27/profiles/glm53-r28.env — vLLM
+# profile docker-images/jovian-judgement/profiles/r28.env — vLLM
 # 62f6385c + b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes,
 # 62f6385c + b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes,
 # MoE perf) + LMCache 934c287a (3 MP-transfer fixes). Merged over the image
 # MoE perf) + LMCache 934c287a (3 MP-transfer fixes). Merged over the image
 # dir's versions.env and folded into the build checksum, so this is a
 # dir's versions.env and folded into the build checksum, so this is a
-# distinct image (tag glm53-jovian-r28:local) sharing the r27 build tree.
+# distinct image (tag jovian-judgement:r28-glm53) sharing the r27 build tree.
 # Clone-at-pin fetches each commit directly; the Dockerfile gates HEAD + tree
 # Clone-at-pin fetches each commit directly; the Dockerfile gates HEAD + tree
 # hash per repo. Both r28 branches are strictly ahead of their r27/r26 pins
 # hash per repo. Both r28 branches are strictly ahead of their r27/r26 pins
 # (0 behind) — a clean superset. The r28 vLLM tree has NO requirements/cmake
 # (0 behind) — a clean superset. The r28 vLLM tree has NO requirements/cmake
 # changes vs r27 (verified via the GitHub compare API, 13 commits / 29 files),
 # changes vs r27 (verified via the GitHub compare API, 13 commits / 29 files),
 # so the fetch-deps.sh dep gates still hold.
 # so the fetch-deps.sh dep gates still hold.
-build_profile = "glm53-r28"
+build_profile = "r28"
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # r12 image had ["vllm","serve"] baked in, which is why this was absent
 # r12 image had ["vllm","serve"] baked in, which is why this was absent

+ 6 - 6
recipes/glm53-flash-r28-4x-dcp4-split2048/recipe.toml

@@ -6,7 +6,7 @@
 # b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes, W4A4 FC1
 # b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes, W4A4 FC1
 # fusion, M8 route prep, M1 FC2 overlap, GDN/MHC perf), LMCache 934c287a
 # fusion, M8 route prep, M1 FC2 overlap, GDN/MHC perf), LMCache 934c287a
 # (3 MP-transfer robustness fixes). Same model/flags/KV pin; the image is
 # (3 MP-transfer robustness fixes). Same model/flags/KV pin; the image is
-# the r27 build dir with the named version profile profiles/glm53-r28.env
+# the r27 build dir with the named version profile profiles/r28.env
 # (clone-at-pin fetches each commit directly, the tree gates verify them).
 # (clone-at-pin fetches each commit directly, the tree gates verify them).
 
 
 # GLM-5.3-Flash NVFP4 — local-inference-lab quant (vLLM) — 2× DGX Spark, TP=2.
 # GLM-5.3-Flash NVFP4 — local-inference-lab quant (vLLM) — 2× DGX Spark, TP=2.
@@ -84,23 +84,23 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4 (r28, split-KV 2048/256 test)"
 name = "GLM-5.3-Flash NVFP4 (r28, split-KV 2048/256 test)"
-docker_image = "glm53-jovian-r28:local"  # full r28 lock (build_profile) over the r27 image tree
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r28-glm53"  # full r28 lock (build_profile) over the jovian-judgement image tree
+docker_image_dir = "jovian-judgement"
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # [[extra_mounts]] would parse into the last mount table and be silently
 # [[extra_mounts]] would parse into the last mount table and be silently
 # ignored (2026-09-08).
 # ignored (2026-09-08).
 # FULL r28 source lock (2026-09-06 cut, all three forks): the named version
 # FULL r28 source lock (2026-09-06 cut, all three forks): the named version
-# profile docker-images/glm53-jovian-r27/profiles/glm53-r28.env — vLLM
+# profile docker-images/jovian-judgement/profiles/r28.env — vLLM
 # 62f6385c + b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes,
 # 62f6385c + b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes,
 # MoE perf) + LMCache 934c287a (3 MP-transfer fixes). Merged over the image
 # MoE perf) + LMCache 934c287a (3 MP-transfer fixes). Merged over the image
 # dir's versions.env and folded into the build checksum, so this is a
 # dir's versions.env and folded into the build checksum, so this is a
-# distinct image (tag glm53-jovian-r28:local) sharing the r27 build tree.
+# distinct image (tag jovian-judgement:r28-glm53) sharing the r27 build tree.
 # Clone-at-pin fetches each commit directly; the Dockerfile gates HEAD + tree
 # Clone-at-pin fetches each commit directly; the Dockerfile gates HEAD + tree
 # hash per repo. Both r28 branches are strictly ahead of their r27/r26 pins
 # hash per repo. Both r28 branches are strictly ahead of their r27/r26 pins
 # (0 behind) — a clean superset. The r28 vLLM tree has NO requirements/cmake
 # (0 behind) — a clean superset. The r28 vLLM tree has NO requirements/cmake
 # changes vs r27 (verified via the GitHub compare API, 13 commits / 29 files),
 # changes vs r27 (verified via the GitHub compare API, 13 commits / 29 files),
 # so the fetch-deps.sh dep gates still hold.
 # so the fetch-deps.sh dep gates still hold.
-build_profile = "glm53-r28"
+build_profile = "r28"
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # r12 image had ["vllm","serve"] baked in, which is why this was absent
 # r12 image had ["vllm","serve"] baked in, which is why this was absent

+ 6 - 6
recipes/glm53-flash-r28-4x-dcp4/recipe.toml

@@ -6,7 +6,7 @@
 # b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes, W4A4 FC1
 # b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes, W4A4 FC1
 # fusion, M8 route prep, M1 FC2 overlap, GDN/MHC perf), LMCache 934c287a
 # fusion, M8 route prep, M1 FC2 overlap, GDN/MHC perf), LMCache 934c287a
 # (3 MP-transfer robustness fixes). Same model/flags/KV pin; the image is
 # (3 MP-transfer robustness fixes). Same model/flags/KV pin; the image is
-# the r27 build dir with the named version profile profiles/glm53-r28.env
+# the r27 build dir with the named version profile profiles/r28.env
 # (clone-at-pin fetches each commit directly, the tree gates verify them).
 # (clone-at-pin fetches each commit directly, the tree gates verify them).
 
 
 # GLM-5.3-Flash NVFP4 — local-inference-lab quant (vLLM) — 2× DGX Spark, TP=2.
 # GLM-5.3-Flash NVFP4 — local-inference-lab quant (vLLM) — 2× DGX Spark, TP=2.
@@ -84,23 +84,23 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4 (r28 img, lab ckpt, 4x DCP4)"
 name = "GLM-5.3-Flash NVFP4 (r28 img, lab ckpt, 4x DCP4)"
-docker_image = "glm53-jovian-r28:local"  # full r28 lock (build_profile) over the r27 image tree
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r28-glm53"  # full r28 lock (build_profile) over the jovian-judgement image tree
+docker_image_dir = "jovian-judgement"
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # [[extra_mounts]] would parse into the last mount table and be silently
 # [[extra_mounts]] would parse into the last mount table and be silently
 # ignored (2026-09-08).
 # ignored (2026-09-08).
 # FULL r28 source lock (2026-09-06 cut, all three forks): the named version
 # FULL r28 source lock (2026-09-06 cut, all three forks): the named version
-# profile docker-images/glm53-jovian-r27/profiles/glm53-r28.env — vLLM
+# profile docker-images/jovian-judgement/profiles/r28.env — vLLM
 # 62f6385c + b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes,
 # 62f6385c + b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes,
 # MoE perf) + LMCache 934c287a (3 MP-transfer fixes). Merged over the image
 # MoE perf) + LMCache 934c287a (3 MP-transfer fixes). Merged over the image
 # dir's versions.env and folded into the build checksum, so this is a
 # dir's versions.env and folded into the build checksum, so this is a
-# distinct image (tag glm53-jovian-r28:local) sharing the r27 build tree.
+# distinct image (tag jovian-judgement:r28-glm53) sharing the r27 build tree.
 # Clone-at-pin fetches each commit directly; the Dockerfile gates HEAD + tree
 # Clone-at-pin fetches each commit directly; the Dockerfile gates HEAD + tree
 # hash per repo. Both r28 branches are strictly ahead of their r27/r26 pins
 # hash per repo. Both r28 branches are strictly ahead of their r27/r26 pins
 # (0 behind) — a clean superset. The r28 vLLM tree has NO requirements/cmake
 # (0 behind) — a clean superset. The r28 vLLM tree has NO requirements/cmake
 # changes vs r27 (verified via the GitHub compare API, 13 commits / 29 files),
 # changes vs r27 (verified via the GitHub compare API, 13 commits / 29 files),
 # so the fetch-deps.sh dep gates still hold.
 # so the fetch-deps.sh dep gates still hold.
-build_profile = "glm53-r28"
+build_profile = "r28"
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # r12 image had ["vllm","serve"] baked in, which is why this was absent
 # r12 image had ["vllm","serve"] baked in, which is why this was absent

+ 3 - 3
recipes/glm53-flash-r28-dflash2-2x/recipe.toml

@@ -18,9 +18,9 @@
 #
 #
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4 (r28 img, DFlash2 k=7, 2x re-test)"
 name = "GLM-5.3-Flash NVFP4 (r28 img, DFlash2 k=7, 2x re-test)"
-docker_image = "glm53-jovian-r28:local"  # full r28 lock via build_profile
-build_profile = "glm53-r28"
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r28-glm53"  # full r28 lock via build_profile
+build_profile = "r28"
+docker_image_dir = "jovian-judgement"
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # r12 image had ["vllm","serve"] baked in, which is why this was absent
 # r12 image had ["vllm","serve"] baked in, which is why this was absent

+ 3 - 3
recipes/glm53-flash-r28-spark/recipe.toml

@@ -73,9 +73,9 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4-Spark (r27 img, nvfp4 KV, 2x)"
 name = "GLM-5.3-Flash NVFP4-Spark (r27 img, nvfp4 KV, 2x)"
-docker_image = "glm53-jovian-r28:local"  # r27 clone-at-pin build (docker-images/glm53-jovian-r27)
-docker_image_dir = "glm53-jovian-r27"
-build_profile = "glm53-r28"
+docker_image = "jovian-judgement:r28-glm53"  # r27 clone-at-pin build (docker-images/jovian-judgement)
+docker_image_dir = "jovian-judgement"
+build_profile = "r28"
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # r12 image had ["vllm","serve"] baked in, which is why this was absent
 # r12 image had ["vllm","serve"] baked in, which is why this was absent

+ 3 - 3
recipes/glm53-flash-r31-2x/recipe.toml

@@ -73,9 +73,9 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4-Spark (r31 img, 2x DAC)"
 name = "GLM-5.3-Flash NVFP4-Spark (r31 img, 2x DAC)"
-docker_image = "glm53-jovian-r31:local"  # r27 clone-at-pin build (docker-images/glm53-jovian-r27)
-docker_image_dir = "glm53-jovian-r27"
-build_profile = "glm53-r31"
+docker_image = "jovian-judgement:r31-glm53"  # r27 clone-at-pin build (docker-images/jovian-judgement)
+docker_image_dir = "jovian-judgement"
+build_profile = "r31"
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # r12 image had ["vllm","serve"] baked in, which is why this was absent
 # r12 image had ["vllm","serve"] baked in, which is why this was absent

+ 6 - 6
recipes/glm53-flash-r31-4x-dcp4/recipe.toml

@@ -6,7 +6,7 @@
 # b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes, W4A4 FC1
 # b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes, W4A4 FC1
 # fusion, M8 route prep, M1 FC2 overlap, GDN/MHC perf), LMCache 934c287a
 # fusion, M8 route prep, M1 FC2 overlap, GDN/MHC perf), LMCache 934c287a
 # (3 MP-transfer robustness fixes). Same model/flags/KV pin; the image is
 # (3 MP-transfer robustness fixes). Same model/flags/KV pin; the image is
-# the r27 build dir with the named version profile profiles/glm53-r28.env
+# the r27 build dir with the named version profile profiles/r28.env
 # (clone-at-pin fetches each commit directly, the tree gates verify them).
 # (clone-at-pin fetches each commit directly, the tree gates verify them).
 
 
 # GLM-5.3-Flash NVFP4 — local-inference-lab quant (vLLM) — 2× DGX Spark, TP=2.
 # GLM-5.3-Flash NVFP4 — local-inference-lab quant (vLLM) — 2× DGX Spark, TP=2.
@@ -84,23 +84,23 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4 (r31 img, lab ckpt, 4x DCP4)"
 name = "GLM-5.3-Flash NVFP4 (r31 img, lab ckpt, 4x DCP4)"
-docker_image = "glm53-jovian-r31:local"  # full r28 lock (build_profile) over the r27 image tree
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r31-glm53"  # full r28 lock (build_profile) over the jovian-judgement image tree
+docker_image_dir = "jovian-judgement"
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # [[extra_mounts]] would parse into the last mount table and be silently
 # [[extra_mounts]] would parse into the last mount table and be silently
 # ignored (2026-09-08).
 # ignored (2026-09-08).
 # FULL r28 source lock (2026-09-06 cut, all three forks): the named version
 # FULL r28 source lock (2026-09-06 cut, all three forks): the named version
-# profile docker-images/glm53-jovian-r27/profiles/glm53-r28.env — vLLM
+# profile docker-images/jovian-judgement/profiles/r28.env — vLLM
 # 62f6385c + b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes,
 # 62f6385c + b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes,
 # MoE perf) + LMCache 934c287a (3 MP-transfer fixes). Merged over the image
 # MoE perf) + LMCache 934c287a (3 MP-transfer fixes). Merged over the image
 # dir's versions.env and folded into the build checksum, so this is a
 # dir's versions.env and folded into the build checksum, so this is a
-# distinct image (tag glm53-jovian-r28:local) sharing the r27 build tree.
+# distinct image (tag jovian-judgement:r28-glm53) sharing the r27 build tree.
 # Clone-at-pin fetches each commit directly; the Dockerfile gates HEAD + tree
 # Clone-at-pin fetches each commit directly; the Dockerfile gates HEAD + tree
 # hash per repo. Both r28 branches are strictly ahead of their r27/r26 pins
 # hash per repo. Both r28 branches are strictly ahead of their r27/r26 pins
 # (0 behind) — a clean superset. The r28 vLLM tree has NO requirements/cmake
 # (0 behind) — a clean superset. The r28 vLLM tree has NO requirements/cmake
 # changes vs r27 (verified via the GitHub compare API, 13 commits / 29 files),
 # changes vs r27 (verified via the GitHub compare API, 13 commits / 29 files),
 # so the fetch-deps.sh dep gates still hold.
 # so the fetch-deps.sh dep gates still hold.
-build_profile = "glm53-r31"
+build_profile = "r31"
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # r12 image had ["vllm","serve"] baked in, which is why this was absent
 # r12 image had ["vllm","serve"] baked in, which is why this was absent

+ 4 - 4
recipes/glm53-flash-r35-2x-dflash2/recipe.toml

@@ -3,7 +3,7 @@
 # Kept as a regression canary: if a future lab build fixes 2x DFlash2 page
 # Kept as a regression canary: if a future lab build fixes 2x DFlash2 page
 # geometry, this recipe is the test. 2x prod stays MTP3 (r31-2x / r35 4x).
 # geometry, this recipe is the test. 2x prod stays MTP3 (r31-2x / r35 4x).
 #
 #
-# Clone of recipes/glm53-flash-r31-2x with the r35 image (glm53-jovian-r35:local,
+# Clone of recipes/glm53-flash-r31-2x with the r35 image (jovian-judgement:r35-glm53,
 # checksum 8bb87348, DFlash2 machinery in-tree) and ONLY the speculative-config
 # checksum 8bb87348, DFlash2 machinery in-tree) and ONLY the speculative-config
 # swapped: MTP3 -> DFlash2 (lab's block-diffusion ~1B draft, offline MXFP8,
 # swapped: MTP3 -> DFlash2 (lab's block-diffusion ~1B draft, offline MXFP8,
 # already on the shared NAS). Lab's own Spark 2x profile is MTP3-only (no DFlash
 # already on the shared NAS). Lab's own Spark 2x profile is MTP3-only (no DFlash
@@ -83,9 +83,9 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4-Spark (r35 img, 2x DAC, DFlash2 K7)"
 name = "GLM-5.3-Flash NVFP4-Spark (r35 img, 2x DAC, DFlash2 K7)"
-docker_image = "glm53-jovian-r35:local"  # r27 clone-at-pin build (docker-images/glm53-jovian-r27, r35 profile)
-docker_image_dir = "glm53-jovian-r27"
-build_profile = "glm53-r35"
+docker_image = "jovian-judgement:r35-glm53"  # r27 clone-at-pin build (docker-images/jovian-judgement, r35 profile)
+docker_image_dir = "jovian-judgement"
+build_profile = "r35"
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # r12 image had ["vllm","serve"] baked in, which is why this was absent
 # r12 image had ["vllm","serve"] baked in, which is why this was absent

+ 6 - 6
recipes/glm53-flash-r35-4x-dcp4/recipe.toml

@@ -6,7 +6,7 @@
 # b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes, W4A4 FC1
 # b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes, W4A4 FC1
 # fusion, M8 route prep, M1 FC2 overlap, GDN/MHC perf), LMCache 934c287a
 # fusion, M8 route prep, M1 FC2 overlap, GDN/MHC perf), LMCache 934c287a
 # (3 MP-transfer robustness fixes). Same model/flags/KV pin; the image is
 # (3 MP-transfer robustness fixes). Same model/flags/KV pin; the image is
-# the r27 build dir with the named version profile profiles/glm53-r28.env
+# the r27 build dir with the named version profile profiles/r28.env
 # (clone-at-pin fetches each commit directly, the tree gates verify them).
 # (clone-at-pin fetches each commit directly, the tree gates verify them).
 
 
 # GLM-5.3-Flash NVFP4 — local-inference-lab quant (vLLM) — 2× DGX Spark, TP=2.
 # GLM-5.3-Flash NVFP4 — local-inference-lab quant (vLLM) — 2× DGX Spark, TP=2.
@@ -84,23 +84,23 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4 (r35 img, lab ckpt, 4x DCP4)"
 name = "GLM-5.3-Flash NVFP4 (r35 img, lab ckpt, 4x DCP4)"
-docker_image = "glm53-jovian-r35:local"  # full r35 lock (build_profile) over the r27 image tree
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r35-glm53"  # full r35 lock (build_profile) over the jovian-judgement image tree
+docker_image_dir = "jovian-judgement"
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # [[extra_mounts]] would parse into the last mount table and be silently
 # [[extra_mounts]] would parse into the last mount table and be silently
 # ignored (2026-09-08).
 # ignored (2026-09-08).
 # FULL r28 source lock (2026-09-06 cut, all three forks): the named version
 # FULL r28 source lock (2026-09-06 cut, all three forks): the named version
-# profile docker-images/glm53-jovian-r27/profiles/glm53-r28.env — vLLM
+# profile docker-images/jovian-judgement/profiles/r28.env — vLLM
 # 62f6385c + b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes,
 # 62f6385c + b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes,
 # MoE perf) + LMCache 934c287a (3 MP-transfer fixes). Merged over the image
 # MoE perf) + LMCache 934c287a (3 MP-transfer fixes). Merged over the image
 # dir's versions.env and folded into the build checksum, so this is a
 # dir's versions.env and folded into the build checksum, so this is a
-# distinct image (tag glm53-jovian-r28:local) sharing the r27 build tree.
+# distinct image (tag jovian-judgement:r28-glm53) sharing the r27 build tree.
 # Clone-at-pin fetches each commit directly; the Dockerfile gates HEAD + tree
 # Clone-at-pin fetches each commit directly; the Dockerfile gates HEAD + tree
 # hash per repo. Both r28 branches are strictly ahead of their r27/r26 pins
 # hash per repo. Both r28 branches are strictly ahead of their r27/r26 pins
 # (0 behind) — a clean superset. The r28 vLLM tree has NO requirements/cmake
 # (0 behind) — a clean superset. The r28 vLLM tree has NO requirements/cmake
 # changes vs r27 (verified via the GitHub compare API, 13 commits / 29 files),
 # changes vs r27 (verified via the GitHub compare API, 13 commits / 29 files),
 # so the fetch-deps.sh dep gates still hold.
 # so the fetch-deps.sh dep gates still hold.
-build_profile = "glm53-r35"
+build_profile = "r35"
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # r12 image had ["vllm","serve"] baked in, which is why this was absent
 # r12 image had ["vllm","serve"] baked in, which is why this was absent

+ 6 - 6
recipes/glm53-flash-r35-4x-dflash2/recipe.toml

@@ -3,7 +3,7 @@
 # Clone of recipes/glm53-flash-r35-4x-dcp4 with ONLY the speculative-config
 # Clone of recipes/glm53-flash-r35-4x-dcp4 with ONLY the speculative-config
 # swapped: MTP3 -> DFlash2 (lab's block-diffusion ~1B draft, offline MXFP8,
 # swapped: MTP3 -> DFlash2 (lab's block-diffusion ~1B draft, offline MXFP8,
 # on the shared NAS from the 2026-08-28 port work). Same image
 # on the shared NAS from the 2026-08-28 port work). Same image
-# (glm53-jovian-r35:local, checksum 8bb87348 — DFlash2 machinery is in-tree),
+# (jovian-judgement:r35-glm53, checksum 8bb87348 — DFlash2 machinery is in-tree),
 # same 4x DCP4 shape, same KV/scheduler pins. Night-shift A/B: stop the MTP3
 # same 4x DCP4 shape, same KV/scheduler pins. Night-shift A/B: stop the MTP3
 # prod, serve this, bench (dev65, seed 42, hardmode, c1/c2) vs the 163/176
 # prod, serve this, bench (dev65, seed 42, hardmode, c1/c2) vs the 163/176
 # r35 anchor, decide, restore.
 # r35 anchor, decide, restore.
@@ -15,23 +15,23 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4 (r35 img, lab ckpt, 4x DCP4, DFlash2 K7)"
 name = "GLM-5.3-Flash NVFP4 (r35 img, lab ckpt, 4x DCP4, DFlash2 K7)"
-docker_image = "glm53-jovian-r35:local"  # full r35 lock (build_profile) over the r27 image tree
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r35-glm53"  # full r35 lock (build_profile) over the jovian-judgement image tree
+docker_image_dir = "jovian-judgement"
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # [[extra_mounts]] would parse into the last mount table and be silently
 # [[extra_mounts]] would parse into the last mount table and be silently
 # ignored (2026-09-08).
 # ignored (2026-09-08).
 # FULL r28 source lock (2026-09-06 cut, all three forks): the named version
 # FULL r28 source lock (2026-09-06 cut, all three forks): the named version
-# profile docker-images/glm53-jovian-r27/profiles/glm53-r28.env — vLLM
+# profile docker-images/jovian-judgement/profiles/r28.env — vLLM
 # 62f6385c + b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes,
 # 62f6385c + b12x 7216f6b9 (21 commits over r27: GLM/DeepSeek loader fixes,
 # MoE perf) + LMCache 934c287a (3 MP-transfer fixes). Merged over the image
 # MoE perf) + LMCache 934c287a (3 MP-transfer fixes). Merged over the image
 # dir's versions.env and folded into the build checksum, so this is a
 # dir's versions.env and folded into the build checksum, so this is a
-# distinct image (tag glm53-jovian-r28:local) sharing the r27 build tree.
+# distinct image (tag jovian-judgement:r28-glm53) sharing the r27 build tree.
 # Clone-at-pin fetches each commit directly; the Dockerfile gates HEAD + tree
 # Clone-at-pin fetches each commit directly; the Dockerfile gates HEAD + tree
 # hash per repo. Both r28 branches are strictly ahead of their r27/r26 pins
 # hash per repo. Both r28 branches are strictly ahead of their r27/r26 pins
 # (0 behind) — a clean superset. The r28 vLLM tree has NO requirements/cmake
 # (0 behind) — a clean superset. The r28 vLLM tree has NO requirements/cmake
 # changes vs r27 (verified via the GitHub compare API, 13 commits / 29 files),
 # changes vs r27 (verified via the GitHub compare API, 13 commits / 29 files),
 # so the fetch-deps.sh dep gates still hold.
 # so the fetch-deps.sh dep gates still hold.
-build_profile = "glm53-r35"
+build_profile = "r35"
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # Required: the clean r12 image follows the solar contract (ENTRYPOINT []
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # + CMD bash), so the recipe carries the entrypoint (the old day-0-based
 # r12 image had ["vllm","serve"] baked in, which is why this was absent
 # r12 image had ["vllm","serve"] baked in, which is why this was absent

+ 4 - 4
recipes/glm53-flash-spark-4x/recipe.toml

@@ -4,7 +4,7 @@
 # Operator direction (2026-09-19): after the NAS disk death the interim
 # Operator direction (2026-09-19): after the NAS disk death the interim
 # serving mode is 2x + 4x on local NVMe with the current lab quants. This
 # serving mode is 2x + 4x on local NVMe with the current lab quants. This
 # lane uses the latest lab engine (r38 = dev/jovian-judgement tip 8e1f1e5,
 # lane uses the latest lab engine (r38 = dev/jovian-judgement tip 8e1f1e5,
-# see profiles/jovian-r38-glm53.env) instead of the legacy r12 rebuild
+# see profiles/r38.env) instead of the legacy r12 rebuild
 # (the r12 image is gone from the nodes; the r12 composition is a "phantom"
 # (the r12 image is gone from the nodes; the r12 composition is a "phantom"
 # — the lab mainline keeps the split GDN naming the current quants carry,
 # — the lab mainline keeps the split GDN naming the current quants carry,
 # and the r38 tip adds the B12X MXFP8 linear kernel that the r35-era
 # and the r38 tip adds the B12X MXFP8 linear kernel that the r35-era
@@ -39,9 +39,9 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3-Flash NVFP4-Spark (vLLM, 4x Spark, MTP-3, r38 tip)"
 name = "GLM-5.3-Flash NVFP4-Spark (vLLM, 4x Spark, MTP-3, r38 tip)"
-docker_image = "glm53-jovian-r35:local"  # r35 loads the Spark checkpoint (r38 pool-deadlock, see bug report)
-docker_image_dir = "glm53-jovian-r27"
-build_profile = "glm53-r35"
+docker_image = "jovian-judgement:r35-glm53"  # r35 loads the Spark checkpoint (r38 pool-deadlock, see bug report)
+docker_image_dir = "jovian-judgement"
+build_profile = "r35"
 entrypoint = ["vllm", "serve"]
 entrypoint = ["vllm", "serve"]
 model = "local-inference-lab/GLM-5.3-Flash-NVFP4-Spark"
 model = "local-inference-lab/GLM-5.3-Flash-NVFP4-Spark"
 parent_model = "zai-org/GLM-5.3-Flash"
 parent_model = "zai-org/GLM-5.3-Flash"

+ 5 - 5
recipes/glm53-full-mxfp4-4x-dspark8/recipe.toml

@@ -28,8 +28,8 @@
 # ~740B total params / ~40B active. The Flash variant we serve in prod is
 # ~740B total params / ~40B active. The Flash variant we serve in prod is
 # 320B/18B (45 layers, hidden 4096, 288 experts) — this is a different model.
 # 320B/18B (45 layers, hidden 4096, 288 experts) — this is a different model.
 #
 #
-# ── BASE STACK: our own jovian r35 build (docker-images/glm53-jovian-r27 +
-#    build_profile glm53-r35 → image glm53-jovian-r35:local) ────────────────
+# ── BASE STACK: our own jovian r35 build (docker-images/jovian-judgement +
+#    build_profile r35 → image jovian-judgement:r35-glm53) ────────────────
 # Selected 2026-09-13. Evidence (all verified by read-only inspection of the
 # Selected 2026-09-13. Evidence (all verified by read-only inspection of the
 # images on dgx1):
 # images on dgx1):
 #   * registers the full-model arch: registry.py →
 #   * registers the full-model arch: registry.py →
@@ -144,12 +144,12 @@ name = "GLM-5.3 (full) MXFP4 (r37 img, 4x, DSpark K8 @131K)"
 # decode). r37 is the newer DS4.1 lock whose DCP sparse-MLA path is the
 # decode). r37 is the newer DS4.1 lock whose DCP sparse-MLA path is the
 # qualified one (same tree family as our DCP2/DFlash2 work); the GlmMoeDsa
 # qualified one (same tree family as our DCP2/DFlash2 work); the GlmMoeDsa
 # arch + MTP + b12x ship in the r37 image (verified 2026-09-13).
 # arch + MTP + b12x ship in the r37 image (verified 2026-09-13).
-docker_image = "jovian-r37-ds41:local"
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r37-ds41"
+docker_image_dir = "jovian-judgement"
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # [[extra_mounts]] would parse into the last mount table and be silently
 # [[extra_mounts]] would parse into the last mount table and be silently
 # ignored (2026-09-08).
 # ignored (2026-09-08).
-build_profile = "jovian-r37-ds41"
+build_profile = "r37-ds41"
 entrypoint = ["vllm", "serve"]
 entrypoint = ["vllm", "serve"]
 model = "RedHatAI/GLM-5.3-MXFP4"
 model = "RedHatAI/GLM-5.3-MXFP4"
 parent_model = "zai-org/GLM-5.3"
 parent_model = "zai-org/GLM-5.3"

+ 5 - 5
recipes/glm53-full-mxfp4-4x-probe/recipe.toml

@@ -35,8 +35,8 @@
 # ~740B total params / ~40B active. The Flash variant we serve in prod is
 # ~740B total params / ~40B active. The Flash variant we serve in prod is
 # 320B/18B (45 layers, hidden 4096, 288 experts) — this is a different model.
 # 320B/18B (45 layers, hidden 4096, 288 experts) — this is a different model.
 #
 #
-# ── BASE STACK: our own jovian r35 build (docker-images/glm53-jovian-r27 +
-#    build_profile glm53-r35 → image glm53-jovian-r35:local) ────────────────
+# ── BASE STACK: our own jovian r35 build (docker-images/jovian-judgement +
+#    build_profile r35 → image jovian-judgement:r35-glm53) ────────────────
 # Selected 2026-09-13. Evidence (all verified by read-only inspection of the
 # Selected 2026-09-13. Evidence (all verified by read-only inspection of the
 # images on dgx1):
 # images on dgx1):
 #   * registers the full-model arch: registry.py →
 #   * registers the full-model arch: registry.py →
@@ -144,12 +144,12 @@
 
 
 engine = "vllm"
 engine = "vllm"
 name = "GLM-5.3 (full) MXFP4 — P0 PROBE: no DCP, 131K, 4 GiB KV (r35 img)"
 name = "GLM-5.3 (full) MXFP4 — P0 PROBE: no DCP, 131K, 4 GiB KV (r35 img)"
-docker_image = "glm53-jovian-r35:local"
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r35-glm53"
+docker_image_dir = "jovian-judgement"
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # [[extra_mounts]] would parse into the last mount table and be silently
 # [[extra_mounts]] would parse into the last mount table and be silently
 # ignored (2026-09-08).
 # ignored (2026-09-08).
-build_profile = "glm53-r35"
+build_profile = "r35"
 entrypoint = ["vllm", "serve"]
 entrypoint = ["vllm", "serve"]
 model = "RedHatAI/GLM-5.3-MXFP4"
 model = "RedHatAI/GLM-5.3-MXFP4"
 parent_model = "zai-org/GLM-5.3"
 parent_model = "zai-org/GLM-5.3"

+ 5 - 5
recipes/glm53-full-mxfp4-4x/recipe.toml

@@ -28,8 +28,8 @@
 # ~740B total params / ~40B active. The Flash variant we serve in prod is
 # ~740B total params / ~40B active. The Flash variant we serve in prod is
 # 320B/18B (45 layers, hidden 4096, 288 experts) — this is a different model.
 # 320B/18B (45 layers, hidden 4096, 288 experts) — this is a different model.
 #
 #
-# ── BASE STACK: our own jovian r35 build (docker-images/glm53-jovian-r27 +
-#    build_profile glm53-r35 → image glm53-jovian-r35:local) ────────────────
+# ── BASE STACK: our own jovian r35 build (docker-images/jovian-judgement +
+#    build_profile r35 → image jovian-judgement:r35-glm53) ────────────────
 # Selected 2026-09-13. Evidence (all verified by read-only inspection of the
 # Selected 2026-09-13. Evidence (all verified by read-only inspection of the
 # images on dgx1):
 # images on dgx1):
 #   * registers the full-model arch: registry.py →
 #   * registers the full-model arch: registry.py →
@@ -144,12 +144,12 @@ name = "GLM-5.3 (full) MXFP4 (r35 img, RedHatAI ckpt, 4x DCP4)"
 # decode). r37 is the newer DS4.1 lock whose DCP sparse-MLA path is the
 # decode). r37 is the newer DS4.1 lock whose DCP sparse-MLA path is the
 # qualified one (same tree family as our DCP2/DFlash2 work); the GlmMoeDsa
 # qualified one (same tree family as our DCP2/DFlash2 work); the GlmMoeDsa
 # arch + MTP + b12x ship in the r37 image (verified 2026-09-13).
 # arch + MTP + b12x ship in the r37 image (verified 2026-09-13).
-docker_image = "jovian-r37-ds41:local"
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r37-ds41"
+docker_image_dir = "jovian-judgement"
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # [[extra_mounts]] would parse into the last mount table and be silently
 # [[extra_mounts]] would parse into the last mount table and be silently
 # ignored (2026-09-08).
 # ignored (2026-09-08).
-build_profile = "jovian-r37-ds41"
+build_profile = "r37-ds41"
 entrypoint = ["vllm", "serve"]
 entrypoint = ["vllm", "serve"]
 model = "RedHatAI/GLM-5.3-MXFP4"
 model = "RedHatAI/GLM-5.3-MXFP4"
 parent_model = "zai-org/GLM-5.3"
 parent_model = "zai-org/GLM-5.3"

+ 3 - 3
recipes/glm53-full-mxfp4-8x/recipe.toml

@@ -22,12 +22,12 @@ name = "GLM-5.3 (full) MXFP4 (r37 img, RedHatAI ckpt, 8x DCP1 @512K)"
 # decode). r37 is the newer DS4.1 lock whose DCP sparse-MLA path is the
 # decode). r37 is the newer DS4.1 lock whose DCP sparse-MLA path is the
 # qualified one (same tree family as our DCP2/DFlash2 work); the GlmMoeDsa
 # qualified one (same tree family as our DCP2/DFlash2 work); the GlmMoeDsa
 # arch + MTP + b12x ship in the r37 image (verified 2026-09-13).
 # arch + MTP + b12x ship in the r37 image (verified 2026-09-13).
-docker_image = "jovian-r37-ds41:local"
-docker_image_dir = "glm53-jovian-r27"
+docker_image = "jovian-judgement:r37-ds41"
+docker_image_dir = "jovian-judgement"
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # NOTE: build_profile must stay a TOP-LEVEL key — a bare key after
 # [[extra_mounts]] would parse into the last mount table and be silently
 # [[extra_mounts]] would parse into the last mount table and be silently
 # ignored (2026-09-08).
 # ignored (2026-09-08).
-build_profile = "jovian-r37-ds41"
+build_profile = "r37-ds41"
 entrypoint = ["vllm", "serve"]
 entrypoint = ["vllm", "serve"]
 model = "RedHatAI/GLM-5.3-MXFP4"
 model = "RedHatAI/GLM-5.3-MXFP4"
 parent_model = "zai-org/GLM-5.3"
 parent_model = "zai-org/GLM-5.3"

+ 6 - 6
specs/tech-architecture/glm53-recipe-state.md

@@ -859,7 +859,7 @@ Operator verdict: regenerating tarballs on some machine is nonsense (the
 sources existed only on that machine — a fresh repo clone could not build).
 sources existed only on that machine — a fresh repo clone could not build).
 The r27 build has NO context tarballs:
 The r27 build has NO context tarballs:
 
 
-- `docker-images/glm53-jovian-r27/` — clone-at-pin build: the Dockerfile
+- `docker-images/jovian-judgement/` — clone-at-pin build: the Dockerfile
   clones vLLM/b12x/LMCache at pinned commits (versions.env `*_PIN` = SHA,
   clones vLLM/b12x/LMCache at pinned commits (versions.env `*_PIN` = SHA,
   `*_TREE` = git tree hash, gates assert BOTH), builds sub-deps from the
   `*_TREE` = git tree hash, gates assert BOTH), builds sub-deps from the
   pins the tree itself declares (fetch-deps.sh, grep-gated against the
   pins the tree itself declares (fetch-deps.sh, grep-gated against the
@@ -1100,7 +1100,7 @@ prefix-cache hits. b12x unchanged (e8ad299b, RoCEnante already in).
 New recipe `glm53-flash-r28-4x-dcp4`: clone of the r27 4x-dcp4 recipe
 New recipe `glm53-flash-r28-4x-dcp4`: clone of the r27 4x-dcp4 recipe
 (160/176, 46.8/62.4 t/s) with `[build.versions]` overriding
 (160/176, 46.8/62.4 t/s) with `[build.versions]` overriding
 `VLLM_PIN`/`VLLM_TREE`/`VLLM_PRETEND_VERSION` — same build dir
 `VLLM_PIN`/`VLLM_TREE`/`VLLM_PRETEND_VERSION` — same build dir
-(`glm53-jovian-r27`), distinct image tag `glm53-jovian-r28:local`,
+(`jovian-judgement`), distinct image tag `jovian-judgement:r28-glm53`,
 override folds into the build checksum (separate image, no r27 rebuild).
 override folds into the build checksum (separate image, no r27 rebuild).
 A/B target: r27 4x DCP4 160/176 + 46.8 t/s; 2x (162/176, 27.4 t/s) after
 A/B target: r27 4x DCP4 160/176 + 46.8 t/s; 2x (162/176, 27.4 t/s) after
 the 4x verdict.
 the 4x verdict.
@@ -1155,7 +1155,7 @@ jovian-warmup-buffer-reuse-20260909 — carries the GLM Flash MTP projection
 loader fix for our upstream eh_proj issue, FlashInfer GDN prefill on SM12x,
 loader fix for our upstream eh_proj issue, FlashInfer GDN prefill on SM12x,
 scheduler hardening) + b12x 3edbcbce (frozen since 09-08, incl. TP2 graph
 scheduler hardening) + b12x 3edbcbce (frozen since 09-08, incl. TP2 graph
 peer-push fix) + LMCache f868580a. Clone-at-pin build via the new version
 peer-push fix) + LMCache f868580a. Clone-at-pin build via the new version
-profile `docker-images/glm53-jovian-r27/profiles/glm53-r31.env` (empty
+profile `docker-images/jovian-judgement/profiles/r31.env` (empty
 `FLASH_KDA_SRC_DIR` — the r28.1+ tree gates FlashKDA on the packed
 `FLASH_KDA_SRC_DIR` — the r28.1+ tree gates FlashKDA on the packed
 checkpoint API and must use its own pinned 3b225bf2 + in-tree patch
 checkpoint API and must use its own pinned 3b225bf2 + in-tree patch
 fallback; the Dockerfile now takes `FLASH_KDA_SRC_DIR` as an ARG).
 fallback; the Dockerfile now takes `FLASH_KDA_SRC_DIR` as an ARG).
@@ -1186,7 +1186,7 @@ Full shift log: `history/night-shifts/2026-09-10.md`.
 ### R35 adoption (2026-09-12, tool 2.6.1.dev65, 4nodes-switch 4x DCP4)
 ### R35 adoption (2026-09-12, tool 2.6.1.dev65, 4nodes-switch 4x DCP4)
 
 
 Latest lab rev (qualified 2026-09-11): vLLM `de982a50` / b12x `98086604` /
 Latest lab rev (qualified 2026-09-11): vLLM `de982a50` / b12x `98086604` /
-LMCache `29bc5a2e` (`profiles/glm53-r35.env`, recipe
+LMCache `29bc5a2e` (`profiles/r35.env`, recipe
 `glm53-flash-r35-4x-dcp4`). R33's shared-input split MoE prefill arrives with
 `glm53-flash-r35-4x-dcp4`). R33's shared-input split MoE prefill arrives with
 R35's merged B12X SwiGLU-clamp correction (R33/R34 shipped the split path
 R35's merged B12X SwiGLU-clamp correction (R33/R34 shipped the split path
 without the model's clamp — the runaway-generation defect; we skipped
 without the model's clamp — the runaway-generation defect; we skipped
@@ -1274,8 +1274,8 @@ file size agree at MXFP4's 4.25 bits/param; note the 09-08 history entry's
 from the 320B/18B Flash variant we serve in prod: 45 layers, hidden 4096).
 from the 320B/18B Flash variant we serve in prod: 45 layers, hidden 4096).
 
 
 **BASE STACK SELECTED: our own jovian r35 build** —
 **BASE STACK SELECTED: our own jovian r35 build** —
-`docker_image_dir = "glm53-jovian-r27"` + `build_profile = "glm53-r35"` →
-image `glm53-jovian-r35:local`, the same image as the Flash 4x prod. Evidence
+`docker_image_dir = "jovian-judgement"` + `build_profile = "r35"` →
+image `jovian-judgement:r35-glm53`, the same image as the Flash 4x prod. Evidence
 (read-only image inspection, 2026-09-13):
 (read-only image inspection, 2026-09-13):
 - `registry.py` maps `"GlmMoeDsaForCausalLM" → vllm.models.deepseek_v32`, the
 - `registry.py` maps `"GlmMoeDsaForCausalLM" → vllm.models.deepseek_v32`, the
   NEW implementation ("MLA + a lightning indexer selecting top-k for sparse
   NEW implementation ("MLA + a lightning indexer selecting top-k for sparse

+ 8 - 3
src/docker/build_tests.rs

@@ -8,9 +8,14 @@ use std::time::Duration;
 #[test]
 #[test]
 fn registry_refs_version_and_latest() {
 fn registry_refs_version_and_latest() {
     use crate::docker::push::registry_refs;
     use crate::docker::push::registry_refs;
-    let (v, l) = registry_refs("ghcr.io/kilork", "glm53-jovian-r35:local", "ead6e95a333d").unwrap();
-    assert_eq!(v, "ghcr.io/kilork/glm53-jovian-r35:ead6e95a333d");
-    assert_eq!(l, "ghcr.io/kilork/glm53-jovian-r35:latest");
+    let (v, l) = registry_refs(
+        "ghcr.io/kilork",
+        "jovian-judgement:r35-glm53",
+        "ead6e95a333d",
+    )
+    .unwrap();
+    assert_eq!(v, "ghcr.io/kilork/jovian-judgement:ead6e95a333d");
+    assert_eq!(l, "ghcr.io/kilork/jovian-judgement:latest");
     // slashed image name → last segment; base slash-trimmed
     // slashed image name → last segment; base slash-trimmed
     let (v, _) = registry_refs("ghcr.io/kilork/", "foo/bar:1.2", "abc123").unwrap();
     let (v, _) = registry_refs("ghcr.io/kilork/", "foo/bar:1.2", "abc123").unwrap();
     assert_eq!(v, "ghcr.io/kilork/bar:abc123");
     assert_eq!(v, "ghcr.io/kilork/bar:abc123");