Zur App

BolYtics Releasenotes

Version v12.92

Änderungen werden pro Commit in Zehntelschritten fortgeschrieben.

Backup

Postgres-Dumps werden verschlüsselt und statusgeführt.

Restore

Wiederherstellung bleibt bewusst servergeführt.

Admin

Owner können Benutzer filtern, Status pflegen und Backups starten.

v12.922026-07-16

Deterministische Static-Cache-Regel

  • Der Nach-Certbot-Schritt entfernt mögliche alte Next-Static-Blöcke und setzt genau eine Revalidierungsregel in die aktive HTTPS-Konfiguration.
  • So wird die aktuelle Header-CSS auch dann zuverlässig geladen, wenn Certbot die Serverdefinition während eines Deploys umschreibt.
v12.912026-07-16

Zuverlässige Live-Cache-Korrektur

  • Der Deploy sichert die Revalidierungsregel für Next-Static-Dateien jetzt nach dem Certbot-Schritt erneut in der aktiven HTTPS-Konfiguration ab.
  • Damit erhalten Live-Browser die aktuelle Header-CSS zuverlässig; der Vollbreitenbanner wird nicht mehr durch eine ältere unveränderliche Stylesheet-Fassung überlagert.
v12.902026-07-16

Sofortige Header-Aktualisierung

  • Die Vollbreiten-Geometrie des neuen Markenbanners wird zusätzlich direkt im ausgelieferten Header festgelegt. Damit erscheint sie auch bei noch vorhandenen Browser-Caches korrekt.
  • QA und Produktion revalidieren Next-Static-Dateien künftig bei jeder Nutzung, statt geänderte Styles oder Skripte mit demselben Dateinamen langfristig unverändert zwischenzuspeichern.
v12.892026-07-16

Breites Markenbanner

  • Der Header verwendet jetzt das neue 2816 × 556 Pixel große BolYtics-Banner und skaliert es proportional über die gesamte verfügbare Breite.
  • Es gibt keine feste Bannerhöhe, keinen Zoom-Ausschnitt und keinen seitlichen Leerraum. Die intrinsischen Bildmaße und `priority` verhindern Layout-Shift beim Laden.
v12.882026-07-16

Ungezoomter Markenheader

  • Der Banner zeigt das vollständige 1114 × 300 Pixel große Markenmotiv jetzt proportional statt als angeschnittenen Cover-Ausschnitt.
  • Die Höhe beträgt nur noch 64 bis 112 Pixel; Tablet und Handy verwenden 112 beziehungsweise 64 Pixel. Die Headerbreite bleibt als ruhige Markenfläche erhalten.
v12.872026-07-16

Kompakter App-Kopf

  • Der Markenbanner ist deutlich flacher: je nach Breite 76 bis maximal 160 Pixel statt bis zu 220 Pixel. Tablet- und Handyvorschau folgen derselben kompakten Höhe.
  • Die Kopfzeile nutzt weniger Innenabstand. Auf kleineren Ansichten verschwindet die doppelte Arbeitsbereichsnavigation im Kopf, weil die feste untere Navigation dieselben Bereiche bereits erreichbar macht.
v12.862026-07-13

Lesbare Unterzeile im Markenbanner

  • Auf breiten Bildschirmen bleibt die Unterzeile „Mahlzeiten erstellen & Produktwerte ermitteln“ als echte, skalierbare Header-Zeile sichtbar, auch wenn das Bildmotiv für die volle Breite zugeschnitten wird.
  • Kleine Ansichten verwenden weiter das vollständige Quellmotiv ohne doppelte Unterzeile. Der Banner bleibt kompakt, responsiv und ohne horizontalen Überlauf.
v12.852026-07-13

Breitenfüllender Markenbanner

  • Der Header füllt nun in jeder Ansicht die gesamte verfügbare Breite. Das Markenbild liegt in einer festen, responsiv per clamp gesteuerten Bannerfläche mit zentriertem Cover-Ausschnitt.
  • Der gelieferte Header hat 1114 × 300 Pixel. Oberhalb dieser Quellbreite wird er zwangsläufig hochskaliert; die Bilddatei bleibt unverändert und der bekannte Qualitätsgrenzwert ist dokumentiert.
v12.842026-07-13

Kompakter Header ohne Beschnitt

  • Der Markenheader ist auf höchstens 220 Pixel begrenzt und zeigt das vollständige 1114 × 300 Motiv ohne gezoomte oder abgeschnittene Bildbereiche.
  • Die Handy-Navigation bleibt innerhalb des Viewports: Seitliche Desktop-Aktionen werden ausgeblendet, der Ansichtsumschalter bleibt in der Vorschau erreichbar und Arbeitsbereiche verteilen sich gleichmäßig.
v12.832026-07-13

Responsiver Markenheader

  • Der bereitgestellte 1114 × 300 Pixel große Markenheader wird proportional zur Inhaltsbreite dargestellt und kann auf großen Bildschirmen kontrolliert bis 1360 Pixel mitwachsen.
  • Auf kleinen Bildschirmen skaliert das vollständige Motiv ohne Beschnitt; Anmeldung und Registrierung liegen als echte Schaltflächen in der Bedienleiste statt über dem Bild.
v12.822026-07-13

Echte Breitbanner-Skalierung

  • Das Markenmotiv wird nicht mehr als hoher Bildausschnitt gestreckt, sondern als eigens komponierte Breitbanner-Grafik angezeigt. Logo und Hinweis bleiben dadurch vollständig lesbar.
  • Der freie rechte Bereich bleibt für die tatsächlichen Kontoaktionen reserviert; auf kleinen Bildschirmen bleibt der linke Markenbereich sichtbar.
v12.812026-07-13

Skaliertes Markenbanner

  • Das Markenmotiv ist jetzt als speziell zugeschnittene Bannerfassung eingebunden: Logo und Hinweis zu Mahlzeiten und Produktwerten bleiben in einer flachen Kopfzeile lesbar.
  • Die tatsächlichen Kontoaktionen bleiben als zugängliche HTML-Schaltflächen über dem ruhigen rechten Bildbereich erhalten.
v12.802026-07-13

Markenbanner mit echten Kontoaktionen

  • Das Headerbild wurde für den freigegebenen Funktionsumfang bereinigt: Es enthält keinen Bolus-, Insulin- oder Therapieclaim und keine Schein-Schaltflächen.
  • Anmelden und Konto anlegen liegen nun als echte, tastaturbedienbare Aktionen im Banner und führen zum jeweiligen Formular darunter.
v12.792026-07-13

Banner-Ausschnitt nachgeschärft

  • Das kompakte Markenbanner zeigt die sichtbare Markenlinie wieder zuverlässig, ohne den Arbeitsbereich zu verdrängen.
v12.782026-07-13

Schlankes Markenbanner

  • Der Web-Kopf bleibt als Markenbanner erhalten, nimmt aber nur noch eine schlanke Höhe ein.
  • Damit bleibt der Planer beim Öffnen im Vordergrund, während die Markenfläche weiterhin klar als Einstieg sichtbar ist.
v12.772026-07-13

Kompakterer Planer

  • Der aktuelle Mahlzeitenentwurf und die Produktsuche stehen im Planer jetzt vor der optionalen Schnellerfassung.
  • Top-Produkte werden auf großen Bildschirmen als kompakte, horizontal scrollbare Reihe angezeigt; auf dem Telefon bleiben sie in einem gut bedienbaren Zwei-Spalten-Raster.
  • Der Web-Kopf nutzt eine kleine App-Identität statt eines großflächigen Markenbilds. Bedienwege, Touchziele und die KH/KE/BE-Rechnung bleiben unverändert.
v12.762026-07-13

Produktsuche direkt im Planer

  • Der Web-Planer enthält jetzt eine eigene Produktsuche für den aktuellen Entwurf; nach Name und Kategorie führt der sichtbare Weg „Produktsuche öffnen“ direkt dorthin.
  • Treffer folgen weiterhin dem eingestellten Marktland und werden erst über den klar beschrifteten Button „Hinzufügen“ in die Mahlzeit übernommen.
  • Der bestehende KH/KE/BE-Rechenweg, persönliche Produktwerte und gespeicherte Mahlzeiten bleiben unverändert. Erst „Mahlzeit speichern“ schreibt den Entwurf.
v12.752026-07-12

Leere Mahlzeit klar starten

  • Der Planer beginnt mit Name und Kategorie: Erst danach werden Produkt- und Schnellerfassungsaktionen freigeschaltet.
  • Das verhindert unbenannte Entwürfe und führt in der einfachen Reihenfolge Mahlzeit benennen, Produkte hinzufügen, Werte prüfen und speichern.
  • Rezept- und Vorlagenübernahmen setzen Name und Kategorie weiterhin sinnvoll automatisch.
v12.742026-07-12

Klare Arbeitsbereiche im Web

  • Katalog, Planer, Mahlzeiten und Diabetes-News sind jetzt über ein gemeinsames Menü als eigene, fokussierte Bereiche erreichbar.
  • Der Planer bündelt Schnellerfassung, aktuellen Entwurf, KH/KE/BE und Speichern; Historie mit Filtern, Favoriten, Details, Bearbeiten und Drucken erhält ihre eigene Ansicht.
  • Die mobile untere Navigation öffnet denselben Bereich. Katalog und News bleiben ohne Anmeldung erreichbar.
v12.732026-07-12

Mahlzeiten als eigener Bereich

  • Gespeicherte Mahlzeiten öffnen sich jetzt über den klaren Menüpunkt „Mahlzeiten“ im Kopfbereich und in der mobilen Navigation als eigene Ansicht.
  • Der Planer bleibt auf Entwurf, Zusammenstellung, KH/KE/BE und Speichern fokussiert; im Dashboard führt nur noch ein kompakter Einstieg zum Verlauf.
  • Suche, Filter, Favoriten, Details, Duplizieren, Bearbeiten, Löschen und Drucken bleiben im Mahlzeitenbereich vollständig verfügbar.
v12.722026-07-12

Ruhigerer Mahlzeitenplaner

  • Der vollständige Rechenweg bleibt verfügbar, ist im Planer aber standardmäßig eingeklappt.
  • KH, KE und BE bleiben unmittelbar sichtbar; der Rechenweg öffnet sich über eine klar beschriftete, tastaturbedienbare Detailfläche.
  • iOS v1.37 stellt den aktuellen Entwurf vor Suche, Rezepten und Verlauf und ersetzt nummerierte Abschnitte durch klare Aufgabenbegriffe.
v12.712026-07-12

Planer ohne leere Restfläche

  • Dashboard-Bereiche verwenden jetzt ihre tatsächliche Inhaltshöhe, statt sich an der längsten Nachbarkarte derselben Zeile aufzuspannen.
  • Dadurch endet der Mahlzeitenplaner direkt nach seinen Aktionen und zeigt keine große leere Kartenfläche mehr.
  • Historie und News behalten ihre eigenen Scrollbereiche; Produktdaten, Mahlzeiten und KH/BE/KE-Berechnung bleiben unverändert.
v12.702026-07-12

Doppelte Grundzutaten zusammengeführt

  • Rezeptübernahmen fassen semantisch gleiche Zwiebel-Grundwerte jetzt vor der Portionsberechnung zu einer Mahlzeitenposition zusammen.
  • Der doppelte Basiswert „Zwiebeln“ wird aus dem aktiven Katalog genommen; „Zwiebel“ bleibt als eindeutiger generischer Grundwert erhalten.
  • Ein Regressionstest sichert die Zusammenführung ohne Änderung der KH-Summe. Bestehende Mahlzeiten werden nicht automatisch verändert.
v12.692026-07-12

Kompakte Mahlzeitenaktionen auf dem Handy

  • Favorisieren, Bearbeiten, Duplizieren und Löschen stehen in der mobilen Mahlzeitenhistorie jetzt horizontal nebeneinander statt als hohe vertikale Schaltflächenleiste.
  • Alle vier Aktionen behalten 44 Pixel große Touchziele und bleiben per Tastatur sowie Hilfstechnologien bedienbar.
  • Die Anpassung gilt für echte kleine Viewports und die integrierte Telefonvorschau; Mahlzeiteninhalte und KH/BE/KE-Berechnung bleiben unverändert.
v12.682026-07-11

Private Produktfavoriten

  • Angemeldete Nutzer können Produkte direkt im Suchtreffer bewusst als Favorit markieren oder wieder entfernen.
  • Produktfavoriten bleiben von automatisch ermittelten Top-Produkten getrennt und verändern weder die Suchrangfolge noch globale oder persönliche Produktwerte.
  • Der Stern-Schalter ist per Tastatur bedienbar, benennt seinen Zustand für Hilfstechnologien und verwendet dieselbe private Favoriten-API wie Mahlzeitenfavoriten.
v12.672026-07-11

Private Mahlzeitenfavoriten

  • Gespeicherte Mahlzeiten lassen sich jetzt bewusst als Favorit markieren oder wieder entfernen. Favoriten stehen in der Historie vor den übrigen, weiterhin chronologisch sortierten Mahlzeiten.
  • Eine favorisierte Mahlzeit kann wie bisher als bearbeitbare Kopie vorbereitet werden; das gespeicherte Original bleibt unverändert.
  • Favoriten sind kontogebunden und verändern weder Produktwerte, KH/BE/KE-Berechnung noch Therapiegrenzen.
v12.662026-07-11

Robustere mobile Web-App

  • Die Web-App richtet schmale iPhone- und Android-Ansichten jetzt konsequent auf Reflow ab 320 CSS-Pixeln aus: Dashboard, Schnellerfassung, Produktaktionen und Mahlzeiten verwenden dort ein stabiles einspaltiges Raster.
  • Dialoge nutzen die dynamische Browserhoehe und die sicheren Displayraender. Untere Navigation, Consent-Auswahl und Aktionsflaechen bleiben auf Geraeten mit Notch oder Home-Indikator bedienbar.
  • Fokussierte Textfelder verhindern auf iPhone die unbeabsichtigte Browser-Vergrösserung; grosse Schaltflaechen bleiben auf Telefonbreite gut treffbar. Keine Aenderung an Produktdaten, KH/BE/KE-Berechnung, Mahlzeiten oder Therapiegrenzen.
v12.652026-07-11

Einheitlicher Produktbild-Fallback

  • Produkte ohne Bild und nicht erreichbare Bildquellen zeigen in Web und iOS jetzt das native BolYtics App-Icon statt eines leeren Felds oder des bisherigen Demo-Joghurtbilds.
  • Der Fallback ist rein visuell: Er wird nicht als echtes Produktbild gespeichert, erhöht keine Bildabdeckung und gibt Produkten ohne Originalbild keinen Vorrang in der persönlichen Top-15-Sortierung.
  • Eigene Produkte ohne Foto speichern weiterhin keinen künstlichen Bildwert. Keine Änderung an Produktdaten, KH/BE/KE-Berechnung, Mahlzeiten oder Therapiegrenzen.
v12.642026-07-11

Web-Kopfbereich an iOS angeglichen

  • Die Web App verwendet jetzt denselben klaren Aufbau wie iOS: ein vollflächiges BolYtics-Markenbild und direkt darunter eine kompakte Kontozeile.
  • Name und E-Mail bleiben auch bei langen Angaben gekürzt lesbar. Ansicht, Blog, Einstellungen, Admin und Abmelden sind als getrennte Aktionen erreichbar; auf Telefonbreite verdecken sie die Kontozeile nicht und die Navigation bleibt in der unteren Leiste verfügbar.
  • Die bisher doppelte Kontobox im Dashboard entfällt. Keine Änderung an Produktdaten, Mahlzeiten, KH/BE/KE-Berechnung oder Therapiegrenzen.
v12.632026-07-11

iOS-Schnellerfassung mit Details und Alternativen

  • In iOS v1.35 (Build 35) öffnet ein Tippen auf Bild oder Produktbereich der Schnellerfassung die Detailansicht; nur der eindeutig beschriftete Button Hinzufügen übernimmt das Produkt in den aktuellen Mahlzeitenentwurf.
  • Fehlen weiterführende Detaildaten oder ist eine Detailansicht nicht verfügbar, sucht die App mit dem Produktnamen im eingestellten Marktland und zeigt passende Katalogalternativen zur Auswahl. Die bestehende Marktlandfilterung einschließlich Online-Treffern bleibt maßgeblich.
  • Die gewählte Alternative kann anschließend bewusst hinzugefügt werden. Letzte Menge, Roh/Gekocht-Auswahl und Kochfaktor werden nur für das ursprüngliche Top-Produkt übernommen; Alternativen starten mit der normalen Standardmenge.
  • Keine Änderung an Produktwerten, KH/BE/KE-Berechnung, Mahlzeitenspeicherung oder Therapieempfehlungen.
v12.622026-07-11

Datenschutztext vollständig ergänzt

  • Die Datenschutzerklärung erläutert jetzt zusätzlich ausdrücklich, dass Impressum und Datenschutz öffentlich erreichbar bleiben, aber über robots.txt, Meta-Robots und X-Robots-Tag nicht zur Suchindexierung angeboten werden.
  • Die freiwillige lokale Reichweitenmessung mit Einwilligung, täglicher Kennungsrotation, Datenminimierung, Widerruf und 35-Tage-Löschfrist ist bereits als eigener Abschnitt enthalten.
  • Keine Änderung an Reichweitenlogik, Produktwerten, Mahlzeiten, KH/BE/KE-Berechnung oder Therapiegrenzen.
v12.612026-07-11

Freiwillige Reichweite und Robots-Schutz

  • Monitoring & Alerting zeigt Ownern jetzt zusätzlich zustimmende, eindeutige Browser pro Tag, Browser-Regionen aus Spracheinstellungen, grobe Zeitzonenräume und Einstiegsseiten.
  • Die Reichweitenmessung ist freiwillig, lokal und ohne Drittanbieter: keine IP-Speicherung, keine IP-Geolokalisierung, keine Konto-Verknüpfung und eine täglich rotierende, nicht rückrechenbare Kennung. Die Daten werden nach 35 Tagen gelöscht.
  • Impressum und Datenschutzerklärung sind per robots.txt, Meta-Robots und X-Robots-Tag gegen Suchmaschinenindexierung geschützt, bleiben aber für rechtliche Pflichten erreichbar.
  • Keine Änderung an Produktwerten, Mahlzeiten, KH/BE/KE-Berechnung oder Therapiegrenzen.
v12.602026-07-11

Eigene Monitoring-Seite mit Verlauf

  • Owner erreichen unter Administration > Monitoring & Alerting jetzt eine eigene Betriebsseite mit aktuellem Status, allen Check-Details und einer grafischen Verlaufsmatrix.
  • Der Server bewahrt dafür eine auf 90 Tage begrenzte, datensparsame Historie der Monitoring-Läufe auf. Gespeichert werden nur Betriebsstatus, Zeiten und Check-Ergebnisse, keine Nutzer- oder Produktdaten.
  • Zeiträume von 24 Stunden, 7 Tagen und 30 Tagen machen Warnungen, Fehler und Laufzeiten sichtbar; die Startphase füllt sich mit den regulären 15-Minuten-Läufen.
  • Keine Änderung an Produktwerten, Mahlzeiten, KH/BE/KE-Berechnung, Konto- oder Therapiegrenzen.
v12.592026-07-11

Robusteres Server-Monitoring

  • Die drei externen Website-Checks pruefen bei einem Fehler jetzt bis zu drei Mal mit kurzem Abstand, bevor ein kritischer Alarm versendet wird.
  • Ein geplanter, kurzer Deploy-Neustart erzeugt dadurch keinen irrefuehrenden 502-Alarm mehr; anhaltende Ausfaelle bleiben weiterhin kritisch und nachvollziehbar im Admin-Status sichtbar.
  • Keine Änderung an Produktwerten, Mahlzeiten, KH/BE/KE-Berechnung, Konto- oder Therapiegrenzen.
v12.582026-07-11

Schnelleres Dashboard und schnellere Suche

  • Der Griff zum direkten Verschieben liegt jetzt in einer eigenen Seitenleiste und überdeckt keine Druck-, Einstellungs- oder Status-Icons mehr.
  • Die Produktsuche lädt nur noch die benötigten Produktfelder; Zählung, globale Treffer und persönliche Treffer laufen parallel.
  • iOS v1.34 (Build 34) fasst parallele Thumbnail-Abrufe zusammen, damit Vorladen und sichtbare Treffer keine doppelte Bildanfrage starten.
  • Keine Änderung an Produktwerten, Mahlzeiten, KH/BE/KE-Berechnung, Konto- oder Therapiegrenzen.
v12.572026-07-11

Schnellere Produktthumbnails

  • Die Web-Produktsuche verwendet jetzt konsequent die kleinen, lokal gecachten Thumbnail-Bilder statt großer Originalbilder.
  • Die ersten sichtbaren Treffer werden nach einer Suche priorisiert geladen; Mahlzeitdetails bevorzugen ebenfalls vorhandene Thumbnail-Snapshots.
  • Ein Performance-Audit dokumentiert Messwerte und die nächsten Schritte für Produktsuche, Web-Startzeit und iOS. Keine Änderung an Produktwerten, Mahlzeiten, KH/BE/KE-Berechnung oder Therapiegrenzen.
v12.562026-07-11

Dashboard direkt anordnen

  • Angemeldete Nutzer verschieben Katalog, Schnellerfassung, Mahlzeit, Historie und Diabetes-News jetzt direkt am Griff jedes Dashboard-Bereichs.
  • Maus, Touch und Tastatur werden unterstützt; nach dem Ablegen wird die bestehende Konto-Präferenz gespeichert. Die Pfeile in Einstellungen bleiben als Alternative verfügbar.
  • Keine Änderung an Produktwerten, Mahlzeiten, KH/BE/KE-Berechnung, Konto- oder Therapiegrenzen.
v12.552026-07-11

Aktuelles nur bei sichtbaren Hinweisen

  • Die Box Aktuelles erscheint im Web-Dashboard nur noch, wenn mindestens ein aktiver Hinweis vorliegt, den der Nutzer nicht ausgeblendet hat.
  • Ausgeblendete Hinweise belegen keinen Dashboard-Platz mehr und bleiben ausschließlich im Bereich Diabetes-News sichtbar.
  • Keine Änderung an Produktwerten, Mahlzeiten, KH/BE/KE-Berechnung, Konto- oder Therapiegrenzen.
v12.542026-07-11

Persönliche Top-Produkte in der Schnellerfassung

  • Die Schnellerfassung zeigt jetzt bis zu 15 persönliche Top-Produkte statt nur zuletzt genutzter Treffer.
  • Die Reihenfolge kombiniert Verwendungen aus der Mahlzeitenhistorie mit bewusst ausgewählten Produktsuchtreffern; Produkte mit Bild werden bevorzugt angezeigt.
  • Die native iOS-App übernimmt dieselbe verschlüsselte Konto-Aktivität in iOS v1.33 (Build 33), damit die persönliche Reihenfolge auf Web und iPhone zusammenpasst.
  • Ausgewählte Produkte, Zähler, letzte Menge und Zeitpunkte werden verschlüsselt im Konto gespeichert. Eingegebene Suchbegriffe werden nicht protokolliert; der Datenexport enthält die entschlüsselte Liste.
  • Keine Änderung an Produktwerten, gespeicherten Mahlzeiten, KH/BE/KE-Berechnung oder Therapiegrenzen.
v12.532026-07-11

Persönliches Web-Dashboard

  • Angemeldete Nutzer können Katalog, Schnellerfassung, Mahlzeit, Historie und Diabetes-News im Web unter Einstellungen > Mein Dashboard neu anordnen.
  • Pfeil-Steuerelemente sind vollständig per Tastatur bedienbar; die Standardanordnung kann jederzeit wiederhergestellt werden.
  • Die Reihenfolge wird als streng geprüfte Konto-Präferenz gespeichert, beim nächsten Login geladen und im Datenexport mitgeführt. Systemhinweise bleiben sichtbar über dem Dashboard.
  • Tests decken gültige, doppelte und unvollständige Anordnungen ab. Keine Änderung an Produktwerten, Mahlzeiten, KH/BE/KE-Berechnung oder Therapiegrenzen.
v12.522026-07-11

Plattformdokumentation und Marktpositionierung

  • Die neue öffentliche Seite `/blog/plattform` erklärt die Rollen der Web App, der nativen iOS-App und der geplanten Android-App mit einer Plattformgrafik.
  • Die Dokumentation hebt die produktive Web App als vollständigen Arbeitsbereich hervor und beschreibt iOS mit konkreten Vorteilen wie Kamera-Barcode, Keychain und fokussierten mobilen Wegen.
  • Ein sachlicher Marktvergleich ordnet BolYtics neben mySugr, Diabetes:M und Cronometer ein. Er verwendet offizielle Herstellerquellen, vermeidet Ranglisten und grenzt BolYtics klar von Therapie-, Insulin- und Bolusfunktionen ab.
  • README, Projektplan, Sync-Vertrag, Roadmap, Erfolgskontrolle und Onlinehilfe wurden auf denselben Produktstand gebracht.
v12.512026-07-10

Informative Mahlzeiten-Auswertung

  • Die Mahlzeiten-Historie zeigt jetzt eine Auswertung der aktuell geladenen und gefilterten Mahlzeiten mit Anzahl, Zeitraum, durchschnittlichen KH, KH-/BE-Summe und groesster Mahlzeit.
  • Balkenlisten fassen Tage mit Mahlzeiten, Kategorien und haeufige Produkte zusammen; weitere geladene Historie erweitert die Auswertung automatisch.
  • Die Statistik nutzt nur die bereits angezeigten Mahlzeitendaten im Client und legt keine neue private Statistikdatenklasse oder Klartext-Suchspalte an.
  • Die Blog-Hilfe und Dokumentation beschreiben die Auswertung ausdruecklich als reine Information ohne Zielwerte, Bewertung, Insulin-, Bolus- oder Therapieempfehlung.
v12.502026-07-10

Erweiterte Onlinehilfe im Blog

  • Die Blog-Hilfe unter `/blog/hilfe` deckt jetzt Produktsuche mit Marktland, persoenliche KH-Werte, Produktmeldungen, Mahlzeiten-Historie, Rezeptzuordnung, Sync, Datenschutz, Export, Abo-Zugriff und Sicherheitsgrenzen ab.
  • Eine neue FAQ erklaert typische Alltagssituationen wie fehlende Rezeptmatches, abweichende Packungswerte und die Trennung zwischen persoenlichem Wert und globalem Katalog.
  • Die iOS-Bewertung bleibt unveraendert: Der zentrale Blog-Link genuegt aktuell; eine eigene In-App-Hilfe wird erst bei Offline- oder screenkontextsensitiver Hilfe sinnvoll.
  • Keine Aenderung an Produktwerten, Sync-Payloads, KH/BE/KE-Berechnung, Billing-Logik oder Therapieempfehlungen.
v12.492026-07-10

Produktqualitaets-Gates mit Gesamtstatus

  • `/api/products/coverage` liefert jetzt neben den einzelnen Datenqualitaets-Gates eine zusammenfassende Bewertung mit ok-, Beobachten- und Offen-Zaehlern.
  • Die Produktdatenbank-Seite zeigt den Gesamtstatus samt priorisierten naechsten Aktionen oberhalb der einzelnen Gate-Karten.
  • Tests sichern Statuslogik, Schwellen und Handlungsliste fuer Verifizierungsquote, Sonstiges, stale Imports und Getraenke ab.
  • Keine Aenderung an Produktwerten, Importdaten, persoenlichen Overrides, KH/BE/KE-Berechnung oder Therapieempfehlungen.
v12.482026-07-10

Rezeptzutaten manuell zuordnen

  • In der Rezeptsuche kann jede Zutat jetzt direkt eine Produktsuche starten.
  • Beim nächsten ausgewählten Produkttreffer übernimmt der Mahlzeiten-Composer die berechnete pro-Person-Menge der Rezeptzutat.
  • Das hilft bei fehlenden oder unpassenden Produktmatches, ohne globale Produktdaten automatisch zu überschreiben.
  • Die Blog-Hilfe beschreibt den neuen Zuordnungsflow für Rezeptzutaten.
  • Keine Aenderung an KH/BE/KE-Kernberechnung, Rezeptquellen, gespeicherten Bestandsmahlzeiten oder Therapieempfehlungen.
v12.472026-07-10

Mahlzeiten-Historie gezielt filtern

  • Der Bereich `Mahlzeiten & Gerichte` kann jetzt nach Suchtext, Kategorie und Zeitraum gefiltert werden.
  • Die Filter werden an `/api/meals` uebergeben, damit auch aeltere Mahlzeiten gefunden werden koennen und nicht nur die aktuell geladene Seite durchsucht wird.
  • Volltext- und Kategoriefilter laufen nach dem Entschluesseln im Serverprozess; es werden keine neuen Klartext-Suchspalten fuer private Mahlzeiten eingefuehrt.
  • Die Blog-Hilfe beschreibt die Historienfilter und den bestehenden Duplizieren-Flow.
  • Keine Aenderung an KH/BE/KE-Kernberechnung, gespeicherten Rechenwegen, Produktwerten oder Therapieempfehlungen.
v12.462026-07-10

Sync-Push fuer persoenliche KH-Werte

  • `POST /api/sync/push` akzeptiert jetzt Create/Update fuer persoenliche Produktwerte neben eigenen Produkten.
  • Persoenliche KH-Werte bleiben verschluesselt gespeichert; Klartextspalten enthalten weiter keinen privaten KH-Wert.
  • Parallele Offline-Aenderungen am selben Produkt werden als Konflikt gemeldet statt still ueberschrieben.
  • Manifest, Pull-Hinweise, Sync-Vertrag und Tests nennen die neue Schreibfaehigkeit; Mahlzeiten, Profile und Rechen-Snapshots bleiben bis zur Konflikt-UI Soft-Delete-only.
  • Keine Aenderung an KH/BE/KE-Kernberechnung, Mahlzeitenlogik oder Therapieempfehlungen.
v12.452026-07-10

Billing-E2E-Preflight

  • Ein neuer Ops-Preflight prueft PayPal- und Apple-IAP-Konfiguration fuer QA oder Produktion ohne Secret-Werte auszugeben.
  • Der Preflight validiert PayPal-Umgebung, Client/Secret/Webhook/Plan-IDs sowie Apple-IAP-Health und erwartete Apple-Umgebung.
  • Die Billing-E2E-Matrix ist auf den aktuellen QA-/Produktionsstand aktualisiert: PayPal ist vorbereitet, Apple-IAP bleibt bis zur App-Store-Connect-Konfiguration deaktiviert.
  • Keine Aenderung an Zahlungslogik, Preisen, Entitlements, KH/BE/KE-Berechnung oder Therapieempfehlungen.
v12.442026-07-10

iOS-TestFlight-Vorbereitung

  • Die iOS-App enthaelt jetzt ein `PrivacyInfo.xcprivacy` im App-Target fuer Xcode Privacy Report und App Store Connect.
  • Der generierte iOS-Info.plist setzt `ITSAppUsesNonExemptEncryption = NO`, passend zur Standardverschluesselung ohne eigene native Kryptografie.
  • Die native Version steigt auf iOS v1.32 (Build 32); App-Store-Checklisten und Submit-Dokumentation nennen Privacy Manifest und Export-Compliance als erledigte Code-Vorbereitung.
  • Keine Aenderung an KH/BE/KE-Kernberechnung, gespeicherten Daten, Sync-Payloads oder Therapieempfehlungen.
v12.432026-07-10

Sync-API-Tests fuer mobile Geraete

  • Die Sync-Manifest-Route ist jetzt gegen Login- und Billing-Gates getestet und liefert nur Metadaten statt privater Payloads.
  • Die Geraete-Registry ist mit Tests fuer Listen, iOS-Registrierung, fremde Geraeteschluessel, Login-Pflicht und Widerruf eigener Geraete abgesichert.
  • Die Tests pruefen explizit, dass Refresh-Token- und Device-Key-Hashes nicht in API-Antworten auftauchen.
  • Keine Aenderung an KH/BE/KE-Kernberechnung, gespeicherten Mahlzeiten, Sync-Payload-Format oder Therapieempfehlungen.
v12.422026-07-10

Security-Maintenance fuer Dependencies

  • Die High-Severity-Audit-Funde zu Hono und Nodemailer werden durch gezielte Updates beziehungsweise Overrides geschlossen.
  • Der SMTP-Transport nutzt nach dem Nodemailer-Update einen festen HELO-Namen und blockiert Datei- sowie URL-Zugriffe bei der Mail-Normalisierung.
  • Der verbleibende moderate PostCSS-Befund haengt an Next.js `16.2.7`; `npm audit fix --force` wuerde auf eine alte/brechende Next-Version wechseln und wird deshalb nicht ausgefuehrt.
  • Ein neuer Mail-Test prueft SMTP-Konfiguration, Transport-Haertung und HTML-Escaping fuer Passwort-Reset-Mails.
  • Keine Aenderung an KH/BE/KE-Kernberechnung, Produktdaten, Mahlzeiten, Sync-Push oder Therapieempfehlungen.
v12.412026-07-10

iOS-Schnellerfassung und Onlinehilfe

  • Die iOS-Planeransicht zeigt jetzt haeufige Mahlzeiten und zuletzt genutzte Produkte aus der Historie als Schnellzugriff.
  • Haeufige Mahlzeiten werden als neue Kopie vorbereitet; zuletzt genutzte Produkte uebernehmen die letzte Menge und lassen sich vor dem Speichern weiter anpassen.
  • Der Blog enthaelt eine neue Onlinehilfe unter `/blog/hilfe`; die iOS-Einstellungen verlinken diese Hilfe zunaechst statt einer separaten In-App-Hilfe.
  • Keine Aenderung an KH/BE/KE-Kernberechnung, Sync-Push, gespeicherten Bestandsdaten oder Therapieempfehlungen.
v12.402026-07-10

iOS-Produktpositionen direkt ersetzen

  • In der iOS-Mahlzeitdetailansicht kann jede gespeicherte Produktposition jetzt mit dem vorhandenen Produktnamen im marktgefilterten Katalog gesucht und durch einen Treffer ersetzt werden.
  • Der Austausch speichert die bestehende Mahlzeit per Server-Update; KH, KE, BE, Quellen-Snapshot und Kochfaktor-Kontext werden danach aus der API neu geladen.
  • Detailansicht, Historie und spaetere Bearbeitung verwenden nach dem Austausch den aktualisierten Serverstand.
  • Keine Aenderung an KH/BE/KE-Kernberechnung, keine Insulin-, Bolus- oder Therapieempfehlungen.
v12.392026-07-10

Land fuer Produktsuche und bessere Rezeptuebernahme

  • Nutzer koennen in den Einstellungen Deutschland, Oesterreich oder Schweiz als Marktland waehlen. Produktsuche und Rezept-Produktmatches filtern globale Katalogprodukte danach plus Online-Angebote; eigene Produkte bleiben sichtbar.
  • Die Rezeptsuche nutzt weiter BolYtics-Basiswerte fuer Grundzutaten wie passierte Tomaten und prueft diese Basiswerte beim Server-Monitoring mit.
  • Die iOS-Planeransicht fuehrt jetzt klarer von Produktsuche ueber Rezeptsuche zur Mahlzeit. Rezeptzutaten sind in uebernehmbare und zu pruefende Zutaten getrennt; KE/BE-Platzhalter wurden entfernt.
  • Keine Aenderung an KH/BE/KE-Kernberechnung, keine Insulin-, Bolus- oder Therapieempfehlungen.
v12.382026-07-10

