e5c134b045
Ports a working Hermes agent skill to an MCP server. The skill's value was not its Mealie endpoints but ~25 operational rules found by running imports against the live instance; those are now code with tests rather than prompt text. The server owns deterministic mechanics — auth, the non-default User-Agent Cloudflare requires, the `extension` field on cover uploads, PATCH instead of the 500-ing bulk-action endpoints, decimal-comma normalization, and restoring Swedish display text after parsing. Language and taste judgement stay with the model, fed by the four reference notes shipped as MCP resources. verify_recipe runs the finished-import definition as code so an agent cannot report success on a recipe with an English ingredient line, a missing cover, or ingredients still in the "Click Parse" state. Home Assistant is optional and isolated; the Obsidian meal plan is out of scope. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
Allrecipes post-import pitfalls
Den här referensen dokumenterar konkreta fel som observerats i live-körning mot Fredriks Mealie-instans och ska användas när recept importeras från Allrecipes eller andra engelskspråkiga receptsidor.
Verifierade problem
1. image i API betyder inte nödvändigtvis att omslagsbilden syns i UI
- Ett recept kan ha ett icke-tomt
image-fält och ändå sakna synlig omslagsbild i gränssnittet. - Därför måste importflödet alltid köra ett explicit bildsteg efter import.
- För lokal upload på Fredriks Mealie-instans måste
PUT /api/recipes/<slug>/imageskicka med multipart-fältetextension(t.ex.jpgellerwebp). Utan det kan uppladdningen fastna i validering och bilden blir inte korrekt sparad.
2. Bulk-actions för taggar/kategorier är opålitliga i denna instans
Följande endpoints gav 500-fel under verkliga körningar:
/api/recipes/bulk-actions/tag/api/recipes/bulk-actions/categorize
Använd i stället direkt PATCH på receptets tags och recipeCategory.
3. Mealie-parsern kan förstöra svenska display-rader
Exempel på observerade fel:
4,7 dl basmatirisblev något i stil med47⁄10 liter ...- parsern gav konstiga bråktecken, dubblerade enheter och skräptecken i
display - vissa parser-resultat gav märkliga
food.name-värden för svenska rader
4. Svensk decimal-komma är känsligt
Parsern hanterar ofta struktur bättre om decimal-komma först normaliseras till punkt för parseranropet, men den normaliserade raden ska inte användas som slutlig display i Mealie.
Rekommenderad motstrategi
- Bevara alltid en canonical svensk ingrediensrad separat.
- Använd parsern endast för
quantity,unit,food. - Återställ den mänskliga svenska raden till
displayochnoteefter parse. - Om parsern ger
food.nameutanidoch du behöver strukturen kvar efter PATCH, skapa/återanvänd riktig Mealie food först. - För Allrecipes: om scrape-bild inte blir stabil i UI, ladda ner hero-bilden och använd
PUT /api/recipes/<slug>/image. - Om Köket.se- och YouTube-importer fortsätter att visa fungerande omslagsbilder medan Allrecipes-importer inte gör det, behandla det som ett källspecifikt Allrecipes-problem. Gå då direkt till explicit hero-bild-download +
PUT /api/recipes/<slug>/imagei stället för bredare generell felsökning. - Om parsern fortfarande gör visningen ful efter cleanup, välj läsbarhet före struktur för just de trasiga raderna: nollställ
quantity/unit/foodoch spara rena svenskadisplay/notei stället för att behålla dålig automatisk rendering.
Definition av klar import
Ett importerat recept räknas inte som klart förrän:
- svensk titel/beskrivning/instruktioner är satta
recipeIngredient[].displayser normala ut för människa- parsern inte lämnar receptet i
Click Parse-läge - bild har satts eller verifierats explicit
- taggar/kategorier är applicerade eller medvetet hoppade över