# Changelog ## v0.9.11 (2026-02-26) ### Added - **Recipe edit page — image management**: display current recipe image, replace via URL or file upload - New API endpoint: `POST /api/recipes///image` for direct file upload - New `upload_image_bytes()` method on both Mealie and Tandoor clients - **Auto-expanding instruction textareas**: step fields grow to fit content (120px minimum) - **Edit page widened** to 1100px (was 900px) - New favicon (`logo_favicon_2.svg`) ### Fixed - **Tandoor image URLs**: rewrite internal k8s service URLs to public base URL so images display in browser - **Tandoor pagination**: use `page`/`page_size` params (not `limit`/`offset`) — fixes duplicate recipes across pages - **KeyError on recipe list**: safe `.get("name", "")` access for Tandoor keywords and Mealie tags that lack a `name` field - **Delete button color**: moved `btn-danger` CSS to base template so it works on all pages ### Improved - **Search UX**: search field on top with "Keresés" button, tag filter below, results as dropdown while typing - **Keyboard navigation**: arrow up/down in search dropdown, Enter goes to edit page - **Search dropdown actions**: edit (pencil) and delete (trash) buttons inline on each result - **Delete from edit page**: redirects back to recipe list after deletion - **Instruction textarea height**: doubled default minimum from 60px to 120px on both edit and import pages ## v0.9.0 (2026-02-26) ### Added - **Recipe management page** (`/recipes`): browse, search, filter, edit, and delete recipes from Mealie and Tandoor - Backend switching tabs (Mealie / Tandoor) with only configured backends shown - Full-text search with 300ms debounce - Tag/keyword filtering with searchable dropdown - Multi-select with bulk delete (confirmation dialog) - Per-recipe edit and delete buttons - Recipe edit page with the same form as the import preview (ingredients, instructions, tags) - Pagination for large recipe collections - New API client methods: `list_recipes()`, `get_recipe()`, `update_recipe()`, `delete_recipe()` for both Mealie and Tandoor - New API endpoints: `GET /api/recipes/`, `GET/PUT /api/recipes//`, `POST /api/recipes//delete`, `GET /api/tags/` ## v0.8.4 (2026-02-26) ### Added - Environment variable overrides for connection settings: `MEALIE_URL`, `MEALIE_API_KEY`, `TANDOOR_URL`, `TANDOOR_API_KEY` — when set, these take priority over values in config.json (useful for Kubernetes deployments) ## v0.8.3 (2026-02-24) ### Fixed - Mindmegette.hu: prefer `

` element for title (clean meal name) over og:title (which often has "receptje" suffix) - Global: strip trailing "recept"/"receptje" etc. from recipe titles across all parsers ## v0.8.2 (2026-02-24) ### Fixed - Mindmegette.hu: use meal name (`

` above Hozzávalók) as title for alt-format pages instead of long article title ## v0.8.1 (2026-02-24) ### Fixed - Mindmegette.hu: support alternative page format (e.g. `/alapetelek/` pages) where ingredients are in `
    ` and instructions in `
      ` inside the wysiwyg box, instead of structured `div.ingredients` containers - Mindmegette.hu: title suffix stripping now handles both `|` and `-` separators ## v0.8.0 (2026-02-24) ### Added - GastroHobbi.hu parser: ingredients (with groups), instructions (with embedded lists), tags from JSON-LD articleSection - Prep time extraction appended to description ### Fixed - Ingredient line parser: fractions like "1/2" no longer split incorrectly due to regex backtracking - En-dash ranges in ingredients (e.g. "10 – 15 dkg") now normalized to "10-15 dkg" - Unicode fractions (½, ¼, ¾) now recognized as quantity start across all parsers - Embedded lists in instructions (nested ul>li) no longer produce duplicate entries ## v0.7.0 (2026-02-24) ### Added - Kiskegyed.hu parser: ingredients (with groups, dual measurements), instructions, tags - Cross-site recipe linking: kiskegyed→sobors and sobors→kiskegyed links are followed automatically - Dual measurement support: parenthesized alternate measurements (e.g. "3 ek (70 g)") extracted to comment field ### Changed - Supported sites list now shows clickable URLs instead of plain text ## v0.6.1 (2026-02-24) ### Added - Sobors.hu linked recipe support: when instructions link to another site (e.g. kiskegyed.hu), the scraper follows the link and imports the real recipe content - Article-style ingredient fallback for sobors.hu pages without structured ingredient containers - Redirect detection: warning shown when instructions just link to another site without real steps - "Importálás mindkettőbe" button on single import page (when both Mealie and Tandoor configured) ### Fixed - Ingredient comments in parentheses (e.g. "darált sertéshús (lapocka vagy comb)") now correctly extracted to the comment/extra field across all parsers ### Changed - Favicon updated to white logo variant (logo_notext_white.svg) ## v0.6.0 (2026-02-24) ### Added - Sobors.hu parser: ingredients (with groups), instructions (with section headers), tags - Incomplete recipe validation: warnings when ingredients or instructions are missing - Optional HTTP Basic Auth: configurable username/password on the settings page - Favicon (browser tab icon) using felhom.eu logo ### Changed - Brand text: "Recept" in white, "Importáló" in blue (felhom.eu style) - Logo enlarged in navigation bar (28px → 36px) ## v0.5.1 (2026-02-24) ### Changed - Design overhaul: new blue/cyan color scheme matching felhom.eu / controller templates - Added Plus Jakarta Sans font for consistent branding - Added felhom.eu logo in navigation bar - Added "Powered by felhom.eu" footer with tagline - Settings page: added documentation about external vs. internal URLs (Docker networking) - Settings page: URL labels now clarify they are external (browser-facing) URLs ### Fixed - Version display showed double "v" prefix (e.g. "vv0.5.0") ## v0.5.0 (2026-02-24) ### Added - Bulk import: paste multiple URLs, choose review-each or auto-import mode - Tag option for auto mode: import all scraped tags or none - Progress table with per-recipe status tracking (pending, scraping, done, error, skipped, duplicate) - Import targets: Mealie, Tandoor, or both simultaneously - "Auto-import remaining" button to switch from review to auto mid-way - Supported sites displayed in the UI ## v0.4.0 (2026-02-24) ### Added - Nosalty.hu parser: ingredients (with groups), instructions (with section headers), tags, story as description ## v0.3.2 (2026-02-24) ### Fixed - Quantity ranges (e.g. "2-3") now handled correctly in both Mealie and Tandoor clients ## v0.3.1 (2026-02-24) ### Fixed - StreetKitchen: parenthesised notes in food names now extracted to the extra field ## v0.3.0 (2026-02-24) ### Added - StreetKitchen.hu parser with three instruction formats (ol/ul/paragraph) - Ingredient quantity+unit splitting for merged strings (e.g. "200g") - Ingredient group support via h5 headers ## v0.1.0 (2026-02-23) ### Added - Initial release - Web UI with dark theme for recipe importing - Mindmegette.hu scraper (ingredients, instructions, image, description) - Generic fallback scraper using schema.org JSON-LD and OpenGraph tags - Mealie API integration (create recipe, upload image) - Editable preview: modify title, description, ingredients, and instructions before importing - Settings page with Mealie connection configuration and test button - Persistent configuration via JSON file in `/data` volume - Docker image based on `python:3.12-slim` with Gunicorn - Health check endpoint at `/health`