-
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