8a9a0fca4d
Extend resource_plan to classify the hardware into bottleneck regimes (disk / memory / mixed / compute) and derive tuning knobs automatically: MTP: off when compute-bound (42% loss at full residency, #389) or disk-bound with <90% hit (union growth adds reads) PIPE: COLI_CUDA_PIPE=1 single-GPU, =2 multi-GPU, PIPE=1 CPU disk NUMA: selective interleave for GPU hosts, blanket hint for CPU-only PIN: PIN_GB=all when fully resident + no GPU OMP: COLI_NO_OMP_TUNE=1 for Metal (spin steals GPU power) `coli plan` now shows an auto-tune section with each knob and its reason. `environment_for_plan()` applies them via setdefault so explicit user settings always win. plan version stays at 2 (additive fields: bottleneck_class, projected_hit_rate, tune). 7 new tests covering all regimes.