feat(cooking): moteur d'optimisation des étapes de batch-cooking #9
Closed
kyuno
wants to merge 1 commit from
feat/cooking-optimizer-engine into main
pull from: feat/cooking-optimizer-engine
merge into: kyuno:main
kyuno:main
kyuno:feat/off-catalog-ingredients
kyuno:feat/admin-tech-steps
kyuno:feat/cooking-session-ui
kyuno:feat/admin-monitoring
kyuno:feat/admin-metrics
kyuno:feat/admin-web-scaffold
kyuno:feat/admin-auth
kyuno:feat/cooking-session-api
kyuno:feat/tech-step-correction-merged-editor
kyuno:fix/tech-step-correction-metadata-discoverability
kyuno:feat/tech-step-correction-metadata
kyuno:feat/tech-step-metadata
kyuno:feat/tech-step-intent-service
kyuno:feat/shopping-list
kyuno:feat/fr-ingredient-unit-matching
kyuno:feat/sources-infinite-scroll
kyuno:fix/750g-browse-empty-query
kyuno:feat/marmiton-recipe-source
kyuno:feat/tech-step-detection-reliability
kyuno:experiment/llm-tech-step-poc
kyuno:feat/nlp-tech-step-detection
kyuno:chore/biome-style-rules
kyuno:feat/unify-source-detail-view
kyuno:fix/isolate-test-database
kyuno:fix/json-ld-not-a-browsable-source
kyuno:feat/browse-sources-backend
kyuno:feat/browse-sources-ui
kyuno:feat/import-recipe-review
kyuno:feat/plan-import-flow
kyuno:feat/highlight-tech-steps
kyuno:fix/runtime-seed-source-sync
kyuno:feat/english-matching
kyuno:feat/jsonld-source-adapter
kyuno:feat/recipe-step-translation
kyuno:feat/themealdb-source-icon
kyuno:feat/house-source-preferences
kyuno:feat/tech-steps-catalog
kyuno:feat/recipe-source-adapter
kyuno:feat/recipe-source-linking
kyuno:feat/ingredient-unit-catalog
kyuno:feat/ingredient-reproducible-flag
kyuno:refactor/catalog-camel-case-uids
kyuno:experiment/cucumber-cypress
kyuno:feat/recipe-catalog-v2
kyuno:feat/planning-page-design
kyuno:feat/settings-household-account
kyuno:feat/user-preferences-sidebar-nav
1 commit
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
| 33b8a85204 |
feat(cooking): moteur d'optimisation des etapes de batch-cooking
Coeur pur du module "Calcul batch-cooking" (specs/batch-cooking-architecture.md, jusqu'ici TODO) : optimizeCookingPlan() prend les recettes planifiees d'une semaine et les reorganise en phases ordonnees. - Mutualisation de la mise en place : une meme technique de decoupe (chop, peel, mince...) appliquee au meme ingredient par >= 2 recettes est regroupee en une seule tache "merged-prep" (les oignons de plusieurs recettes = une decoupe). - Parallelisme : les cuissons passives (simmer, braise, bake, marinate...) sont poussees en tache de fond des phases suivantes pendant qu'une autre recette avance en actif. - Fonction pure sans base (meme split matchXxx pur / loadXxx DB-backed que ingredient-matcher / tech-step-matcher), testable en isolation. Types partages : OptimizedCookingPlanView + schema getCookingSessionSchema. Tests Mocha purs (6 cas) : merge, non-merge d'une decoupe solo, tache de fond, mise a l'echelle par portions, plan vide, legende. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |