Harden recipe imports and refine ingredient taxonomy #32

Merged
wantxapas merged 3 commits from codex/release-1.0.1-private-attestation into main 2026-08-09 18:16:37 +01:00
wantxapas commented 2026-08-09 18:15:40 +01:00 (Migrated from github.com)

What changed

  • harden pasted-text recipe parsing for Markdown headings, ingredients-first layouts, Unicode and mixed fractions, natural-language measures, and optional compound ingredient lists
  • preserve qualitative quantities consistently across URL, JSON-LD, embedded JSON, HTML fallback, Paprika, and pasted-text imports
  • split canonical fish from seafood, update inference and seed data, and migrate existing fish records safely
  • expose fish in the frontend fallback category list
  • skip unsupported private image attestations in CI

Why

Real-world recipe sources use inconsistent layouts and ingredient notation. Several importer paths previously bypassed shared parsing rules, while optional compound lines could collapse several ingredients into one. The ingredient taxonomy also grouped finfish and shellfish under the same category.

Impact

Tzatziki-style pasted recipes now import deterministically without a slow AI extraction fallback, optional ingredients remain separate, qualitative amounts remain unitless, and finfish such as salmon are categorized as fish while shellfish remain seafood.

Validation

  • go test ./... in backend passes
  • frontend production Vite build passes
  • TypeScript no-emit check was attempted but stalled without output and was stopped
## What changed - harden pasted-text recipe parsing for Markdown headings, ingredients-first layouts, Unicode and mixed fractions, natural-language measures, and optional compound ingredient lists - preserve qualitative quantities consistently across URL, JSON-LD, embedded JSON, HTML fallback, Paprika, and pasted-text imports - split canonical `fish` from `seafood`, update inference and seed data, and migrate existing fish records safely - expose `fish` in the frontend fallback category list - skip unsupported private image attestations in CI ## Why Real-world recipe sources use inconsistent layouts and ingredient notation. Several importer paths previously bypassed shared parsing rules, while optional compound lines could collapse several ingredients into one. The ingredient taxonomy also grouped finfish and shellfish under the same category. ## Impact Tzatziki-style pasted recipes now import deterministically without a slow AI extraction fallback, optional ingredients remain separate, qualitative amounts remain unitless, and finfish such as salmon are categorized as `fish` while shellfish remain `seafood`. ## Validation - `go test ./...` in `backend` passes - frontend production Vite build passes - TypeScript no-emit check was attempted but stalled without output and was stopped
Sign in to join this conversation.
No description provided.