iOS-Meldungen und Admin-Priorisierung

  • Die iPhone- und iPad-App kann falsche Produktwerte jetzt direkt aus der Produktdetailansicht melden; offene Meldungen werden serverseitig geprüft und ändern globale Produktwerte nie automatisch.
  • Eigene Produkte lassen sich in der iOS-Produktsuche löschen. Das bleibt ein privater Soft-Delete; gespeicherte Mahlzeiten behalten ihren damaligen Snapshot.
  • Der Admin-Bereich priorisiert Monitoring-Fehler und Warnungen nach oben und zeigt bei Produktmeldungen Backlog, Alter, Quelle und meldende Personen klarer an.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeitenlogik oder globalen Produktwerten.
v12.372026-07-10

Barcode-Lookup fuellt Produktart

  • Der Internet-Lookup fuer Barcode-Produkte liefert jetzt einen Produktart-Vorschlag aus Open-Food-Facts-Kategorien, Produktnamen und Zutaten.
  • Dadurch bleibt das Pflichtfeld `Art` beim Speichern eigener Produkte in der iPhone-App nicht mehr leer, sofern die Produktart plausibel erkannt wird.
  • Nicht erkannte Produktarten muessen weiterhin bewusst ausgewaehlt werden; KH-Werte und andere Naehrwerte bleiben pruefpflichtig.
  • Keine Aenderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows oder gespeicherten Bestandsdaten.
v12.362026-07-06

Schnellerfassung und Wert melden

  • Neue Schnellerfassung zwischen Produktsuche und Mahlzeit: zuletzt genutzte Produkte lassen sich mit einem Tipp samt letzter Menge zur Mahlzeit hinzufuegen, haeufig gespeicherte Mahlzeiten (ab zwei gleichnamigen Speicherungen) mit einem Tipp als neue Mahlzeit uebernehmen.
  • Im Produkt-Detailpopup gibt es fuer angemeldete Nutzer den Button `Wert melden`: falsche Produktdaten (z. B. KH-Wert laut Packung) gehen als Meldung an die BolYtics-Pruefung. Meldungen aendern nie automatisch Produktwerte; fuer eigene Berechnungen bleibt der persoenliche KH-Wert der richtige Weg.
  • Der Admin-Bereich zeigt offene Produktmeldungen mit Produkt, Meldegrund und Melder; der Owner kann sie mit interner Notiz als erledigt markieren oder verwerfen.
  • Keine Aenderung an KH/BE/KE-Berechnung, Rezeptmatching oder gespeicherten Daten.
v12.352026-07-03

Dynamische API-Antworten nicht cachen

  • Private und dynamische API-Routen senden jetzt zentral `Cache-Control: no-store, max-age=0`, damit Rezeptsuche, Produktsuche, Mahlzeiten, Auth, Billing und Sync nicht mit veralteten Client- oder Proxy-Antworten arbeiten.
  • Bewusst cachebare Antworten bleiben unveraendert: Produkt-Thumbnails behalten ihren langen Immutable-Cache, Knowledge nutzt weiter `s-maxage`, Public-Stats ihre eigene Steuerung.
  • Der Fix ist ein HTTP-Caching-Schutz und aendert keine KH/BE/KE-Berechnung, kein Rezeptmatching und keine gespeicherten Daten.
v12.342026-07-03

Rezeptzutaten: Basiswerte und strengeres Matching

  • BolYtics bekommt einen idempotenten Basiswerte-Katalog fuer generische Grundzutaten wie Zwiebel, Milch, Mehl, Lasagneplatten, Hackfleisch, Tomaten, Butter und Kaese.
  • Grundzutaten matchen nur noch auf Basiswerte oder auf wirklich passende Produktnamen nach erlaubten Qualifiern; Komposita wie Zwiebel Baguette, Zwiebel-Mettwurst oder Milchbroetchen werden verworfen.
  • Ein KH-Plausibilitaetsfenster verhindert falsche Treffer mit offensichtlich unpassenden Kohlenhydratwerten, ohne die KH/BE/KE-Kernberechnung zu veraendern.
  • Tests sichern den Lasagne-Flow mit Stoerprodukten ab; alte falsch gespeicherte Mahlzeiten bleiben unveraendert, bis sie bewusst geloescht und neu angelegt werden.
v12.332026-07-02

Rezeptsuche: bessere Zutatenpruefung

  • Wikibooks-Unterrezepte werden kontrolliert bis Tiefe 1 aufgeloest; Zutaten behalten ihre Herkunft im Namen, damit Nutzer die Quelle erkennen.
  • Das Produktmatching ist defensiver: Grundzutaten bevorzugen BolYtics-Basiswerte, absurde Marken- oder Geschmacks-Treffer werden verworfen.
  • Web und iPhone zeigen beim Uebernehmen sichtbar, welche Rezeptzutaten nicht in die Mahlzeit uebernommen werden und warum.
  • Stueckangaben fuer eindeutige Zutaten wie Zwiebel, Ei, Knoblauchzehe und Karotte werden konservativ geschaetzt und als Schaetzung gewarnt; keine Änderung an der KH/BE/KE-Kernberechnung.
v12.322026-07-02

Sync-Push fuer eigene Produkte

  • Die Sync-API kann eigene Produkte jetzt serverseitig erstellen und aktualisieren; andere private Datenklassen bleiben fuer Create/Update bewusst gesperrt.
  • Wiederholte Create-Pushes sind idempotent, Updates pruefen die erwartete Version und melden Konflikte explizit statt still zu ueberschreiben.
  • Private Produktdaten werden weiter verschluesselt gespeichert; Sync-Manifest, Pull-Hinweise und Vertrag dokumentieren die neue Stufe.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows oder gespeicherten Daten.
v12.312026-07-02

Eigene Produkte loeschen

  • Eigene Produkte koennen in der Web-Produktsuche per Papierkorb geloescht werden.
  • Der Papierkorb erscheint nur bei privaten Nutzerprodukten, nie bei Systemprodukten; serverseitig wird nur `scope = USER` mit passendem Besitzer per Soft-Delete markiert.
  • Offene Katalogvorschlaege zu einem geloeschten eigenen Produkt werden geschlossen, gespeicherte Mahlzeiten bleiben unveraendert.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows oder gespeicherten Daten.
v12.302026-07-01

Altvorschläge ohne Laden genehmigen

  • Manuell nachgezogene Altvorschläge ohne Laden-Tag bleiben beim Genehmigen nicht mehr hängen.
  • Bei bereits vorhandenem Barcode wird der Vorschlag direkt mit dem bestehenden globalen Produkt verknüpft.
  • Wenn kein globales Produkt existiert, setzt die Admin-Übernahme für Getränke passende Getränkemarkt-Tags; andere Altvorschläge nutzen das bestehende Set „Mehrere gängige Läden“.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows oder gespeicherten Daten.
v12.292026-07-01

Katalogvorschläge zuverlässig prüfen

  • Genehmigte oder abgelehnte Katalogvorschläge verschwinden jetzt sofort aus dem Prüf-Popup und aus der offenen Admin-Zählung.
  • Die Admin-Oberfläche akzeptiert eine Entscheidung erst, wenn der Server den erwarteten Status bestätigt hat.
  • Wenn beim Genehmigen bereits ein globales Produkt mit gleichem Barcode existiert, wird der Vorschlag als übernommen markiert und mit diesem Produkt verknüpft.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows oder gespeicherten Daten.
v12.282026-07-01

Mahlzeiten duplizieren und Historie aufgeräumt

  • Gespeicherte Mahlzeiten können aus der Historie-Liste und aus der Detailansicht per „Duplizieren“ als Vorlage für eine neue Mahlzeit geladen werden.
  • Die Originalmahlzeit bleibt unverändert; beim Speichern entsteht ein neuer Datensatz mit frisch berechnetem Rechenweg.
  • Mahlzeiten-Historie, Druckansicht und Detail-Popup wurden intern in eigene Module ausgelagert, damit die Oberfläche wartbarer bleibt.
  • Keine Änderung an KH/BE/KE-Berechnung, bestehenden Mahlzeiten-Flows oder gespeicherten Daten.
v12.272026-07-01

Interne Code-Aufräumarbeiten

  • Mahlzeiten-Historie, Druckansicht und Detail-Popup wurden intern in eine eigene Komponente ausgelagert.
  • Rein strukturelle Änderung ohne Auswirkung auf Funktionen, KH/BE/KE-Berechnung oder gespeicherte Daten.
v12.262026-07-01

Mahlzeit duplizieren

  • Gespeicherte Mahlzeiten lassen sich jetzt aus der Historie-Liste und aus der Detailansicht per „Duplizieren“ als Vorlage für eine neue Mahlzeit in den Composer laden.
  • Die Originalmahlzeit bleibt dabei unverändert; der vorgeschlagene Name erhält automatisch den Zusatz „(Kopie)“ und lässt sich vor dem Speichern anpassen.
  • Beim Speichern entsteht eine neue Mahlzeit mit frisch berechnetem Rechenweg statt eines Updates der Originalmahlzeit.
  • Keine Änderung an KH/BE/KE-Berechnung, bestehenden Mahlzeiten-Flows oder gespeicherten Daten.
v12.252026-06-28

Katalogvorschläge mit Ladenpflicht

  • Eigene Produkte können in Web und iPhone-App mit der Option „Mehrere (gängige Läden)“ eingereicht werden; sie wird auf Rewe, Edeka, Aldi, Lidl, Kaufland, Penny und Netto gemappt.
  • Wenn ein eigenes Produkt zur Katalogprüfung vorgeschlagen wird, ist ein echter DACH-Laden jetzt Pflicht. Ohne Laden erscheint eine klare Fehlermeldung und es wird kein Vorschlag abgeschickt.
  • Die API schützt denselben Fall zusätzlich serverseitig, damit Admin-Übernahmen nicht mehr an fehlenden Laden-Tags scheitern.
  • iOS läuft dafür als Version 1.18 (Build 18); keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows oder gespeicherten Daten.
v12.232026-06-28

Katalog-Ablehnungen mit Begründung

  • Owner können beim Ablehnen eines Katalogvorschlags einen Ablehnungsgrund erfassen, der am Vorschlag gespeichert wird.
  • Einreicher erhalten bei aktivierter Einstellung eine defensive E-Mail mit Produktname und Begründung; Mailfehler blockieren die Admin-Aktion nicht.
  • Nutzer können E-Mails zu eigenen Katalogvorschlägen in Web und iPhone-App ein- oder ausschalten.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.222026-06-28

Mehr Designs für Web und iPhone

  • Die Darstellung bietet zusätzlich Nord, Salbei und Kontrast als gespeicherte Farbschemas.
  • Web-App und iPhone-App nutzen dieselben Akzentnamen; Light- und Dark-Mode bleiben tokenbasiert abgestimmt.
  • Preference-API, Early-Theme-Script und Tests kennen jetzt alle neun Farbschemas.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.212026-06-26

Produktbilder aus der BolYtics-Datenbank

  • Produktbilder werden schrittweise einmalig in der BolYtics-Datenbank vorgehalten und danach direkt von BolYtics ausgeliefert.
  • Die neue Bildroute holt niemals während Login, Suche oder App-Nutzung selbst bei Open Food Facts nach; bis ein Bild lokal vorliegt, leitet sie kurz auf die direkte OFF-.200-URL weiter.
  • Ein resumierbarer Backfill füllt die gespeicherten Thumbnails kontrolliert im Hintergrund, ohne die Suche oder Anmeldung zu blockieren.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.202026-06-26

Schnellere Produktbilder in der iPhone-App

  • Produktbilder laufen jetzt ueber einen schnellen, gecachten BolYtics-Server-Thumbnail statt direkt ueber die langsame externe Bild-CDN; Listen laden dadurch zuegiger und die Suche bleibt fluessig.
  • Die Bildanzeige ist robuster: iOS faellt bei Thumbnail-Problemen aufs Vollbild zurueck und harte Timeouts verhindern Dauer-Spinner.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.192026-06-26

