Bläddra i källkod

skills: document build_profile + TOML bare-key-after-[[table]] pitfall (r28 half-pin incident)

Alexander Korolev 1 månad sedan
förälder
incheckning
3669194b80
2 ändrade filer med 12 tillägg och 0 borttagningar
  1. 7 0
      .agents/skills/jovian-images/SKILL.md
  2. 5 0
      .agents/skills/sm121-launcher/SKILL.md

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

@@ -154,6 +154,13 @@ after — **when JIT mounts are warm** (~9 min total; ~45 min cold/first).
   `rg --include` does not exist (`-g '*.py'`); node zsh aborts on unmatched
   `rg --include` does not exist (`-g '*.py'`); node zsh aborts on unmatched
   globs; the sm121 launcher's chunked uploader streams 60 KB per ssh round
   globs; the sm121 launcher's chunked uploader streams 60 KB per ssh round
   trip (fine for 215 KB contexts, hopeless for 400 MB dirs).
   trip (fine for 215 KB contexts, hopeless for 400 MB dirs).
+- **TOML context trap in recipes (2026-09-08)**: a bare top-level key placed
+  AFTER a `[[extra_mounts]]` block parses into the LAST mount table and is
+  silently ignored (serde has no deny_unknown_fields) — the build ran with
+  the base pins while the recipe "had" the override. Table headers
+  (`[build.versions]`) reset the context, so tables are safe anywhere; bare
+  keys (e.g. `build_profile`) must sit before the first `[section]`.
+  Verify with `python3 -c "import tomllib; ..."` that the key is top-level.
 - **Half-cut revs (2026-09-08, r28)**: advancing only the vLLM pin of a
 - **Half-cut revs (2026-09-08, r28)**: advancing only the vLLM pin of a
   rev while leaving b12x/LMCache at the previous rev builds a mixed stack
   rev while leaving b12x/LMCache at the previous rev builds a mixed stack
   that still works and benches — but skipped 21 b12x commits (GLM/DeepSeek
   that still works and benches — but skipped 21 b12x commits (GLM/DeepSeek

+ 5 - 0
.agents/skills/sm121-launcher/SKILL.md

@@ -58,6 +58,11 @@ still required) — dangerous for GPU recipes (OOM / port conflicts).
 engine = "vllm"                 # or "sglang"
 engine = "vllm"                 # or "sglang"
 docker_image = "img:tag"
 docker_image = "img:tag"
 docker_image_dir = "recipe-name" # build dir under docker-images/ (default: recipe name)
 docker_image_dir = "recipe-name" # build dir under docker-images/ (default: recipe name)
+build_profile = "profile-name"  # optional: docker-images/<dir>/profiles/<name>.env
+#   merged over the image versions.env (image < profile < [build.versions])
+#   and folded into the build checksum — a rev's pin set in one file.
+#   MUST be a top-level key: after [[extra_mounts]] it silently lands in the
+#   last mount table (TOML context) and is ignored.
 model = "org/model"
 model = "org/model"
 port = 30000
 port = 30000
 required_nodes = 2
 required_nodes = 2