546d4afd59
- Add generateRecipeStream() endpoint with real-time SSE status events - Frontend generateRecipe() uses ReadableStream for live step updates - Fix gemini-2.5-flash thinking model: disable thinkingBudget, raise maxOutputTokens to 4096 - Passo 2 is pure PHP heuristic (zero extra AI calls) - Retry logic with live countdown on 429, fallback chain: 2.5-flash → 2.0-flash - Pass all ingredients when meal plan is active (no limits) - Add recipe-loading-msg element with CSS transition