Getränkemärkte im Produktkatalog

  • Der kontrollierte Katalogimport kennt jetzt auch flaschenpost, Getränke Hoffmann, trinkgut und Durst als echte Laden- und Bezugsquellen.
  • Kölsch-Suchen wie `kolsch`, `fruh kolsch` oder `muhlen kolsch` werden besser auf Kölsch-Produkte mit Umlauten gemappt.
  • Getränke-Shoplinks erscheinen nur noch, wenn der Treffer einen passenden Laden- oder Getränkemarkt-Tag trägt; generische Lieferdienstlinks ohne Produktbezug wurden entfernt.
  • Die reine Bier-Suche blendet offensichtliche Nicht-Getränke wie Bierbeisser, Bierschinken oder Bierkäse aus.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.182026-06-26

Schnellere Produktsuche und iPhone-Bedienung

  • Die Produktdatenbank erhaelt Trigram-Indizes fuer Name und Marke, damit Textsuchen deutlich schneller geplant werden koennen.
  • Produktlisten liefern kleine Thumbnail-URLs mit; bestehende Open-Food-Facts-Bilder koennen per Backfill nachgezogen werden.
  • Die iPhone-App bricht alte Produktsuchen bei neuer Eingabe ab, merkt sich die letzten Suchbegriffe, lädt kleine Produktbilder vor und blendet die Tastatur per Scrollen oder Fertig aus.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.172026-06-26

Ladenzahlen im Filter

  • Der Ladenfilter in der Produktsuche zeigt jetzt direkt die Produktanzahl pro Laden.
  • Gruppierte Filter wie Aldi, Billa, Spar und Coop summieren ihre Varianten passend zum Suchverhalten.
  • Die Anzeige nutzt die bestehende Katalog-Coverage und braucht keinen zusätzlichen Backend-Aufruf.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.162026-06-25

Ladenliste optisch geglättet

  • Die Produktkatalog-Kennzahlen sind oben ausgerichtet, sodass die großen Werte in einer gemeinsamen Zeile stehen.
  • Produkte pro Laden zeigt jetzt vier direkte Ladenpositionen, damit der Block als ruhiges 2x2-Raster wirkt.
  • Die vollständige Ladenliste bleibt weiterhin über das Popup erreichbar.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.152026-06-25

Ladenliste kompakter

  • Die Produktsuche zeigt in der Ladenliste nur noch die drei stärksten Läden direkt an.
  • Alle weiteren Läden lassen sich über ein eigenes Popup mit Produkten, Produkten mit Bild und Bildabdeckung öffnen.
  • Die Top-3-Übersicht pro Land bleibt sichtbar; die vollständige Liste bleibt weiter datengetrieben aus `/api/products/coverage`.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.142026-06-25

Ladenliste in der Produktsuche

  • Die Web-Produktsuche zeigt wieder eine kompakte Ladenliste mit Produkten pro Laden, Produkten mit Bild und Bildabdeckung.
  • Zusätzlich gibt es eine Top-3-Übersicht pro Land für Deutschland, Österreich und die Schweiz; AT/CH-Läden erscheinen vorbereitet/offen, solange noch keine Produkttreffer vorliegen.
  • Produktsuchtreffer mit Produktbild werden bei gleicher Relevanz bevorzugt angezeigt.
  • Keine Änderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.132026-06-25

Blog-Katalogstatistik ohne Nullquoten

  • Die 0%-Qualitaetsquoten fuer Verifizierung, Sonstiges und stale Imports wurden aus dem Blog-Produktdatenbank-Block entfernt.
  • Der Blog zeigt weiterhin den Live-Katalogstand, Bildabdeckung, Laden-Tags, Getraenke und Nutzung.
  • Oesterreichische und Schweizer Laden-Tags werden im Blog als DACH-Status sichtbar; aktuell sind sie vorbereitet/offen, solange noch keine Produkte dazu im Katalog liegen.
  • Keine Aenderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.122026-06-25

Blog-Statistik und Abo-Kacheln ruhiger

  • Die Produktdatenbank-Statistik im Blog nutzt jetzt die volle Inhaltsbreite; die kleinen Beispielgrafiken im rechten Bereich wurden entfernt.
  • Das Zahlungsmodell zeigt Produktsuche, Monatsabo und Jahresabo als drei getrennte Kacheln.
  • Keine Aenderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.112026-06-25

App-Link wieder erreichbar

  • Alte App-Links und PWA-Startpfade unter `/app` leiten wieder sauber auf die BolYtics-Startseite weiter.
  • QA und Live bleiben damit auch bei alten Bookmarks erreichbar.
  • Keine Aenderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.102026-06-25

Katalogstatistik nur noch im Blog

  • Die große Produktdatenbank-Statistik mit Ladenabdeckung, Live-Nutzung und Qualitaetsgates wurde aus der App-Startseite entfernt.
  • Die Produktdatenbank-Karte in der App bleibt auf Suche, Filter, Treffer und Produktdetails fokussiert.
  • Der Blog zeigt die Katalog- und Nutzungsstatistik weiterhin dynamisch aus dem Backend.
  • Keine Aenderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.92026-06-25

Getraenke-Lieferlinks und Live-Katalogzahlen

  • Produktdetails zeigen bei klaren Getraenkeprodukten zusaetzlich passende Getraenke-Lieferdienste; Produktbild sowie KH/KE/BE bleiben direkt in BolYtics sichtbar.
  • Shop- und Lieferlinks sind reine Such-/Absprunglinks; Verfuegbarkeit, Preis, Pfand und Liefergebiet werden im jeweiligen Shop geprueft.
  • Der Blog zeigt die Produktdatenbank-Statistik aus Katalog, Ladenabdeckung, Qualitaetsgates und Live-Nutzung jetzt im Produktdatenbank-Abschnitt dynamisch aus dem Backend.
  • Keine Aenderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.82026-06-25

DACH-Maerkte und Shoplinks im Produktdetail

  • Der Produktkatalog erkennt jetzt zusaetzlich wichtige Maerkte aus Oesterreich und der Schweiz, darunter BILLA/BILLA Plus, SPAR/INTERSPAR, Hofer, Migros, Coop, Denner und weitere DACH-Laden-Tags.
  • Produktdetails zeigen passende Shoplinks zu unterstuetzten Liefer-/Onlineshops wie REWE, INTERSPAR, Migros, Coop, dm, Rossmann und Mueller; Verfuegbarkeit, Preis und Liefergebiet werden im jeweiligen Shop geprueft.
  • Import, Cleanup und Coverage nutzen dieselbe DACH-Retail-Liste, sodass Produkte ohne echten Laden weiter ausgeblendet bleiben.
  • Keine Aenderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.72026-06-25

Feinschliff der Oberflaeche und Betriebsnachweise

  • Produktsuche, Rezeptsuche, Mahlzeiten-Composer und Einstellungen zeigen jetzt Loading-Skeletons, reichere Empty-States, ruhigere lucide-Icons und kurze Token-basierte Micro-Transitions.
  • Produktdatenbank, Blog-Statistik, Admin und `/api/products/coverage` zeigen sichtbare Datenqualitaets-Kennzahlen mit Zielwerten fuer Verifizierung, `Sonstiges`, stale Imports und Getraenke.
  • Restore-Probelauf und Billing-Sandbox-Status sind dokumentiert; Apple-IAP ruht auf QA weiter, solange `APPLE_IAP_ENABLED=false` gesetzt ist.
  • Keine Aenderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows, gespeicherten Daten oder Therapiegrenzen.
v12.62026-06-24

Schnellere Produktbilder und interne Modularisierung

  • Produktbilder laden weiterhin schneller und ruckelfreier (lazy/async, reservierte Bildflaeche und sauberer Fallback bei fehlendem Bild).
  • Die Mahlzeiten-Oberflaeche ist weiter in Module und Komponenten zerlegt: Produktsuche mit Rezeptsuche, Mahlzeiten-Composer und Einstellungen liegen jetzt in eigenen Dateien.
  • Keine Verhaltensaenderung an KH/BE/KE-Berechnung, Mahlzeiten-Flows oder gespeicherten Daten.
v12.52026-06-24

Schnellere Produktbilder und internes Aufraeumen

  • Produktbilder laden jetzt schneller und ruckelfreier (lazy/async, reservierte Bildflaeche, sauberer Fallback bei fehlendem Bild).
  • Die Mahlzeiten-Oberflaeche wurde intern modularisiert (eigene Komponenten/Module fuer Anmeldung, Produktbild, Rezepte und Typen) - schnellere Wartung, gleiches Verhalten.
  • Keine Aenderung an KH/BE/KE-Berechnung, Flows oder gespeicherten Daten.
v12.42026-06-23

Visueller Refresh der Web-Oberflaeche

  • Die Web-App nutzt jetzt eine echte, einheitlich geladene Schrift (Inter) statt der bisherigen Systemschrift-Notloesung; das Schriftbild ist auf allen Geraeten konsistenter und ruhiger.
  • Ueberall zu schwere Schriftgewichte und laute Grossbuchstaben-Label wurden entschaerft, Karten haben weichere Ecken, sanftere Schatten und mehr Abstand.
  • Die Kopfzeile bleibt auch auf sehr schmalen Displays ab 320 px ohne horizontales Scrollen bedienbar.
  • Grundlage ist ein neuer Token-Layer (Typo-, Radius-, Abstands-, Elevation- und Motion-Skala); Verhalten, Texte und Berechnungen bleiben unveraendert.
v12.32026-06-23

Produktdetails direkt zur Mahlzeit hinzufuegen

  • Im Web bekommen Produktdetails jetzt eine direkte Aktion `Zur Mahlzeit hinzufuegen`; danach schliesst sich das Popup und die Ergebnisliste wird geleert.
  • Die iPhone- und iPad-App bietet dieselbe Aktion im Produktdetail-Popup des Planers und uebernimmt dabei die im Suchtreffer eingetragene Menge.
  • Katalog-Details bleiben reine Detailansichten; die neue Add-Aktion erscheint nur dort, wo gerade eine Mahlzeit zusammengestellt wird.
v12.22026-06-22

Produkt-Popup im iOS-Planer und neue KI-Arbeitsmittel

  • In der iPhone- und iPad-App lassen sich Produkt-Treffer jetzt auch im Planer antippen und oeffnen dasselbe Detail-Popup wie im Katalog; bisher war das nur im Katalog moeglich.
  • Das Detail-Popup zeigt im Planer dieselben Naehrwerte (KH, Zucker, Ballaststoffe, Eiweiss, Fett) inklusive Quelle und funktioniert in der normalen Ansicht und im Bearbeiten-Modus.
  • Projektintern neu: ein gemeinsamer Design-System-Plan fuer Web und iOS, ein interaktiver GUI-Prototyp sowie neue KI-Skills/Agents fuer Design-System, Frontend-Architektur und Tests.
v12.12026-06-17

Apple-IAP Review-Haertung und Health-Check

  • Apple-IAP-Signaturen werden jetzt gegen Production und Sandbox verifiziert, damit App Review Sandbox-Kaeufe auch gegen die Production-App akzeptiert.
  • App-Store-Server-API-Aufrufe koennen den zur Transaktion passenden Sandbox- oder Production-Client nutzen; ungueltige Signaturen werden weiterhin abgelehnt.
  • Der neue Apple-IAP-Health-Check meldet nur Boolean-Konfigurationsstatus und leakt keine Apple-Secrets.
v12.02026-06-17

StoreKit-2-Abos und Monats-/Jahresmodell

  • Die iPhone- und iPad-App ist auf Apple StoreKit 2 vorbereitet: Monats- und Jahresabo laufen dort ueber Apple In-App-Kauf mit Restore, Abo-Hinweis sowie Links zu AGB und Datenschutz.
  • Das Backend fuehrt Apple- und PayPal-Zahlungen in einem gemeinsamen Premium-Zugang pro BolYtics-Konto zusammen und verarbeitet Apple-Transaktionen sowie App-Store-Notifications idempotent.
  • Das bisherige Lifetime-Angebot wurde aus Kaufflaechen, Kampagnen, Blog und Rechtstexten entfernt; bestehende dauerhafte Owner-Freischaltungen bleiben technisch erhalten.
