v1.4.0 — Compra multi-cadena y puente de navegador automático
Versión de compra multi-cadena y automatización del puente de navegador. Integra la contribución de @dmnavalon (#3) y cierra #2.
✨ Added
build_cheapest_basket— canasta más barata "repartida": asigna cada ítem a la cadena donde sale más barato (cherry-pick) y agrupa por cadena. Exponepicks,plan,basketTotal,singleStore,splitSaving,mixedFormatItems,missing. Prompt guiadosuper_eficiente.- Puente de navegador manual (Líder/Tottus) —
search_productsaceptabrowserHtml; sin él y bloqueado, devuelveopenUrl+browserSnippet+retryWithen vez de un error seco. - Puente de navegador automático (
browserBridge.ts) — con Playwright configurado por entorno (SUPERMERCADOS_PLAYWRIGHT_PROFILE,_CHANNEL,_HEADLESS), el servidor navega solo reusando el perfil de Chrome del usuario y resuelve Líder/Tottus sin intervención ensearch_products,compare_storesybuild_cheapest_basket. Sin configurar, se mantiene el flujo manual. El servidor sigue sin ver credenciales.
🔧 Changed / Fixed
PlaywrightBridge.fetchSsrHtml()espera#__NEXT_DATA__en el DOM (App Router hace streamingself.__next_f).- Documentado que el bloqueo de Líder es por fingerprint del cliente (TLS/JA3 + PerimeterX + F5 BIG-IP,
307 → /blocked), no por IP. - 13 tools, 153 tests.
Changelog completo: CHANGELOG.md
🤖 Generated with Claude Code