batchCooking/apps/api
Nicolas a053371cf1
Some checks failed
CI / lint (push) Successful in 2m33s
CI / build (push) Successful in 3m4s
CI / e2e (push) Successful in 7m50s
CI / intent-service-test (push) Successful in 11m32s
CI / test (push) Failing after 22m43s
feat(recipes): permet d'ajouter des ingredients hors-catalogue
Quand le catalogue seede ne couvre pas un ingredient, l'utilisateur pouvait
etre bloque (creation manuelle) ou perdre silencieusement la ligne (import).
Une ligne de recette accepte desormais `placeholderName` (texte libre) au
lieu de `ingredientId` : l'API cree une ligne `Ingredient` `isPlaceholder`
(cle `placeholder:<uuid>`, `displayName`, `createdById`) dans la transaction
de la recette, et emet `ingredient.placeholder_created`. Ces lignes sont
exclues de `GET /reference/ingredients` et de `ingredient-matcher`.

Front : bouton "Ajouter << ... >>" dans l'etat vide de `IngredientPicker`
(formulaire + import), badge "a completer" sur la ligne, helper
`ingredientLabel` applique partout ou un libelle d'ingredient est rendu.

Admin : `/admin/catalog/*` (+ page `apps/admin-web`) liste les placeholders
regroupes par nom normalise, "marquer traite" (`reviewedAt`) et purge des
orphelins. La promotion en vraie entree catalogue reste manuelle.

Migration `ingredient_placeholder` ecrite a la main (Postgres indisponible).
Suites Mocha DB-backed ecrites, non executees en session ; test pur
`normalizePlaceholderName` + Cypress admin-web/web verts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-28 17:22:24 +02:00
..
prisma feat(recipes): permet d'ajouter des ingredients hors-catalogue 2026-08-28 17:22:24 +02:00
src feat(recipes): permet d'ajouter des ingredients hors-catalogue 2026-08-28 17:22:24 +02:00
test feat(recipes): permet d'ajouter des ingredients hors-catalogue 2026-08-28 17:22:24 +02:00
test-support feat(admin): metriques d'utilisation (derive DB + AnalyticsEvent) 2026-08-28 12:46:54 +02:00
.env.example feat(recipes): migre la detection des tech steps de node-nlp vers un microservice Python spaCy 2026-08-26 09:03:52 +02:00
.env.test.example feat(admin): fondation auth de l'application d'administration 2026-08-28 12:02:19 +02:00
.mocharc.json feat(recipes): migre la detection des tech steps de node-nlp vers un microservice Python spaCy 2026-08-26 09:03:52 +02:00
Dockerfile fix(docker): n'installe plus/ne build plus Cypress dans l'image de prod (#22) 2026-08-19 09:45:04 +02:00
package.json feat(recipes): migre la detection des tech steps de node-nlp vers un microservice Python spaCy 2026-08-26 09:03:52 +02:00
tsconfig.json Scaffold generic pnpm monorepo (api + web + shared) (#1) 2026-08-16 10:55:13 +02:00