v11.62026-06-16

Mahlzeiten-Bearbeitung mit Kochfaktor stabilisiert

  • Der Wechsel aus gespeicherten Mahlzeiten in den Bearbeitungsmodus ist für vorhandene Kochfaktor-Daten robuster abgesichert.
  • Ältere Einträge mit gekocht gespeicherten Mengen werden im Editor sauber auf den Trockengewicht-Flow zurückgeführt.
  • Fehlerhafte oder unvollständige Kochfaktor-Felder reißen die Seite beim Bearbeiten nicht mehr direkt mit.
v11.52026-06-16

Trocken-Gekocht mit Kochgewicht-Vorschau

  • Im Mahlzeiten-Builder bleibt bei aktivem Trocken/Gekocht jetzt das Trockengewicht der führende Eingabewert.
  • Das passende gekochte Gewicht wird direkt daneben als Vorschau angezeigt, statt zwischen trocken und gekocht umzuschalten.
  • Bereits gespeicherte Mahlzeiten mit Kochfaktor lassen sich weiter bearbeiten und werden im Editor auf den neuen Trockengewicht-Flow zurückgeführt.
v11.42026-06-16

Trocken/Gekocht global steuerbar

  • Die Admin-Seite kann die Trocken/Gekocht-Funktion jetzt global für die Web-App an- und abschalten.
  • Wenn die Funktion im Admin deaktiviert ist, blockieren Einstellungen, Quelltabellen und Override-APIs die Nutzung konsistent.
  • Im Mahlzeiten-Builder wird der Kochfaktor dann nicht mehr als aktiv nutzbare Funktion angeboten.
v11.32026-06-15

Admin-News im Feed ruhiger formatiert

  • Ausgeblendete Aktuelles-Hinweise nutzen im Diabetes-News-Bereich jetzt eine eigene einspaltige Karte ohne gequetschte Bildspalte.
  • Der Text läuft deutlich ruhiger über die verfügbare Breite, und die farbige Hervorhebung bleibt erhalten.
  • Damit bleiben Owner-Hinweise bis zur nächsten neueren Nachricht sichtbar, wirken aber im Newsfeed deutlich sauberer.
v11.22026-06-15

Aktuelles bleibt als News sichtbar

  • Weggeklickte Aktuelles-Hinweise bleiben jetzt zusätzlich als farbig hinterlegte Karten im Bereich Diabetes-News sichtbar.
  • Diese eingeblendeten Owner-Hinweise verschwinden automatisch wieder, sobald eine neuere Aktuelles-Nachricht veröffentlicht wird.
  • Oben in Aktuelles bleibt der Dismiss-Flow unverändert: Hinweise lassen sich pro Browser lokal ausblenden und neue Meldungen erscheinen automatisch wieder.
v11.12026-06-15

Aktuelles im Web abheften und farblich betonen

  • Owner-Hinweise in Aktuelles lassen sich jetzt in der Web-App pro Nachricht direkt mit X ausblenden.
  • Ausgeblendete Hinweise werden lokal im Browser gemerkt und erscheinen automatisch wieder, sobald wirklich neue Nachrichten veröffentlicht werden.
  • Die Aktuelles-Box ist jetzt im Web farblich hervorgehoben und lehnt sich damit stärker an die iPhone- und iPad-Darstellung an.
v11.02026-06-15

Kochfaktor in Web-Mahlzeiten

  • Die Web-App enthält jetzt Kochfaktor-Einstellungen mit Quelltabelle, Standardmodus trocken oder gekocht und dem verbindlichen Hinweis zur Eigenverantwortung.
  • Im Mahlzeiten-Composer können passende Produkte pro Position als trocken oder gekocht markiert werden; der Kochfaktor fließt direkt in KH, KE, BE und den Rechenweg ein.
  • Gespeicherte Mahlzeiten, Vorschau und spätere Bearbeitung behalten die Kochfaktor-Daten jetzt vollständig bei.
v10.92026-06-15

Aktuelles statt Shoutbox

  • Die öffentliche Owner-Nachrichtenfläche in der Web-App heißt jetzt Aktuelles und sitzt direkt unter dem Anmeldenamen.
  • Das frühere Zweispaltenlayout im Hauptbereich ist wiederhergestellt, weil Aktuelles nicht mehr zwischen Produktsuche und Mahlzeit steht.
  • Die iPhone- und iPad-App zeigt in den Einstellungen nur noch die letzte Änderung direkt an; die vollständigen Releasenotes liegen dort auf einer eigenen Seite.
v10.82026-06-15

Shoutbox und Owner-Admin für Web und iPhone

  • BolYtics zeigt jetzt eine öffentliche Shoutbox mit Owner-Nachrichten direkt in der Web-App an.
  • Das Owner-Admin unter /admin kann Shoutbox-Nachrichten als Entwurf anlegen, veröffentlichen, bearbeiten und wieder löschen.
  • Die iPhone- und iPad-App liest dieselben Owner-Nachrichten über die gemeinsame API und bietet dem Owner-Konto zusätzlich eine native Shoutbox-Verwaltung in den Einstellungen.
v10.72026-06-14

Mahlzeitenliste hebt KH hervor

  • In der Mahlzeiten-Übersicht wird jetzt wieder der KH-Wert prominent hervorgehoben, nicht mehr der BE-Wert.
  • KE und BE bleiben sichtbar, treten in der Listenkarte aber visuell hinter Kohlenhydraten zurück.
  • Die Detailansicht und die inhaltliche Berechnung bleiben unverändert.
v10.62026-06-14

Mahlzeitenliste leitet Summen aus Zutaten ab

  • Die Mahlzeiten-Übersicht berechnet KH, KE und BE jetzt direkt aus den gespeicherten Zutatenpositionen statt nur aus den Summenfeldern der Mahlzeit.
  • Dadurch stimmen Übersichtskarten und Druckübersicht auch bei älteren oder zuvor inkonsistenten Mahlzeiten wieder mit den Einzelwerten überein.
  • Die Mahlzeitdetailansicht bleibt unverändert und nutzt weiterhin denselben gespeicherten Rechenweg.
v10.52026-06-14

Rezept-Einkaufsliste mit manuellen Zutaten

  • Zutaten aus der Rezept-Einkaufsliste lassen sich jetzt auch ohne eindeutigen Produktmatch direkt in die Mahlzeit übernehmen.
  • Unklare Zutaten wie Gewürze oder Einträge ohne feste Grammmenge werden dabei als manuelle Rezeptzutaten mit 0 g KH angelegt und können danach im Mahlzeiten-Editor ergänzt oder ersetzt werden.
  • Der private Mahlzeiten-Speicherpfad akzeptiert diese manuellen Rezeptzutaten jetzt ebenfalls, ohne dass sie zuerst als globales Produkt im Katalog existieren müssen.
v10.42026-06-14

Gespeicherte Mahlzeiten nachträglich bearbeitbar

  • Gespeicherte Mahlzeiten lassen sich jetzt aus der Liste und aus der Detailansicht wieder in den Mahlzeiten-Composer laden.
  • Dort können Mengen, Produkte, Personenanzahl und weitere Zutaten geändert werden; KH, KE, BE und der Rechenweg werden danach vollständig neu berechnet.
  • Beim Speichern wird die bestehende Mahlzeit jetzt per Update überschrieben statt doppelt als neue Mahlzeit angelegt.
v10.32026-06-13

iPhone-App mit Rezeptsuche im Mahlzeiten-Builder

  • Der Mahlzeiten-Tab der iPhone-App kann jetzt Rezepte über die bestehende BolYtics-API suchen und direkt im Builder auswählen.
  • Gematchte Rezeptzutaten lassen sich als Produktpositionen in die Mahlzeit übernehmen; KH/BE/KE kommen weiterhin ausschließlich aus der serverseitigen Vorschau und Speicherung.
  • Gespeicherte Rezept-Mahlzeiten zeigen in der iPhone-App jetzt auch Einkaufsliste, Zubereitung und einen Link zurück zur Originalquelle.
v10.22026-06-13

iPhone-App MVP mit Mobile-API-Vertrag

  • BolYtics enthält jetzt unter `apps/ios/` ein erstes natives SwiftUI-Projekt für iOS 17+ mit Login, Produktsuche, Produktdetail, serverseitiger Mahlzeitenvorschau, Mahlzeitenspeicherung, Historie, News und Einstellungen.
  • Login und Registrierung liefern zusätzlich einen Bearer-Session-Token; private Web-API-Routen akzeptieren jetzt auch `Authorization: Bearer` für die iPhone-App.
  • Für den Mobile-MVP wurden `GET /api/product-overrides` und `POST /api/meals/preview` ergänzt, damit private Overrides gelesen und KH/BE/KE serverseitig ohne lokale App-Rechenlogik geladen werden können.
v10.12026-06-13

P1 Beta-Härtung für Billing, Ops und API-Tests

  • BolYtics enthält jetzt eigene Billing- und Ops-Skills sowie neue API-Integrationstests für Registrierung, Login, Mahlzeiten, Produkt-Overrides, Sync-Push und Billing-Status.
  • Datenschutz-Kommunikation in App und Blog wurde auf die serverseitige at-rest-Grenze geschärft; Zero-Knowledge bleibt ausdrücklich ein späteres Sicherheits-Gate.
  • Ein neues Ops-Runbook dokumentiert Owner-Zugang, Secret-Rotation, zweiten Admin, Notfallzugang, SMTP-Ausfall und den Rate-Limit-Befund für spätere horizontale Skalierung.
v10.02026-06-09

Mahlzeiten löschen und Rezeptquelle behalten

  • Gespeicherte Mahlzeiten können jetzt direkt aus der Liste oder aus der Detailansicht heraus wieder gelöscht werden.
  • Beim Speichern einer Rezept-Mahlzeit werden Einkaufsliste, Zubereitungsschritte und die Original-Rezeptquelle verschlüsselt in der Mahlzeit mitgespeichert.
  • Gespeicherte Mahlzeitdetails bieten damit auch später wieder einen direkten Link zurück zur Original-Rezeptseite.
v9.92026-06-09

Mahlzeit-Druck mit Tabellen und Rezeptschritten

  • Der Ausdruck von Mahlzeitdetails folgt jetzt einer festen Reihenfolge: zuerst die Mahlzeit, danach die Einkaufsliste und danach die Zubereitung.
  • Mahlzeit und Einkaufsliste werden im Druck als Tabellen ausgegeben; Zutaten ohne Produktmatch bleiben in der Einkaufsliste sichtbar.
  • Übernommene Rezeptschritte werden zusammen mit Rezept-Personenzahl und Koch-Personenzahl verschlüsselt in der Mahlzeit gespeichert und später mitgedruckt.
v9.82026-06-09

Sonstiges transparenter und Nachtimport strenger

  • Die Produktdatenbank-Detailseite trennt `Sonstiges` jetzt nach nur unbekanntem Laden und Seed-/Fallback-Produkten mit `Eigene Küche`.
  • Der Nachtimport priorisiert weiterhin bekannte Läden und Getränke, lädt danach aber nur noch einen kleinen allgemeinen Nachladeblock.
  • Ein großer separater `--only-unknown-store`-Import wird damit nicht mehr bevorzugt gefahren.
v9.72026-06-09

Mahlzeit-Zurücksetzen räumt Rezeptzustand auf

  • Zurücksetzen leert jetzt nicht nur Produkte, Name, Kategorie und Personenzahl, sondern auch die verknüpfte Rezeptauswahl und Einkaufsliste.
  • Gespeicherte Mahlzeiten verwenden denselben gemeinsamen Reset-Pfad wie das manuelle Zurücksetzen.
  • Der Mahlzeiten-Composer fühlt sich dadurch nach Rezeptübernahmen konsistent wieder leer an.
v9.62026-06-09

Laden-Details Button im Coverage-Kopf

  • Der Button zur Laden-Detailseite sitzt jetzt direkt im oberen Coverage-Bereich rechts neben den Katalogkennzahlen.
  • Er nutzt dieselbe Ghost-Button-Optik wie die übrigen Aktionsbuttons der App.
  • Die Laden-Chips darunter bleiben als kompakte Schnellübersicht erhalten.
