Commit Graph

  • 904edcb3ff feat(ai): Gemini-Client mit Timeout, 1x-Retry und Fehler-Codes hsiegeln 2026-04-21 10:40:58 +02:00
  • d479fd61d8 feat(ai): Extraction-Prompt + Gemini-Schema + Zod-Validator hsiegeln 2026-04-21 10:40:03 +02:00
  • 0cca9a699c feat(ai): image-preprocess mit sharp (Resize + JPEG + EXIF-Strip) hsiegeln 2026-04-21 10:39:22 +02:00
  • c284f4b85b feat(ai): 50er-Pool Magie-Phrasen fuer Foto-description hsiegeln 2026-04-21 10:38:32 +02:00
  • 9e3d6e8d01 chore(deps): @google/generative-ai + vips-dev fuer Foto-Rezept-Magie hsiegeln 2026-04-21 10:37:12 +02:00
  • 783b782608 docs: implementation plan fuer Foto-Rezept-Magie hsiegeln 2026-04-21 10:35:36 +02:00
  • 1532880cd5 docs: 50er-Phrasenpool fuer Foto-Rezept-description hsiegeln 2026-04-21 10:22:52 +02:00
  • aa7f0eff11 docs: spec fuer Foto-Rezept-Magie (v1.3) hsiegeln 2026-04-21 10:16:35 +02:00
  • 26018eee7f chore: .prettierignore fuer Fixtures, Docs und Templates v1.2.2 hsiegeln 2026-04-20 08:45:41 +02:00
  • 24bd9c1d1b feat(header): Versionsnummer unter dem Logo hsiegeln 2026-04-20 08:41:18 +02:00
  • 633e497bdc fix(sw): network-first + 3s timeout statt SWR fuer Daten v1.2.1 hsiegeln 2026-04-20 08:29:00 +02:00
  • b5c01b950e chore(release): v1.2.0 + Doku-Aktualisierung v1.2.0 hsiegeln 2026-04-19 15:34:01 +02:00
  • 6bde3909d8 polish(sections): Muelltonne statt X + Ueberschrift groesser/fetter hsiegeln 2026-04-19 15:26:39 +02:00
  • 78c4f56992 Merge ingredient-sections — Zutaten-Gruppierung via section_heading hsiegeln 2026-04-19 15:19:39 +02:00
  • c07d2f99ad test(e2e): Zutaten-Sektionen CRUD + UI-Flow auf kochwas-dev feature/ingredient-sections hsiegeln 2026-04-19 15:19:13 +02:00
  • 8069c5c246 feat(view): Zutaten-Sektionen als Ueberschriften rendern hsiegeln 2026-04-19 15:08:43 +02:00
  • 7d6ee04fec feat(editor): Sektionen-Handler + save-Patch mit section_heading hsiegeln 2026-04-19 15:06:12 +02:00
  • b646720a6e fix(editor): :global(.ing-list):hover damit Fade-in wirklich greift hsiegeln 2026-04-19 15:04:26 +02:00
  • 526c7433f4 feat(editor): Sektionsueberschriften in IngredientRow + Insert-Button hsiegeln 2026-04-19 15:03:29 +02:00
  • 96cb55495e test(scaler): section_heading ueberlebt Skalierung hsiegeln 2026-04-19 15:00:21 +02:00
  • a1baf7f30a feat(db): section_heading roundtrip in recipe-repository hsiegeln 2026-04-19 14:55:46 +02:00
  • b0d5f921e2 docs(migration): 012 Kommentar an 010/011-Stil angleichen (DE, Begruendung) hsiegeln 2026-04-19 14:52:13 +02:00
  • 72816d6b35 feat(schema): ingredient.section_heading (Migration 012 + Type) hsiegeln 2026-04-19 14:49:42 +02:00
  • ad5a6afcd9 Merge editor-split — Tier 4 Item B + E2E-Stabilitaet hsiegeln 2026-04-19 14:15:19 +02:00
  • 30a409fd16 fix(e2e): serviceWorkers=block behebt Chromium-Crash-Cascade editor-split hsiegeln 2026-04-19 14:09:32 +02:00
  • 504fbb6cc6 refactor(view): TimeDisplay als eigenstaendige Component hsiegeln 2026-04-19 13:50:46 +02:00
  • d50841c5a6 refactor(editor): StepList als eigenstaendige Component hsiegeln 2026-04-19 13:45:56 +02:00
  • defbb5e24d refactor(editor): IngredientRow + shared types hsiegeln 2026-04-19 13:40:10 +02:00
  • c43b1dca87 refactor(editor): ImageUploadBox als eigenstaendige Component hsiegeln 2026-04-19 13:33:26 +02:00
  • 015cb432fb docs(plans): Editor-Split Implementierungsplan (Tier 4 Item B) hsiegeln 2026-04-19 13:28:30 +02:00
  • f273942286 Merge search-state-store — Tier 2 Post-Review-Roadmap hsiegeln 2026-04-19 13:18:04 +02:00
  • c45ef2a613 fix(search): runSearch bricht pending Debounce ab search-state-store hsiegeln 2026-04-19 13:03:42 +02:00
  • e7067971a5 refactor(home): Live-Search auf SearchStore migriert hsiegeln 2026-04-19 12:57:58 +02:00
  • 0ca42f3329 refactor(layout): Header-Dropdown nutzt SearchStore hsiegeln 2026-04-19 12:51:11 +02:00
  • 4b17f19038 docs(plans): Plan-Doc auf runDebounced() ohne Parameter angleichen hsiegeln 2026-04-19 12:48:50 +02:00
  • 4edddc38e3 refactor(search): runDebounced ohne missweisenden Parameter hsiegeln 2026-04-19 12:47:40 +02:00
  • fc47c78397 fix(search): Race-Guard-Test korrekt auf in-flight abzielen hsiegeln 2026-04-19 12:41:43 +02:00
  • 58ce19c160 feat(search): SearchStore fuer Live-Search mit Web-Fallback hsiegeln 2026-04-19 12:38:33 +02:00
  • 7fd90643c5 docs(plans): Search-State-Store Implementierungsplan hsiegeln 2026-04-19 12:32:50 +02:00
  • 3021ccb6a9 fix(e2e): 3 Specs robuster gegen reale Runtime hsiegeln 2026-04-19 12:21:36 +02:00
  • a7ad159c69 test(e2e): Playwright Smoketests gegen kochwas-dev (remote) hsiegeln 2026-04-19 12:14:04 +02:00
  • 7da37d0a3d Merge cleanup-batch-post-review — Tier 1 + 2 UAT-Fixes hsiegeln 2026-04-19 12:05:11 +02:00
  • e953ca7870 feat(comments): Trash-Button zum Loeschen eigener Kommentare cleanup-batch-post-review hsiegeln 2026-04-19 11:56:41 +02:00
  • c1789f902e fix(preview): Guard wenn ?url=-Parameter fehlt hsiegeln 2026-04-19 11:55:18 +02:00
  • 02b9cdbc68 refactor(client): requireProfile(message?) + Wunschliste migriert (Item G) hsiegeln 2026-04-19 11:45:00 +02:00
  • 5a291a53dd refactor(ui): --pill-radius CSS-Variable (Item F) hsiegeln 2026-04-19 11:43:19 +02:00
  • 98a8022ddf refactor(editor): Bild-Upload/Delete auf asyncFetch (Item H) hsiegeln 2026-04-19 11:39:42 +02:00
  • 5a1ffee3bb refactor(editor): untrack() fuer form-lokale Snapshots (Item I) hsiegeln 2026-04-19 11:38:35 +02:00
  • 9ee8efa479 Merge review-fixes-2026-04-18 — API-Helper + Cleanup + Roadmap hsiegeln 2026-04-19 11:34:33 +02:00
  • 2c1fd29003 docs(plan): Post-Review-Roadmap fuer Items A-I review-fixes-2026-04-18 hsiegeln 2026-04-19 11:34:19 +02:00
  • cda6e77a9e ci(docker): alle Branches bauen, Branchname als Tag hsiegeln 2026-04-19 11:18:29 +02:00
  • 85fe1312ca docs(review): OPEN-ISSUES-NEXT.md — Stand nach Refactor-Nacht hsiegeln 2026-04-18 22:42:29 +02:00
  • 31c6e5cd1f refactor(server): IMAGE_DIR/DATABASE_PATH zentralisieren + Doku-Drift fixen hsiegeln 2026-04-18 22:41:02 +02:00
  • 6d9e79d4f0 feat(parser): Unicode-Brueche + Mengen-Plausibilitaet hsiegeln 2026-04-18 22:25:35 +02:00
  • 60c8352c96 docs(searxng): Intent-Kommentar fuer Prod-Diagnose-Logs hsiegeln 2026-04-18 22:23:17 +02:00
  • 30a447a3ea refactor(client): requireProfile() + asyncFetch wrapper hsiegeln 2026-04-18 22:22:19 +02:00
  • ff293e9db8 refactor(api): alle handler auf api-helpers umstellen hsiegeln 2026-04-18 22:19:12 +02:00
  • 739cc2d058 feat(server): api-helpers fuer parsePositiveIntParam + validateBody hsiegeln 2026-04-18 22:16:00 +02:00
  • 830c740747 refactor(constants): zentrale SW-Timing-Konstanten + minor cleanups hsiegeln 2026-04-18 22:14:38 +02:00
  • 2289547503 docs(review): fix table names, IMAGE_DIR, image endpoints hsiegeln 2026-04-18 22:13:15 +02:00
  • 10c43c4d4a docs(review): Deep-Code-Review 2026-04-18 hsiegeln 2026-04-18 21:55:41 +02:00
  • 5283ab9b51 feat(recipe): Bild manuell hochladen / ersetzen / entfernen hsiegeln 2026-04-18 21:39:54 +02:00
  • aaaf762564 feat(editor): Zutaten umsortierbar + Zutat/Notiz gleich breit hsiegeln 2026-04-18 21:32:35 +02:00
  • dc04f5b032 feat(recipe): Schrift im Tablet/Desktop-Layout vergrößert hsiegeln 2026-04-18 21:25:17 +02:00
  • 2f2f7dc7e7 fix(searxng): Mojeek entfernt — blockt die Pi-IP mit 403 hsiegeln 2026-04-18 21:15:54 +02:00
  • 76ea5bed8d fix(searxng): nur Brave+Mojeek abfragen, DDG-Captcha-Noise beseitigen hsiegeln 2026-04-18 21:10:55 +02:00
  • f89f363183 fix(searxng): auf engine: braveapi wechseln (API-Key wird nun genutzt) hsiegeln 2026-04-18 21:03:48 +02:00
  • 854af2fc34 fix(pwa): Reload-Loop beim Zombie-Cleanup beseitigt v1.1.0 hsiegeln 2026-04-18 18:12:19 +02:00
  • 1bec054ec6 fix(pwa): Zombie-waiting-SW via GET_VERSION erkennen (Live-Bug) hsiegeln 2026-04-18 18:06:36 +02:00
  • c2074c9768 refactor(pwa): auf Workbox-Standard vereinfacht, refreshing-Flag hsiegeln 2026-04-18 17:57:51 +02:00
  • 858d4c1622 fix(pwa): Zombie-Waiting-SW erkennen und stumm aufräumen hsiegeln 2026-04-18 17:48:55 +02:00
  • 42f79f122b fix(api): PATCH akzeptiert servings_default=0 hsiegeln 2026-04-18 17:30:57 +02:00
  • 3d6f6393b3 fix(pwa): Endlos-Loop "Neue Version verfügbar" beseitigt hsiegeln 2026-04-18 17:27:04 +02:00
  • 0ede62dc8a docs(pwa): CLAUDE.md, OPERATIONS.md, ARCHITECTURE.md aktualisiert hsiegeln 2026-04-18 17:09:54 +02:00
  • 1a4f7b5f20 test(pwa): E2E für Offline-Navigation, -Toast, -Indikator hsiegeln 2026-04-18 17:07:21 +02:00
  • 528508a304 chore(test): Playwright für PWA-E2E-Tests aufgesetzt hsiegeln 2026-04-18 17:01:39 +02:00
  • 8bb208a613 feat(pwa): Admin-Tab "App" mit Install + Sync + Cache-Reset hsiegeln 2026-04-18 16:57:49 +02:00
  • 3906781c4e feat(pwa): Schreib-Aktionen zeigen Offline-Toast statt stillem Fail hsiegeln 2026-04-18 16:54:03 +02:00
  • 447ff2be32 fix(pwa): SW-Manifest trackt nur wirklich gecachte Rezepte hsiegeln 2026-04-18 16:50:26 +02:00
  • 51a88a4c58 feat(pwa): SW Pre-Cache-Orchestrator mit Fortschritt + Delta-Sync hsiegeln 2026-04-18 16:44:48 +02:00
  • 582d902c62 feat(pwa): Service-Worker-Gerüst mit Shell-Cache + Fetch-Dispatch hsiegeln 2026-04-18 16:38:09 +02:00
  • 7c8edb9b92 feat(pwa): Cache-Manifest-Diff-Funktion + Tests hsiegeln 2026-04-18 16:34:39 +02:00
  • d38992661c feat(pwa): Cache-Strategy-Entscheider + Unit-Tests hsiegeln 2026-04-18 16:32:30 +02:00
  • 02df0331b7 feat(pwa): SyncIndicator-Pill mit Overlay-Karte hsiegeln 2026-04-18 16:29:31 +02:00
  • d08cefa5c9 feat(pwa): Sync-Status-Store mit localStorage-Persistierung hsiegeln 2026-04-18 16:25:35 +02:00
  • 0c66bd677e feat(pwa): Toast-Store + Renderer hsiegeln 2026-04-18 16:21:14 +02:00
  • 04641355df feat(pwa): Online-Status-Store hsiegeln 2026-04-18 16:17:11 +02:00
  • 0b12aa027f feat(pwa): PNG-Icons 192/512 + Manifest maskable-fähig hsiegeln 2026-04-18 16:12:40 +02:00
  • 60f6db9091 docs(plan): v1.1 Offline-PWA Implementierungsplan hsiegeln 2026-04-18 16:07:11 +02:00
  • 303939a6ff docs(spec): v1.1 Offline-PWA Design hsiegeln 2026-04-18 15:59:39 +02:00
  • 2807dd1cab feat(import): manuelle URL-Importe von allen Domains zulassen hsiegeln 2026-04-18 15:18:46 +02:00
  • 7233cc3a13 style(wishlist): Chip-Label "Beliebteste" → "Meist gewünscht" hsiegeln 2026-04-18 15:12:22 +02:00
  • 297281e201 style(wishlist): Sortierung als Pill-Chips wie auf der Startseite hsiegeln 2026-04-18 15:10:52 +02:00
  • 194aee269e feat(recipe): Pulse-Animation beim Aktivieren Favorit/Wunschliste hsiegeln 2026-04-18 15:06:15 +02:00
  • 361164febd style(wishlist): Herz durch Utensils-Icon ersetzt hsiegeln 2026-04-18 15:06:07 +02:00
  • 8e33b52f66 feat(quotes): 100 weitere Sprüche für die Startseite hsiegeln 2026-04-18 14:50:10 +02:00
  • 60d0cd7659 feat(register): Rezept-hinzufügen-Dropdown mit URL-Import + Manuell hsiegeln 2026-04-18 14:40:57 +02:00
  • a10ebefb75 fix(favicons): HTML-<link rel=icon>-Parsing vor /favicon.ico hsiegeln 2026-04-18 14:34:17 +02:00
  • e56c1543d8 fix(home): Sort-Chip-Wechsel behält Scroll-Position hsiegeln 2026-04-18 14:34:08 +02:00
  • 8c93099d91 fix(recipe): Header-Bild auf allen Viewports max 30vh hsiegeln 2026-04-18 14:34:01 +02:00