All search space bounds now derived from HardwareBudget methods:
- batch: budget.max_batch_size()
- hidden_dim: budget.max_hidden_dim_base_full()
- dueling/branch: proportional to max_hidden (50%/25%)
- buffer: 15% VRAM / 120 bytes per entry
- atoms: 5% VRAM / per-atom tensor cost
- accum: proportional to VRAM / 10GB
Removed small_gpu/large_gpu boolean tiers entirely. A 24GB GPU now
gets bounds between 4GB and 80GB values, not arbitrarily bucketed.
Phase Fast fixed bounds (lo==hi) still skipped — never modified.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>