daily-fix: SLURM intent tables cover all GCP GPU intents
Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.
No comments yet.
Overview / Motivation
Auto-filed by /daily 2026-07-30 Step C (parked workflow-fix-candidate routing) from a candidate parked on task #1896 (emitting source: orchestrator observation during #1896 clarify/plan, seconded by the Methodology critic; parked 2026-07-30T21:15:22Z). #1896 itself added capture-7b to the SLURM tables only, per its fingerprint scope (merged 20c9d904f47c).
Goal
Close the per-intent fellows-first bypass: add the remaining GCP-mapped GPU intents (lora-7b-h100 at minimum) to the SLURM intent tables, and add a completeness test tying gcp.INTENT_TO_MACHINE's gpu_count>0 keys to the SLURM tables so the class cannot silently reopen.
Workflow gap
- Bug observed:
lora-7b-h100(a GCP-mapped 1x H100-80 GPU intent) is absent from the SLURM intent tables exactly likecapture-7bwas (#1896 fixed capture-7b only) — a lora-7b-h100 auto-lane dispatch still ValueErrors off the free fellows/SLURM lane and burns paid GCP;sweep-8g-a100/sweep-8g-h100/eval-h100are in the same absent class (whether SLURM should serve 8-GPU sweeps needs a design call — flagarchitectural-adjacent design question in the plan, do not silently decide). - Why it is a workflow gap: the standing fellows-first policy (#1609) is silently bypassed per-intent whenever a GCP GPU intent lacks a SLURM row; there is no completeness test tying gcp.INTENT_TO_MACHINE's gpu_count>0 keys to the SLURM tables (the RunPod rung has exactly this via RUNPOD_INTENT_FOR_GCP_INTENT + its translation-map test).
- Confidence (emitter): medium
- verified-at-filing:
grep -n 'lora-7b-h100' src/explore_persona_space/backends/slurm.py src/explore_persona_space/backends/gcp.py src/explore_persona_space/backends/router.py→ gcp.py:393 (INTENT_TO_MACHINE row) + router.py:460 (RunPod translation) present, slurm.py 0 hits (absence in the SLURM tables confirmed); slurm.py's tables carrylora-7b/eval/capture-7b(:530-:603) but no H100-family intents (2026-07-31 filing time). #1896's capture-7b fix merged 2026-07-30T22:46:27Z.
Proposed change (candidate diff sketch — refine in planning)
Add lora-7b-h100 (and any other 1-GPU H100-class intents the plan judges SLURM-servable) to _DEFAULT_TIME_BUDGETS_H + the GPU-count table in backends/slurm.py; add a completeness pin test asserting every gcp.INTENT_TO_MACHINE gpu_count>0 key either has a SLURM row or is on an explicit documented-exclusion list (8-GPU sweep intents may land there pending the design call).
Scope / surfaces
- Primary target:
src/explore_persona_space/backends/slurm.py,src/explore_persona_space/backends/router.py - tests:
tests/test_slurm_*.py/tests/test_router.pycompleteness pin.
Constraints / invariants
- The in-scope
src/backends package is workflow surface (CLAUDE.md § workflow-fix scope). - The 8-GPU-sweep design question (should the fellows lane serve them at its 16-GPU/user caps?) is surfaced in the plan, not silently decided; a documented-exclusion list is the acceptable v1 answer.
- Existing router/SLURM tests stay green;
tests/test_router.py::test_default_auto_lane_order_is_gcp_firstdurability pin untouched. - This session runs under
EPM_WORKFLOW_FIX_SESSION=1and carries aworkflow_fix_target:Provenance line — recursion guard applies.
Provenance
- workflow_fix_target: src/explore_persona_space/backends/slurm.py, src/explore_persona_space/backends/router.py
- fingerprint: e67598577033 (tag-authoritative; supersedes body-carried fingerprint: 416a551b1ba7)
- origin: parked candidate-block on #1896 events.jsonl, ts 2026-07-30T21:15:22Z (routed by /daily 2026-07-30 Step C)