$ python utils/recipe_maintenance.py
Working directory: /app
------------------------------------------------------------
🛠️ Starting recipe maintenance...
==================================================
🔧 Full maintenance mode
📋 Step 1: Processing unparsed recipes...
🔍 Scanning recipes for parsing status...
2026-08-14 15:47:29,693 - mealie_client - INFO - MealieClient initialized in API mode
🔍 Scanning for unparsed recipes...
🔧 Initializing USearch ANN index with dimension 4096
✅ USearch index initialized for cosine similarity search
2026-08-14 15:47:29,701 - recipe_rag - WARNING - ⚠️ No ANN index found. Run migration to build index.
✅ All recipes have known parsing status
✅ Found 0 recipes needing parsing
✅ No unparsed recipes found
🔄 Step 2: Syncing local database with Mealie...
🔍 Checking RecipeRAG index completeness...
2026-08-14 15:47:29,703 - mealie_client - INFO - MealieClient initialized in API mode
🔧 Initializing USearch ANN index with dimension 4096
✅ USearch index initialized for cosine similarity search
2026-08-14 15:47:29,721 - recipe_rag - WARNING - ⚠️ No ANN index found. Run migration to build index.
✅ Mealie: 0 recipes, RecipeRAG: 0 indexed
Mealie has 0, local has 0
🔄 Syncing local database with Mealie...
📡 Fetching recipe summaries from Mealie...
2026-08-14 15:47:29,722 - mealie_client - INFO - MealieClient initialized in API mode
Found 0 recipes in Mealie
🔧 Initializing USearch ANN index with dimension 4096
✅ USearch index initialized for cosine similarity search
2026-08-14 15:47:29,740 - recipe_rag - WARNING - ⚠️ No ANN index found. Run migration to build index.
Found 0 recipes in local DB
✅ All 0 recipes are up to date!
✅ All 0 recipes already up to date
🏷️ Step 3: Tagging untagged recipes...
✅ All recipes are tagged
🗃️ Step 4: Database optimization...
🔧 Initializing USearch ANN index with dimension 4096
✅ USearch index initialized for cosine similarity search
2026-08-14 15:47:29,743 - recipe_rag - WARNING - ⚠️ No ANN index found. Run migration to build index.
✅ Full-text search index rebuilt
🏥 Step 5: Final health check...
2026-08-14 15:47:29,743 - config - INFO - ============================================================
2026-08-14 15:47:29,744 - config - INFO - 🔍 VALIDATING SYSTEM DEPENDENCIES (WITH HTTP FALLBACKS)...
2026-08-14 15:47:29,744 - config - INFO - ============================================================
2026-08-14 15:47:29,752 - config - INFO - ✅ Mealie connection successful: http://mealie:9000
2026-08-14 15:47:29,903 - config - INFO - ✅ OpenRouter connection successful
2026-08-14 15:47:29,903 - config - INFO - ✅ Using model: openai/gpt-4o-mini
2026-08-14 15:47:29,905 - config - INFO - ============================================================
2026-08-14 15:47:29,905 - config - INFO - ✅ ALL DEPENDENCIES VALIDATED - SYSTEM READY!
2026-08-14 15:47:29,905 - config - INFO - ✅ Mealie: Connected and authenticated
2026-08-14 15:47:29,905 - config - INFO - ✅ OpenRouter: Connected with required model
2026-08-14 15:47:29,905 - config - INFO - ✅ Embeddings: Qwen3-Embedding-8B (OpenRouter API)
2026-08-14 15:47:29,905 - config - INFO - ✅ SYSTEM READY FOR PRODUCTION
2026-08-14 15:47:29,905 - config - INFO - ============================================================
✅ System health check passed
==================================================
🎉 Maintenance completed successfully!
------------------------------------------------------------
✅ Completed successfully