ed9c482ae5
Release v1.5.0
2026-05-06 19:31:35 +02:00
b81c968e87
UX: Pro-Chips Opazität 25%, Release v1.5.0 vorbereitet (SW by-v741)
2026-05-06 19:31:25 +02:00
860c00eb99
UX: Pro-Chips bei Standard-User mit 10% Opazität statt ausgeblendet (SW by-v740)
2026-05-06 19:28:16 +02:00
e3d3802829
Fix: Tier-Wechsel auf eigenen Account → sofortiges Worlds-Re-render ohne Reload (SW by-v739)
2026-05-06 19:25:25 +02:00
c027573e10
Fix: worlds-overlay z-index 50→450 — Leaflet-Kacheln aus Routen bluten nicht mehr durch (SW by-v738)
2026-05-06 19:22:40 +02:00
3a28673015
Fix: _test-Tiers ignorieren Admin-Override — standard_test sieht kein Züchter/Pro, Admin-Panel bleibt (SW by-v738)
2026-05-06 19:14:38 +02:00
a6c25cf0f0
Feature: Feature-Gating nach Tier — Pro-Seiten/Chips für Standard versteckt, Admin immer alles (SW by-v737)
2026-05-06 19:06:37 +02:00
11067d9ef8
Fix: Update-Button leert SW-Cache vor Reload, Fallback-Text für Desktop (Cmd+Shift+R) (SW by-v736)
2026-05-06 18:50:54 +02:00
98ac7fcb79
Fix: Tier-Modal zeigt alle 6 Optionen, aktiver Tier markiert statt herausgefiltert (SW by-v735)
2026-05-06 18:42:15 +02:00
71f29dcce0
Feature: Subscription-Tier-System (standard/pro/breeder + _test), has_pro_access(), Admin-Tier-UI (SW by-v734)
2026-05-06 18:39:27 +02:00
bcc7c27556
Landing: Phosphor Icons statt Emoji, SW by-v733
2026-05-06 18:36:23 +02:00
87a655e32f
Preise: Tier-Modell Stufe1/Pro/Züchter auf Landing Page, Sitting 0% Provision, Memory gespeichert
2026-05-06 18:27:02 +02:00
e14f972c5e
Landing: 8 emotionale Feature-Cards, DSGVO→'Daten in Deutschland', Preise bereinigt (SW by-v732)
2026-05-06 18:04:35 +02:00
6426d9c577
Feature: Browser-Besucher ohne Login → /info Redirect, PWA-Nutzer bleiben in App (SW by-v731)
2026-05-06 17:49:52 +02:00
7441d4627e
Fix: landing.html wieder unter /info (PWA start_url=/ braucht index.html), Demo-Video, Canonical fix
2026-05-06 17:41:02 +02:00
94abe79acc
Feature: Demo-Video auf Landing Page — 2:48min echte App, 8.3MB H.264
2026-05-06 17:32:57 +02:00
8b87f29f5b
Feature: Persistentes Update-Banner mit iOS-Anleitung, Version-Poll alle 30min (SW by-v730)
2026-05-06 17:20:19 +02:00
e4da75f246
UX/SEO: Landing 3-Zielgruppen-Redesign, PWA-Wording ohne 'installieren' (SW by-v729)
2026-05-06 17:11:26 +02:00
b675fbcd32
SEO: canonical / statt /info, /info → 301-Redirect, Sitemap bereinigt
2026-05-06 10:35:41 +02:00
4cd178a86a
SEO/AI: llms.txt Namens-Disambiguierung + Vertrauenssignale, landing.html Über-Section, Sitemap /presse
2026-05-06 06:28:38 +02:00
172508ec91
Datenschutz: Direktnachrichten, KI-Trainer, Open-Meteo Wetter ergänzt (SW by-v728)
2026-05-06 06:21:18 +02:00
bc4fd8f6e0
Content: landing.html — Gassi-Score, Ernährung, Persönlichkeitstest, Reise, Hilfe/FAQ ergänzt
2026-05-06 06:15:45 +02:00
bb4117dd71
Release v1.4.0
2026-05-05 21:46:22 +02:00
05ecf3b94a
Feature: Hilfe/FAQ, Übungen-Content, Navigation-Fixes (SW by-v727)
...
Hilfe & FAQ:
- Neue Seite /hilfe mit Akkordeon + Live-Suche (6 Kategorien, 25 Artikel)
- DB-Tabelle help_articles — Inhalte admin-seitig ohne Deploy änderbar
- Admin-Tab Hilfe/FAQ zum Bearbeiten aller Artikel
- Link in Einstellungen (unter Welten einrichten, über Abmelden)
- routes/help.py: GET (public), POST/PATCH/DELETE (Admin)
Übungen:
- 110 Übungen: beschreibung (kurz), schritte (JSON 4-6 Schritte), tipp — gutes Deutsch mit Umlauten
- Admin-Tab Übungen: Inline-Editor für alle drei Felder
- PUT /training/exercises/{id} (Admin) neu
- Übung-des-Tages Chip → scrollt jetzt korrekt zur Übung (exercise_id-Feldname-Fix)
Welten-Navigation:
- hide() stellt app-header + bottom-nav wieder her (worlds-hidden wurde nie entfernt)
- init() mit _setupDone-Guard (keine doppelten Event-Listener)
- Login ruft Worlds.init(_appState) statt show() — _state war null → falscher Render
- X-Button in Welten-Konfiguration: 30×30px, Icon 17px, besser sichtbar
Wetter:
- Motivation bei blockiertem Standort: 6-Schritte-iOS-Anleitung + Flugmodus-Tipp
- Auto-locate bleibt (kein Button-Only mehr)
achievements.py:
- my_achievements(): d.user_id → JOIN dogs (zweite Funktion war noch kaputt)
2026-05-05 21:46:16 +02:00
55069d246b
Feature: Welten-Onboarding, Wetter-Motivation, UX-Fixes (SW by-v715)
...
Welten (worlds.js):
- Swipe-Hints beim ersten Öffnen (JETZT ← → WELT animiert, einmalig)
- Kein-Hund-Onboarding: Feature-Preview-Grid statt leerer Karte
- Hintergrund-Foto-Hint: Kamera-Karte wenn noch kein Tagebuchfoto
- worlds-back: navigiert zu Welcome wenn kein User eingeloggt
- Nach Logout: worlds-back Button sofort ausgeblendet
Wetter (wetter.js):
- Standort-Fehlerseite zu Motivations-Seite umgebaut
- Feature-Preview: Gassi-Score, 7-Tage, Regenradar, Rekorde
- CTA: Standort freigeben + Registrieren (nur für Gäste)
Settings (settings.js):
- Logo in Auth-Form: display:block + margin:0 auto zentriert
- Header bleibt sichtbar (FAB/Zurück-Navigation funktioniert)
Jobs (jobs.js):
- 2-Spalten-Grid auf Mobile: auto-fit statt festes 1fr 1fr
- Kein doppeltes Padding im Wrapper
Backend:
- weather.py, achievements.py: diary JOIN fix (d.user_id → dogs JOIN)
- Neue Wetter-Badges: wetter_tapfer, jahreszeiten, schnee
- Ernährungs-, Reise-, Ausgaben-Seite: diverse UX-Verbesserungen
- Presse-Seite erweitert
- Ban Yaro Foto-Assets (WebP + HIRES JPG)
2026-05-05 17:32:03 +02:00
aa4849d947
Feature: 3 Community-Features — Foto-Challenge, Stamm-Gassis, Rassen-Chip (SW by-v700)
...
- Foto-Challenge der Woche: DB-Tabellen, routes/challenges.py (current/submit/vote/winners),
Scheduler-Job jeden Montag 08:00, walks.js Challenge-Tab mit Banner, Galerie, Voting-Herz
- Gassi-Zeiten-Pool: DB-Tabelle gassi_zeiten, routes/gassi_zeiten.py (CRUD + Umkreis),
walks.js Stamm-Gassis-Tab mit Karten, Wochentag-Selector, Mitmachen→Chat
- Rassen-Treffen-Chip: GET /api/friends/same-breed, dog-profile.js zeigt Chip
wenn andere User gleiche Rasse haben, Klick → Forum mit Rassen-Suche vorausgefüllt
2026-05-04 21:09:35 +02:00
d6206d378e
Feature: Reise-Checkliste + Lebens-Timeline (SW by-v700)
...
- Neue Seite reise.js mit 3 Tabs: Checkliste (localStorage-persistent), EU-Länder-Info, Notfälle
- Timeline-Endpoint GET /api/dogs/{id}/timeline aggregiert Tagebuch, Gesundheit, Training, Routen
- dog-profile.js: Button "Lebens-Timeline" + _showTimelineModal mit vertikaler Timeline, Jahreszahl-Marker, kategoriespezifische Farben, Milestone-Hervorhebung
2026-05-04 21:03:46 +02:00
40de0f38aa
Feature: Tierarzt-Bewertungen — Sterne-Rating pro Praxis mit Detail-Modal (SW by-v700)
2026-05-04 21:02:49 +02:00
c5030024b0
Feature: Hunde-Buch — druckbare HTML-Tagebuchansicht als PDF (SW by-v700)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 21:01:54 +02:00
20a4936397
Feature: Ban Yaro Wrapped + Jahrestags- und Monatsrückblick (SW by-v699)
...
- GET /api/dogs/{id}/wrapped?year= aggregiert km, Gassi-Tage, Fotos,
Lieblingsmonat/-aktivität, Training, Gesundheit, Wetter-Stats aus SQLite
- Frontend: Wrapped-Fullscreen-Modal in dog-profile.js — 5 Cards mit
Swipe/Klick-Navigation, Dots, ESC-Taste, Copy-to-Clipboard auf Share-Card
- Scheduler: _job_anniversary_reminders (täglich 09:00) sendet Push wenn
heute ein Tagebucheintrag von vor 1+ Jahren existiert
- Scheduler: _job_monthly_recap (1. des Monats 10:00) sendet Vormonat-
Zusammenfassung (km, Einträge, Training) per Push an alle User
- Beide Jobs im Status-Report-Log und Scheduler-Start-Log vermerkt
- SW by-v699, APP_VER 699
2026-05-04 20:54:12 +02:00
0fdc32eaf4
Feature: Hunde-Persönlichkeitstest + Kilometer-Lebenswerk-Badge (SW by-v698)
...
- personality.js: 10-Fragen-Quiz mit 4 Typen (Abenteurer/Entdecker/Kuschler/Denker), Ergebnis-Speicherung in localStorage, Share-Funktion
- achievements.py: neue Badge-Kategorie km_lebenswerk (Bronze 100 km bis Platin 5000 km)
- settings.js: Lifetime-km-Balken mit Meilenstein-Markierungen bei 100/500/1000/5000 km
- app.js + index.html: personality-Seite registriert
2026-05-04 20:52:51 +02:00
a4e97348ed
Feature: Schnell-Gassi-Log + Hunde-Visitenkarte mit QR-Code (SW by-v698)
...
- Worlds-FAB: neuer 'Schnell-Gassi' Button im Gassi-Chip — öffnet schlankes
Bottom-Sheet mit Dauer-Toggle (15/30/45/60 min), auto-Wetter aus Cache,
postet direkt als Tagebucheintrag typ='gassi' ohne GPS-Tracking
- dog-profile.js: 'Visitenkarte teilen' Button öffnet Modal mit gestalteter
Karte (Hundefoto, Name, Rasse/Alter, Wohnort) + QR-Code via qrserver.com,
Link-kopieren und native Web-Share-API
2026-05-04 20:52:11 +02:00
6e4bf25581
Feature: Hundeernährungs-Feature — Kalorien-Rechner, Futter-Guide, Giftliste, KI-Berater (SW by-v698)
2026-05-04 20:51:45 +02:00
b1d9fb4f54
Feature: Wetter-Verbesserung im Tagebuch — Auto-Wetter, Chip-Fix, Detail-Fix (SW by-v695)
...
- diary.js: Weather-Chip in der Liste nutzt jetzt temp_c (korrekter Feldname)
- diary.js: Detail-View zeigt "emoji temp · X km/h Wind · Y% Regen" (precip_prob statt Luftfeuchtigkeit)
- diary.js: Bei neuem Eintrag ohne GPS → Wetter wird via GPS-API vorgeholt und als weather_json mitgesendet
- diary.py: DiaryCreate-Modell um weather_json-Feld erweitert; client-geliefertes Wetter wird gespeichert wenn kein GPS-basiertes Wetter verfügbar
- SW by-v695, APP_VER 695
2026-05-04 20:30:06 +02:00
6152d6bf0e
Feature: Meine Wetterrekorde Sektion auf Wetter-Seite (SW by-v694)
...
- Backend: GET /api/weather/records — liest diary-Einträge mit weather_json
und berechnet Kältester/Heißester Gassi, Stürmischster Tag, Regentage
- Frontend: #wttr-records 2×2 Grid-Karten unterhalb Hunde-Wetter
(nur für eingeloggte User mit ≥3 Tagebucheinträgen mit Wetterdaten)
- SW-Version auf by-v694 erhöht, APP_VER auf 694
2026-05-04 20:28:06 +02:00
d081029618
Feature: Wetter-Tapferkeits-, Jahreszeiten- und Schnee-Badges (SW by-v693)
...
Drei neue Badge-Kategorien in achievements.py:
- wetter_tapfer: Diary-Einträge bei Regen/Kälte/Wind (precip>60, temp<2, wind>50)
- jahreszeiten: Anzahl Jahreszeiten mit mind. 5 Diary-Einträgen (max 4)
- schnee_held: Diary-Einträge bei Schnee (weathercode 71-77)
Beide Funktionen check_and_award und my_achievements erweitert.
2026-05-04 20:26:03 +02:00
6bf088df56
Feature: Goldene Gassi-Stunde — täglicher Push mit bestem Wetterfenster (SW by-v693)
...
- Scheduler-Job täglich 07:00: berechnet bestes 2h-Fenster via Open-Meteo
- Score-System (max. 10 Pkt): Temperatur, Niederschlag, Wind, Tageszeit
- User-Fallback auf letzten bekannten Standort (push_subscriptions.last_lat/lon) oder München
- Nur Push wenn score >= 3 (kein sinnloser Push bei schlechtem Wetter)
- DB-Migration: users.gassi_stunde_push (Boolean, default 0)
- settings.js: Toggle "Goldene Gassi-Stunde täglich" in App-Einstellungen
- PATCH /api/profile + auth.py /me: gassi_stunde_push Feld
2026-05-04 20:22:02 +02:00
af1508c0de
Feature: Fell-Typ Einstellung am Hundeprofil — personalisierte Wetter-Hinweise (SW by-v693)
...
- DB-Migration: dogs.fell_typ (kurz|mittel|lang|drahtaar|doppel|nackt)
- Hund-Profil Formular: Dropdown "Felltyp" mit 6 Optionen, wird via PATCH /api/dogs/{id} gespeichert
- Wetter: _dogWeatherLabel(d, felltyp) mit fell-spezifischen Hitze-/Kälteschwellen
- Wetter: Fell-spezifische Hinweise (doppel + Hitze, nackt + Kälte, kurz + Frost)
2026-05-04 20:21:02 +02:00
471633867c
Feature: Wetter — Gassi-Score, Schnüffel-Index, Hunde-Alter-Hinweis (SW by-v692)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 20:18:38 +02:00
759979ffce
Feature: Stündliche Niederschlagswahrscheinlichkeit auf Wetter-Seite (SW by-v690)
...
- Backend: Open-Meteo Forecast-Request um hourly precipitation_probability,
precipitation und weathercode erweitert; stündliche Daten werden pro Tag
gruppiert und im API-Response unter "hourly" je Tag ausgeliefert
- Frontend: Neue _renderRainTimeline()-Funktion rendert horizontale
Balken-Zeitskala für alle 24 Stunden des gewählten Tages; bei "Heute"
wird automatisch zur aktuellen Stunde gescrollt und "jetzt" hervorgehoben;
Farb-Gradient von hellgrau (<10%) bis dunkelblau (≥75%)
- SW/APP_VER/CSS auf 690 gebumpt
2026-05-04 20:06:30 +02:00
84e6bfdd82
Feature: Wiki Photo-Gallery mit Thumbnails + Lightbox, alle Fotos einer Rasse anklickbar (SW by-v664)
2026-05-03 21:23:41 +02:00
1d1171e5f2
Fix: Hilfe-? inline neben 'Dein Plan für heute' statt absolut oben rechts (SW by-v663)
2026-05-03 21:13:10 +02:00
0413483692
Feature: Moderation-Kacheln klickbar — direkter Sprung in Tab (SW by-v662)
2026-05-03 21:07:30 +02:00
4cd2a33ca2
Fix: Wiki-Foto-Moderation — 404 = bereits bearbeitet, Liste statt Fehlermeldung (SW by-v661)
2026-05-03 21:02:13 +02:00
e2cbbde7f2
Fix: Wiki-Foto-Freigabe 500 — foto_url fehlte im SELECT auf wiki_rassen
2026-05-03 20:56:24 +02:00
7b8ee7e2b1
Fix: Welten-Config — DB-Load bei jedem Login-Wechsel, einmalige localStorage→DB-Migration (SW by-v660)
2026-05-03 20:54:11 +02:00
71a13d695e
Fix: Welten-Config Endpoint-Pfad doppeltes /profile/ entfernt — /api/profile/world-config korrekt (SW by-v659)
2026-05-03 20:47:31 +02:00
eca8d1455d
Fix: Nach Login direkt in HUND-Welt landen statt Welcome-Seite (SW by-v658)
2026-05-03 20:41:20 +02:00
3344de27bb
Feature: Welten-Wechsel per Mausrad auf Desktop (SW by-v657)
2026-05-03 20:36:19 +02:00
5b73443d0a
Fix: iOS-Warnung bei Routenstart — Display wach lassen, GPS stoppt sonst (SW by-v656)
2026-05-03 20:34:00 +02:00