v9.52026-06-09

Produktdatenbank mit Laden-Tabelle

  • Eine neue Detailseite zeigt für jeden Laden die Anzahl der Produkte, die Anzahl mit Bild und die Anzahl ohne Bild in einer Tabelle.
  • Die Daten kommen direkt aus derselben Coverage-Berechnung wie die Produktübersicht, damit App und Detailseite identische Kennzahlen anzeigen.
  • Aus dem Produktbereich führt jetzt ein direkter Link Laden-Details in diese Übersicht.
v9.42026-06-09

Aldi-Suche und Gouda-Toleranz verbessert

  • Der Ladenfilter behandelt Aldi jetzt als gemeinsame Gruppe für Aldi, Aldi Nord und Aldi Süd.
  • Produktkarten zeigen diese Gruppe kompakt als Aldi; die detaillierten Laden-Tags bleiben in der Detailansicht erhalten.
  • Die Produktsuche toleriert außerdem einfache Schreibfehler wie Gauda und findet dabei weiterhin Gouda-Produkte.
v9.32026-06-09

Produktsuche trifft Joghurt-Komposita

  • Die Produktsuche findet Begriffe wie Joghurt jetzt auch innerhalb zusammengesetzter Produktnamen wie Fruchtjoghurt, Naturjoghurt oder Sahne-Joghurt.
  • Mehrwortige Suchanfragen werden tokenbasiert ausgewertet und hängen dadurch nicht mehr an der exakten Wortreihenfolge im Produktnamen.
  • Datenbanksuche, persönliche Produkte und Demo-Fallback verwenden dafür nun dieselbe Normalisierungs- und Matching-Logik.
v9.22026-06-08

Besuchszähler zählt App-Sessions

  • Der öffentliche Besuchszähler wird pro Browser-Session nur noch einmal erhöht.
  • Rücksprünge aus Blog, Admin oder Einstellungen aktualisieren die Statistik, zählen aber keinen neuen Besuch mehr.
  • Die Erfassung bleibt cookie-frei und speichert weiterhin keine IP-Adressen oder personenbezogenen Trackingdaten.
v9.12026-06-08

Admin-Benutzerliste mit Popup-Editor

  • Der Admin-Bereich zeigt Benutzer jetzt als kompakte Liste mit maximal zehn Einträgen pro Seite.
  • Vorname, Nachname, E-Mail, Sperre, E-Mail-Bestätigung und Abo-Status werden in einem eigenen Editor-Popup bearbeitet.
  • Die Benutzerliste unterstützt Suche nach Name oder E-Mail, bestehende Statusfilter und Vor-/Zurückblättern durch Trefferseiten.
v9.02026-06-07

Projektdokumentation nur noch in QA

  • Die Projekt-Dokumentation wird im Live-Web nicht mehr angezeigt und die Docs-Navigation dort ausgeblendet.
  • Die Route /docs bleibt im identischen Codebestand erhalten, ist aber nur im QA-Environment sichtbar.
  • QA und Live bleiben technisch gleich; Unterschiede laufen ueber Environment-Konfiguration, PayPal bleibt in QA weiter Sandbox.
v8.92026-06-07

Blog-Rechtslinks korrigiert

  • Links zu Impressum, Datenschutzerklärung, AGB, Widerruf und Releasenotes verweisen im Blog nun auf die korrekte App-Domain.
  • Die Blog-Subdomain liefert direkte Rechtstext-URLs nicht mehr als Blog-Unterseite aus und vermeidet dadurch 404-Fehler.
  • Der Zur-App-Link auf Rechtstextseiten führt immer zurück zur eigentlichen BolYtics-App.
v8.82026-06-07

Rechtstexte als eigene Druckseiten

  • Impressum, Datenschutzerklärung, AGB und Widerruf werden aus dem Ordner Rechtstexte als eigene Seiten ausgeliefert.
  • Die Entwurfs- und Prüfhinweise wurden aus den öffentlichen Rechtstexten entfernt.
  • App- und Blog-Footer verlinken die Rechtstexte; jede Seite hat eine Druckfunktion und eine druckfreundliche Ansicht.
v8.72026-06-07

Pflicht-Art für eigene Produkte

  • Eigene Produkte müssen beim Erfassen jetzt einer Lebensmittelart zugeordnet werden.
  • Die Art wird verschlüsselt mit dem persönlichen Produkt gespeichert und im Art-Filter bevorzugt ausgewertet.
  • Bei einer späteren Admin-Freigabe in den offenen Katalog wird die geprüfte Art als Katalog-Metadatum übernommen.
v8.62026-06-07

Ladenfilter ohne Suchtext

  • Die Produktsuche lädt jetzt auch dann Treffer, wenn nur ein Laden wie Aldi ausgewählt ist.
  • Laden- und Artfilter gelten als aktive Suchkriterien und zeigen ihre Trefferliste inklusive Pagination.
  • Das X im Suchfeld setzt Suchtext, Ladenfilter, Artfilter und Trefferliste gemeinsam zurück.
v8.52026-06-07

Getränke ohne Oberkategorie-Treffer

  • Der Getränke-Filter nutzt keine generischen Begriffe wie Getränk oder Getränke mehr.
  • Open-Food-Facts-Oberkategorien wie Pflanzliche Lebensmittel und Getränke sortieren Gemüse, Obst oder Tomaten dadurch nicht mehr in Getränke ein.
  • Konkrete Getränkearten wie Wasser, Saft, Cola, Bier, Wein, Smoothie, Tee und Kaffee bleiben filterbar.
v8.42026-06-07

Art-Filter mit Wortgrenzen

  • Lebensmittelarten werden nun anhand ganzer Begriffe und Phrasen erkannt.
  • Kurzbegriffe wie Wein oder Tee treffen dadurch nicht mehr zufällig in Wörtern wie Schwein oder geschnitten.
  • Die Produktsuche bleibt damit bei breiten Ladenabfragen wie Aldi deutlich präziser.
v8.32026-06-07

Getränke-Filter finalisiert

  • Der Art-Filter Getränke verlässt sich nicht mehr auf generische Open-Food-Facts-Beverage-Tags.
  • Aldi-Produkte wie Tomaten, Pilze oder Trockenobst erscheinen dadurch nicht mehr nur wegen breiter Quellkategorien im Getränkefilter.
  • Eindeutige Getränkebegriffe wie Saft, Cola, Bier, Wasser, Wein, Smoothie, Tee und Kaffee bleiben weiterhin auffindbar.
v8.22026-06-07

Art-Filter geschärft

  • Der Getränke-Filter ignoriert jetzt breite Open-Food-Facts-Sammelkategorien wie Lebensmittel und Getränke.
  • Produkttexte wie in Saft führen nicht mehr automatisch zu Getränketreffern.
  • QA und Live bleiben damit bei der Produktsuche funktional identisch, während QA weiterhin PayPal Sandbox nutzt.
v8.12026-06-07

Produktsuche mit Art-Filter und Pagination

  • Die Produktsuche unterstützt nun Vor- und Zurückblättern mit Ergebnisbereich und Gesamtzahl.
  • Ein neuer Art-Filter gruppiert Produkte nach Gemüse, Obst, Fleisch, Backwaren, Milchprodukten, Getränken, Fertiggerichten und weiteren Alltagskategorien.
  • Bekannte Ladenbegriffe wie Aldi werden bei der Suche als impliziter Ladenfilter erkannt; die Statistikbox zeigt statt privater Werte jetzt Katalogfreigaben und offene Prüfkandidaten.
v8.02026-06-07

Bestandsprodukte in der Katalogprüfung

  • Der Admin-Bereich zieht bestehende eigene Produkte ohne Katalogvorschlag automatisch als offene Prüfkandidaten nach.
  • Private Produkte werden dadurch nicht automatisch veröffentlicht; erst die Admin-Aktion Übernehmen erzeugt einen globalen Produktdatensatz.
  • Die Katalogübersicht erklärt nun klarer, dass bestehende eigene Produkte im Prüf-Popup erscheinen können.
v7.92026-06-07

Katalogprüfung im Admin-Popup

  • Der Admin-Bereich zeigt offene Produktvorschläge nun als kompakte Zusammenfassung.
  • Die eigentliche Prüfung läuft in einem Popup mit Produktbild, Nährwerten, Einsender, Notiz und den Aktionen Übernehmen oder Ablehnen.
  • So bleibt der Benutzerstatus übersichtlich, während Katalogfreigaben weiterhin kontrolliert und nachvollziehbar bleiben.
v7.82026-06-07

Eigene Produkte in den offenen Katalog vorschlagen

  • Eigene Produkte bleiben privat, können aber beim Speichern bewusst zur Prüfung für den offenen BolYtics-Katalog vorgeschlagen werden.
  • Der Admin-Bereich zeigt offene Katalogvorschläge mit Bild, Nährwerten, Einsender und Notizfeld.
  • Owner können Vorschläge ablehnen oder nach Prüfung als globalen Produktdatensatz mit Quellenvermerk übernehmen.
v7.72026-06-06

Admin-Benutzerkarten professioneller gestaltet

  • Der Benutzerstatus im Admin-Bereich nutzt jetzt klarere Karten mit Initialen, Name, Status-Badges und Abo-Zusammenfassung.
  • Bearbeitbare Nutzer- und Billing-Felder sind optisch gruppiert und umbrechen sauber, statt rechts aus dem Panel zu laufen.
  • Sperr- und Speicheraktionen sind kompakter und bleiben in derselben Farblogik wie das gewählte BolYtics-Farbschema.
v7.62026-06-06

Produktimport erweitert

  • Der produktive Open-Food-Facts-Katalog wurde um 10.000 weitere neue Produkte erweitert.
  • Der Dump-Importer lädt vorhandene Produkt-IDs im `--new-only`-Modus jetzt erst nach dem Deutschland- und Zielgruppenfilter, damit Nachlade- und Nachtläufe nicht leer laufen.
  • Ein neuer Coverage-Snapshot dokumentiert 64.288 globale Produkte im Live-Katalog.
v7.52026-06-06

Live-Statistik für Nutzung und Vertrauen

  • Der Produktbereich zeigt zusätzlich aggregierte Live-Werte zu Besuchen, registrierten Nutzern, gespeicherten Mahlzeiten, Produktabfragen, eigenen Produkten und persönlichen Werten.
  • Besuche werden als globaler Seitenaufrufzähler ohne Cookies, IP-Speicherung oder personenbezogenes Tracking erfasst.
  • Der Blog nutzt dieselbe öffentliche Statistikbox als Marketing- und Vertrauenssignal.
v7.42026-06-06

Mehr Farbschemas und stärkere KH-Kachel

  • Die Darstellung bietet zusätzlich Blau, Beere und Graphit als gespeicherte Farbschemas.
  • Die Kohlenhydrat-Kachel hebt sich jetzt mit Akzent-Rand, feinem Verlauf und schemafarbigem Schatten klarer ab.
  • Header-Control, Settings und Preference-API akzeptieren dieselben sechs Farbschemas.
v7.32026-06-06

Admin-Filter und manuelle Statuspflege

  • Der Admin-Bereich filtert Benutzer nach nicht aktivierter E-Mail, Sperre, Testzeitraum, aktivem Abo, gekündigtem Abo, offenem Zahlungsstatus, Lifetime und fehlendem Abo.
  • Owner können E-Mail-Bestätigung, Sperre, Zugang, Abo-Status, Quelle, Laufzeitdaten und Admin-Notiz direkt je Benutzer bearbeiten.
  • Gekündigte Abos behalten Zugriff bis zum bezahlten Ablaufdatum und werden erst danach als abgelaufen bewertet.
v7.22026-06-06

