Fail-fast live provider-search timeout
Stops fcc_search_providers from retrying a deterministic 30s live GROUP BY timeout 4x (#14).
Fixed:
- OpenDataService.fetchJson classifies deadline aborts into McpError(Timeout) at the fetch choke point; the grouped provider search passes a retryable:false factory so it fails once instead of ~2min of amplified retries, while cheap point queries keep transient retries (#14)
- New non-retryable live_search_timeout errors[] contract entry on fcc_search_providers with a recovery hint (state filter, longer name fragment, or FCC_MIRROR_ENABLED=true)
Changed:
- Live name searches drop the 10x grouped-row headroom ($limit min(limit,200)*10 → min(limit,200)) so Socrata's GROUP BY short-circuits inside the 30s budget; on the live path statesServed/techCodes can be partial for multi-state providers — the mirror path keeps full fidelity
161 tests pass; bun run devcheck clean.