|
All checks were successful
`RecipeDiet` (tag manuel) est supprimé — table droppée, `dietIds` retiré de `createRecipeSchema`, `DietTagSelect` retiré des formulaires de recette (création + import). `RecipeSummaryView.diets` / `RecipeView.diets` sont désormais **dérivés** via `computeRecipeDietViews` (`@batch-cooking/shared`, pur, testé isolément) : - un régime (vegetarian / vegan / pescatarian) est retenu ssi *tous* les ingrédients y sont compatibles (`IngredientDiet`, exposé par `IngredientView.diets`) ; - `glutenFree` est dérivé des allergènes (aucun ingrédient ne porte `gluten`) — cohérent avec le fait que le seed ne le stocke pas dans `IngredientDiet` ; - `[]` dès qu'une recette contient un ingrédient placeholder (hors-catalogue) : un ingrédient inconnu ne certifie rien. Filtres du sélecteur de planning (`suitableForHousehold`, `dietIds`) : ne peuvent plus être du SQL sur une colonne stockée — devenus des post-filtres sur `diets` calculé dans `listRecipes` ; `omnivore` traité comme « aucune contrainte ». `assertDietsExist` / `ErrorCode.DIET_NOT_FOUND` sur la création recette supprimés (le code d'erreur reste, utilisé par la préférence profil). `DietBadges` inchangé (affiche `diets` tel quel). `RecipePickerDialog` garde son filtre régime (fonctionne via le post-filtre). Tests : `recipe-diets.test.ts` (fonction pure) + `recipe.test.ts` réécrit (régimes calculés attendus, tests DIET_NOT_FOUND retirés) ; Cypress OK (formulaire sans sélecteur de régime, régression recettes/sources/planning). Migration `DROP TABLE recipe_diet` — aucune donnée à conserver. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| 20260816100611_init | ||
| 20260816105101_add_user_auth_fields | ||
| 20260816230050_unique_diet_category_name | ||
| 20260816235436_add_category_kind | ||
| 20260817093000_add_house_admin_invite_code | ||
| 20260817120000_add_user_preference | ||
| 20260817220730_ingredient_allergies | ||
| 20260818054828_recipe_visibility_favorites_diets_dislikes | ||
| 20260818081109_ingredient_category | ||
| 20260818104845_ingredient_diet | ||
| 20260818113250_ingredient_taxonomy_rework | ||
| 20260818121549_ingredient_icon_type | ||
| 20260818190000_catalog_labels_to_keys | ||
| 20260818193000_catalog_keys_to_english | ||
| 20260819064721_planning_item_portions | ||
| 20260819165510_ingredient_reproducible_flag | ||
| 20260819180000_catalog_camel_case_uids | ||
| 20260819192851_recipe_portions | ||
| 20260819201838_ingredient_unit_catalog | ||
| 20260819210000_tech_step_catalog_key | ||
| 20260820100000_recipe_source_linking | ||
| 20260820110000_step_tech_step_sequence | ||
| 20260820120000_house_source_preferences | ||
| 20260820130000_source_icon_url | ||
| 20260820140000_step_tech_step_span | ||
| 20260821130000_drop_tech_step_mapping | ||
| 20260821140000_step_tech_step_context | ||
| 20260822090000_tech_step_correction_and_suggestion | ||
| 20260822092528_step_tech_step_source | ||
| 20260826120000_utensil_catalog | ||
| 20260826121000_step_tech_step_metadata | ||
| 20260828120000_admin_user | ||
| 20260828130000_admin_metrics | ||
| 20260828140000_ingredient_placeholder | ||
| 20260829120000_step_tech_step_temperature | ||
| 20260904120000_backfill_state | ||
| 20260905120000_leftovers_portions_requested | ||
| 20260906120000_tour_scenarios | ||
| 20260908120000_contact_message | ||
| 20260908130000_contact_message_forgejo_link | ||
| 20260909120000_recipe_ingredient_quantity_optional | ||
| 20260909130000_drop_recipe_diet | ||
| migration_lock.toml | ||