fix(deals): vendor family independent of entry and long-context tier with parser coverage
Family was only set when MODEL_DEALS[modelId] existed, breaking the never-from-scraped guarantee for known vendors without deals (src/plugin/deals-enrichment.ts:17). Move vendorFamilyForModel before the entry guard and update the empty-deals degradation test. Emit overContext for long-context tiers (>256K) that differ from the base tier (scripts/refresh-deals.mjs:113, src/catalog/deals.ts:63) — covers Qwen 3.6-Plus, Qwen 3.7-Flash/Plus, GPT 5.6 variants and Grok 4.6; MiniMax M3 identical tier correctly omitted. Add missing seams at test boundaries: html-tables, parse-docs (extractModelRecords, extractPlanAllowances, num, endsAtFor, ratesFor, benchmarkFor) and refresh-deals (discountFor, peakOffPeakFor, modelDealEntry, emitDealsModule) against tests/fixtures/*.html, and wire tui-deals-panel into test:unit. Tests verify behavior through public interfaces with independent fixture literals.
R
Rashid Razak committed
95de39a55bf5192051516fc2a3a6174a38caca5a
Parent: cb167ff