Manuelle Backups entprellt

  • Der Admin-Backup-Trigger nutzt jetzt eine einmalige Request-Datei mit systemd PathExists.
  • Die Trigger-Datei wird root-seitig vor dem Backup entfernt, damit ein Klick nur einen Backup-Lauf ausloest.
  • Offene Backup-Anforderungen werden nicht ueberschrieben, sondern als bereits angefordert gemeldet.
v7.12026-06-06

Admin-Backup-Start gehärtet

  • Der Admin-Button startet Backups nicht mehr per sudo aus der Web-App heraus.
  • Ein fester systemd-Path-Trigger nimmt manuelle Backup-Anforderungen entgegen und startet die Backup-Unit root-seitig.
  • Das App-Hardening mit NoNewPrivileges bleibt dadurch erhalten.
v7.02026-06-06

Mahlzeiten ohne Therapieprofil

  • Der aktive Mahlzeitenfluss zeigt und speichert nur noch KH, KE, BE und den nachvollziehbaren Rechenweg.
  • Therapieprofil, Korrekturwert, aktueller Glukosewert, aktives Insulin und technische Insulin-Vorschau wurden aus der UI entfernt.
  • Die Blog-Erklaerung grenzt BolYtics jetzt klarer als Mahlzeitenplanung und Archivierung ohne medizinische Therapieempfehlung ab.
v6.92026-06-06

Popups leichter schliessbar

  • Popup-Kopfzeilen bleiben beim Scrollen sichtbar, damit das X immer erreichbar ist.
  • Mahlzeitdetails, Rezeptsuche, Produktbild und Einstellungen haben zusaetzliche Schliessen-Aktionen am unteren Rand.
  • Die Druckansicht der Mahlzeitdetails blendet diese Bedienaktionen weiterhin aus.
v6.82026-06-06

OFF-Laenderfilter aktualisiert

  • Der Dump-Importer wertet jetzt auch `countries_en` aus, weil der aktuelle Open-Food-Facts-Dump Deutschland dort fuehrt.
  • Breite Produktnachlade-Laeufe finden dadurch wieder deutsche OFF-Produkte mit KH-Werten.
v6.72026-06-06

Breiterer Produktimport

  • Der Open-Food-Facts-Dump-Importer kann mit `--new-only` gezielt nur neue globale Produkte laden.
  • Grosse Importlaeufe koennen jetzt bis zu 50.000 Produkte in einem Durchlauf sammeln.
  • Die naechtliche Produktpflege sucht breiter nach Getraenken, Fertiggerichten, Gewuerzen, Fleisch, Suppen und weiteren Alltagsprodukten.
v6.62026-06-06

Therapiegrenze sichtbar gemacht

  • Login und Registrierung zeigen jetzt deutlich, dass BolYtics keine Therapievorschlaege und keinen medizinischen Rat erteilt.
  • Der Mahlzeiten-Rechner erklaert direkt im Arbeitsbereich, dass KH/KE/BE eine Planungs- und Archivierungshilfe sind.
  • Blog und App-Footer beschreiben die Nutzungsgrenze: Werte muessen immer mit dem persoenlichen Therapieplan abgeglichen werden.
v6.52026-06-06

Admin-Status optisch aufgeraeumt

  • Der Admin-Benutzerstatus zeigt Abo- und Trial-Zustaende jetzt mit deutschen Labels statt technischen Enum-Werten.
  • Die frueheren gelben Status-Pills wurden durch ruhigere Statuskarten mit Hauptzeile und Detailzeile ersetzt.
  • Benutzerzeilen im Admin-Bereich wirken durch hellere Flaechen, konsistentere Abstaende und stabilere Aktionsspalten professioneller.
v6.42026-06-06

Sicherheits-Haertung

  • Produktion startet nicht mehr mit lokalen oder zu kurzen Verschluesselungs-Secrets.
  • Neue Verschluesselungen nutzen HKDF-abgeleitete Schluessel; bestehende Daten bleiben ueber Legacy-Key-Kandidaten lesbar.
  • Login, Registrierung, Passwort-Reset, E-Mail-Bestaetigung und 2FA sind gegen zu viele Versuche gedrosselt.
  • Security-Header und Origin-Pruefung schuetzen zusaetzlich gegen Clickjacking, unsichere Einbettung und Cross-Site-Requests.
v6.32026-06-05

Produktwerte und Abo-Regeln

  • Produkt-Naehrwerte wie Salz, Zucker, Fett, Eiweiss und KH akzeptieren jetzt deutsche Kommawerte.
  • Eigene KH-Overrides und Produkt-APIs normalisieren Kommawerte serverseitig robust.
  • Aktive Monats- und Jahresabos koennen ueber PayPal gewechselt werden; Lifetime sperrt weitere Zahlungsoptionen.
  • Der Abo-Bereich erklaert Widerrufsfrist, Testzeitraum und Laufzeit bei Jahresabo-Kuendigung.
v6.22026-06-05

QA-PayPal-Ruecksprung

  • Billing-Rueckspruenge nutzen jetzt konsequent die oeffentliche App-URL statt interner localhost-Ports.
  • QA-PayPal-Abos landen nach Abschluss wieder auf `qa.bolytics.eu`.
v6.12026-06-05

PayPal-Sandbox-Link fuer QA

  • PayPal-Orders lesen jetzt auch `payer-action` als Freigabelink, damit Lifetime-Checkout in der Sandbox geoeffnet werden kann.
  • QA ist fuer PayPal Sandbox mit Client, Secret und Webhook-ID vorbereitet; Monats- und Jahresabo warten noch auf Sandbox-Plan-IDs.
v6.02026-06-05

Projektbewertung und Billing-Tests

  • Die Projektbewertung wurde auf den aktuellen CI-, QA-, Backup- und Monitoring-Stand gebracht.
  • Der Web-Workspace nutzt jetzt Vitest fuer erste automatisierte Billing-Tests.
  • PayPal-Webhook-Tests decken ungueltige Signaturen, doppelte Events und Lifetime-Zahlungen ab.
v5.92026-06-05

Blog-Statuskarten und QA-Branding

  • Der Blog stellt `2FA aktiv` und `E-Mail bestätigt` grün hinterlegt dar.
  • Die Konto-Statuskarten im Blog haben im Raster eine einheitliche Höhe.
  • QA-Instanzen zeigen einen roten Akzent und den Titel `BolYtics | QA Environment`.
v5.82026-06-05

Build-Env fuer QA und Produktion

  • Deploy-Skripte verlinken die Environment-Datei jetzt auch in `apps/web`, damit Next.js statische Links mit der jeweiligen Domain baut.
  • QA bleibt dadurch intern auf `qa.bolytics.eu` verlinkt, waehrend Produktion weiter die Live-Domains nutzt.
v5.72026-06-05

QA-Katalog-Sync korrigiert

  • Der QA-Katalog-Sync nutzt serverseitiges Postgres-COPY und kann den oeffentlichen Produktkatalog robust nach `qa.bolytics.eu` uebertragen.
  • Der temporäre Export wird nach dem Lauf sauber entfernt, ohne Nutzer-, Session- oder Mahlzeitdaten zu beruehren.
v5.62026-06-05

QA-Spiegel

  • QA-Deployment fuer `qa.bolytics.eu` nutzt eigene Datenbank, eigene Environment-Datei, eigenen Service und eigenen Port.
  • PayPal ist in QA auf Sandbox ausgelegt; Live-Zahlungsdaten werden nicht uebernommen.
  • Ein Katalog-Sync kopiert nur oeffentliche globale Produktdaten nach QA, keine Nutzer- oder Gesundheitsdaten.
v5.52026-06-05

Kampagnen-Landingpage

  • Die Launch-Landingpage aus dem Kampagnenordner wird jetzt unter `/kampagne` öffentlich ausgeliefert.
  • Der Blog verlinkt die Landingpage oben im Hero als klaren Marketing-Einstieg.
  • Die Landingpage führt mit Rücklink zum Blog und Startlinks zurück in die Web-App.
v5.42026-06-05

Monitoring-Timer robuster

  • Monotonic systemd-Timer wie der RSS-Refresh werden jetzt auch ohne festen Kalendertermin korrekt als aktiv erkannt.
  • Das Monitoring meldet dadurch nur echte Warnungen statt sauber wartende Timer zu markieren.
v5.32026-06-05

Monitoring und Alerting

  • VPS-Monitoring prüft Dienste, Timer, HTTPS, Zertifikate, Platte, Backup-Alter und Backup-Key.
  • Admin-Bereich zeigt Monitoring-Status, wichtigste Checks und Alerting-Zustand.
  • Kritische Fehler können per SMTP gemeldet und per Fingerprint gedrosselt werden.
  • Backup-Key-Runbook bestätigt nur den Fingerprint nach externer Sicherung, nicht den Key selbst.
v5.22026-06-05

Restore-Test robuster

  • Restore-Skript kann Testdatenbanken jetzt per RESTORE_DATABASE_NAME sicher aus der Produktions-URL ableiten.
  • Die Restore-Dokumentation nutzt keinen fehleranfaelligen Bash-Stringersatz mehr.
v5.12026-06-05

Backup-URL-Fix

  • Backup- und Restore-Skripte normalisieren Prisma-Datenbank-URLs vor pg_dump und pg_restore.
  • Das Prisma-Schema-Query `schema=public` wird als Postgres-search_path gesetzt, statt pg_dump zu blockieren.
v5.02026-06-05

Verschlüsselte Backups und Admin-Status

  • VPS-Setup kann tägliche verschlüsselte Postgres-Backups per systemd-Timer installieren.
  • Admin-Bereich zeigt Backup-Status, Dateigröße, Verschlüsselung und Timer-Status.
  • Owner-Konten koennen ein manuelles Backup starten; Restore bleibt bewusst SSH/root-gefuehrt.
  • Restore-Skript verweigert produktive Wiederherstellung ohne expliziten Schutzschalter.
v4.92026-06-05

Safety-Gate, CI und Betriebsplan

  • MVP-Intended-Use, Nicht-Ziele und Gate-D-Freigaberegel sind in der Safety-Dokumentation festgehalten.
  • GitHub Actions prüft Pushes und Pull Requests mit Prisma, Typecheck, Tests und Build.
  • QA-Spiegel für qa.bolytics.eu ist mit eigener Datenbank und PayPal-Sandbox im Betriebsplan dokumentiert.
  • Backup- und Restore-Mindestanforderungen für produktive Postgres-Daten sind beschrieben.
v4.82026-06-05

Persistente Darstellung, Druckliste und Konto-Status

  • Farbschema wird jetzt als Benutzerpräferenz gespeichert und beim Session-Laden wiederhergestellt.
  • Rezept-Einkaufslisten können mit Einkaufsmenge, pro-Person-Menge und KH pro Person gedruckt werden.
  • Blog erklärt die Statusmeldungen 2FA offen/aktiv sowie E-Mail offen/bestätigt.
v4.72026-06-05

Kontopflege, Sperren, Farbschemas und Releasenotes

  • Registrierung und Profil verlangen jetzt Vorname und Nachname.
  • Admin kann Nutzer korrigieren, E-Mail-Adressen anpassen und Konten sperren.
  • Nutzereinstellungen bieten Farbschemas in Türkis, Lila und Orange.
  • Blog erklärt 2FA mit Links zu Authenticator Apps für iOS und Android.
  • Footer zeigt die App-Version mit Link zu diesen Releasenotes.
v4.62026-06-05

Sichtbare Version im Footer

  • Footer unter dem Impressum zeigt die sichtbare Web-App-Version.
v4.52026-06-05

VPS auf Node 22

  • Produktiver VPS läuft mit Node.js 22 LTS und sauberem Production-Build.
v4.42026-06-05

Store-Coverage wieder 2x2

  • Die vier Laden-Chips in der Produktdatenbank stehen wieder als kompakter 2x2-Block.
v4.32026-06-05

Coverage-Trends und Safety-Härtung

  • Produktdatenbank speichert Coverage-Snapshots und Trenddaten.
  • Nächtlicher Import lädt zusätzliche Getränke und Alltagslebensmittel.
  • Rezeptskalierung und Insulin-Vorschau wurden mit zusätzlichen Safety-Tests gehärtet.