victor34593993/flexigo-support-bot
anotar en el cargador la verificacion en la tienda real (widget, config y chat/stream ya salen de Netcup)
el Space pasa a ser un cargador: el widget (y con el todo el chat) se sirve desde Netcup, sin tocar el tema del cliente
drop 0033 from the Space: its in-migration backfill crashes the container at boot (Neon), production first
ROLLBACK to the pre-stage-4 build: migration 0033's backfill crashed the container on Neon
migration 0033: knowledge_chunks.text_norm with online backfill
stage 4: template-free per-page chunks, accent/code-insensitive keyword arm (text_norm), language tiebreak, section-aware crawl budget, clean policies, catalogue finds the machine by its code, numeric output guard (no figure without support, no other product's figure)
measured lane order (mistral behind groq, qwen/hf after local), 402 closes a lane for hours, 429 rests it at once, forced escalation says so, empty policies and LIKE wildcards, retention default from settings
chunks know their page (per-page chunking, url+title in meta, one URL per page in the tool result) + rules-mention scrub
the merchant's rules beat the crawled text, said next to the text: ministral-14b went from 0/4 to 4/4 on TOORX's 24-month warranty rule
migration 0032: per-tenant conversation retention
eight free cloud lanes (Groq per model, Mistral ministral, HF router) + review fixes: exact codes always reach the model, no double free in the HTML cleaner, reasoning_effort per model, per-tenant retention
breaker: a 429 is a minute of rest, not ten — stop turning Groq's per-minute cap into a ten-minute outage of the fastest lane
a link to one page is not 'index this whole domain': 103 listing URLs would have fired ~31,000 requests at somebody else's site
a rate-limited crawl was silently losing pages: pause between pages, and obey Retry-After instead of dropping the page
a shopping question must reach the CATALOGUE, and asking for a person must reach a person - both decided in code, not asked for in the prompt
stop apologising for information the bot is already holding
the local model belongs near the front only on the host that runs it, not across a tunnel
pre-fetch must not silence the product search: knowledge prose has no live price, stock or buy button
pre-fetch the store's own knowledge: one model call per turn instead of two, so a grounded answer fits inside Groq's free 8k-token minute (17-55s -> 1-3s)
circuit breaker: stop re-trying providers that are dead (3 wasted round trips per turn) + catch the retrieval-narration leak
business rules cap 6000 -> 6500 chars (6000 silently cut a real client's last rule)
fix: never show the model's internal monologue to a customer
fix: stop reasoning models leaking their internal monologue into the customer's reply
fix: chunks now fit what the embedder reads (>50% of the index was unsearchable) + reserve less output on routing calls + never wipe knowledge on an empty crawl
fix: follow the Shopify sitemap INDEX (0 -> 513 pages discovered) + www is the same site
fix: turns no longer exceed Groq's 8k free-tier request cap + revive the failover chain
revert: remove temporary migration env endpoint
temp: one-time migration env export endpoint (Netcup cutover)
fix: ignore checkout.session.completed for other ventures' Stripe checkouts
resilience: r.ok check + mailto fallback + loud 404 logging for state-changing requests
CRITICAL fix: standalone contact form was silently 404ing on every submission
feat: widget passes handoff funnel signal to host page analytics
fix: persist detected conversation language + widget adopts it for the handoff form
low-priority fixes: ADMIN_TOKEN hard boot guard + invoice.paid subscription check
trust: proactive real-source citation in bot replies
widget: switch-channel back button fix
widget: single-bubble home screen for chat+whatsapp both mode
whatsapp: admin-panel embedded signup prefill
whatsapp: prefill embedded signup business info from tenant data
fix(shopify): embedded panel follows the Shopify admin locale (?locale=)
fix(shopify): embedded app self-provisions via token exchange — fixes review suspension
system-review backend fixes (judge floor, client_ip, billing match, XSS, whatsapp, audit caps, RAG, og async)
security: remove leaked verify token
fix(billing): Shopify plan currency EUR -> USD ($29/mo) to match the App Store listing
fix(shopify): App Store 1.2.1 — remove off-platform checkout from the app host
audit: /audit/start returns score for outreach integration
audit v1.3: embeddable badge
audit v1.2: compare mode
audit v1.1: nav-strip + dynamic sitemap
fix(audit): credible scoring (reasoning max_tokens) + remove debug
