b27e4b006f
Fix: Bottom-Nav immer fixiert + Gründer-Seite null-Error
...
- body: height:100% + overflow:hidden — body scrollt nie mehr selbst
- #app: height:100dvh (war min-height) + overflow:hidden — exakte Viewport-Höhe
- Desktop (768px+): #app height:auto + min-height:100dvh zurück (kein Bottom-Nav)
- #page-content: -webkit-overflow-scrolling:touch für iOS-Momentum-Scroll
- gruender.js: null-Check vor _renderStats() gegen "null is not an object"-Crash
- SW by-v522, APP_VER 499
2026-04-29 22:01:33 +02:00
d1e4867fb4
Fix: Trophy-Icon fill:#f59e0b auf SVG + use — goldene Farbe auch im Sprite sichtbar, SW by-v521
2026-04-29 21:51:35 +02:00
ed8398fdd4
UI: Sidebar-Footer Gründer — zentriert, goldenes Trophy-Icon 18px, muted Text, 'die 100', SW by-v520
2026-04-29 21:48:36 +02:00
0c91120427
UI: Gründer-Link im Sidebar-Footer — Trophy-Icon + 100, zentriert unter Impressum/Datenschutz, SW by-v519
2026-04-29 21:45:32 +02:00
8bf5a3960f
Fix: uvicorn --forwarded-allow-ips=* — echte Client-IP hinter NPM-Proxy sichtbar
...
Ohne dieses Flag sehen alle Container-Requests die NPM-Bridge-IP (192.168.160.x)
als Client. Rate-Limits und Honeypot-Blocklist blockierten dadurch alle User
gleichzeitig sobald ein einziger Trigger auftrat.
2026-04-29 21:40:49 +02:00
6ae6806baf
Fix: Referral-Card Header zeigt Rabattstufen — SW by-v518, APP_VER 495
2026-04-29 21:36:29 +02:00
e7e4adaa70
Feature: Referral-Rabattstufen — 10→20%, 20→30%, 50→50% lebenslang
...
- auth.py: _referral_tier() + _referral_next() Tier-Logik, GET /api/auth/referral gibt discount_pct + next_tier zurück
- settings.js: Referral-UI komplett neu — Tier-Kacheln, Fortschrittsbalken, Zähler, Rabatt-Hinweis
- SW by-v517, APP_VER 494
2026-04-29 21:34:23 +02:00
ab41af470d
Feature: 100 Gründer-Challenge — Leaderboard, Ranking, founder_number
...
- users.founder_number: sequentielle Nummer #1-#100 (bei Registrierung mit Code oder Admin-Grant)
- Globaler Cap: max. 100 Gründer über alle Partner-Codes zusammen
- GET /api/partner/founders/stats: öffentlich — Slots, Partner-Ranking nach uses, Gründer-Galerie
- Öffentliche Seite /gruender: Fortschrittsbalken, Partner-Challenge-Leaderboard (🥇 🥈 🥉 ), Gründer-Grid
- Forum: "Gründer #42 "-Badge (lila) neben Autorenname bei Threads + Antworten
- Settings: Badge zeigt "Gründer #N" statt nur "Gründer", klickbar zur /gruender-Seite
- Sidebar: "🏆 100 Gründer"-Link im Footer
- Admin-Grant: Vergabe von founder_number beim manuellen is_founder=1-Setzen
- SW by-v516, APP_VER 493
2026-04-29 21:30:52 +02:00
e57c6db013
Feature: Partner-Codes + Gründer-Lizenz-System für Influencer-Kooperationen
...
- partner_codes Tabelle: Code, Label, max_uses, grants_founder, uses-Counter
- users: is_founder + is_partner Flags (DB-Migration + auth.py SELECT)
- Registrierung: Partner-Code löst Gründer-Lizenz aus (vor User-Referral geprüft)
- API: GET/POST/DELETE /api/admin/partner/codes, POST /api/admin/partner/users/{id}/grant
- API: GET /api/partner/codes/{code}/info (öffentlich, für Registrierungsvalidierung)
- API: GET /api/admin/users/search (Name-Suche für Admin-UI)
- Admin-Tab "Partner & Codes": Code anlegen, Stats, User-Status vergeben
- Registrierungsformular: Einladungscode-Feld mit Live-Validierung
- Settings: Gründer (lila) + Partner (blau) Badge neben Kostenlos/Plus
- SW by-v515, APP_VER 492
2026-04-29 21:20:16 +02:00
810c1a79dc
Fix: Staging-Icon für iOS — apple-touch-icon dynamisch für Staging-Umgebung
...
- icon-180-staging.png erstellt (Helm-Icon, 180px für iOS-Homescreen)
- spa_fallback: Staging-HTML ersetzt apple-touch-icon-Link dynamisch
- SW by-v514, APP_VER 491
2026-04-29 21:07:00 +02:00
15d8347e16
Fix: Staging-Nav-Styles nach App.init() setzen (inline, mit Retry)
2026-04-29 20:57:46 +02:00
0ecbc09b97
Asset: Staging-Icon — Hund mit Bauhelm, 192+512px
2026-04-29 20:49:55 +02:00
f7dfbb5bde
UX: Staging — Bottom-Nav lila statt Top-Banner, kein Content-Verdecken
2026-04-29 20:45:53 +02:00
2e7ce5f248
Feature: Staging-Icon — lila Badge, BY ⚗️ Homescreen-Name, eigenes Manifest
2026-04-29 20:41:19 +02:00
a06b7862ab
Merge: direct_messages Migration-Fix
2026-04-29 20:12:15 +02:00
27d847ce31
Fix: direct_messages Migration-Reihenfolge für frische DBs; Staging produktionsbereit — SW by-v513, APP_VER 490
2026-04-29 20:12:09 +02:00
720dcc3983
Merge: Staging-Workflow von develop
2026-04-29 19:57:52 +02:00
041af92306
Feature: Staging-Workflow — develop-Branch, make staging/release, APP_VERSION 1.0.0, Staging-Banner — SW by-v513
2026-04-29 19:57:33 +02:00
9d3f902014
Fix: Datumfelder im Wurfformular bündig ausgerichtet (align-items:end) — SW by-v512, APP_VER 489
2026-04-29 19:49:22 +02:00
acd46f124b
UX: Wurfformular — Erwartet links, Tatsächlich rechts — SW by-v511, APP_VER 488
2026-04-29 19:45:10 +02:00
239681a6f0
UX: Wurfformular — Datumfelder mit erklärendem Hinweistext — SW by-v510, APP_VER 487
2026-04-29 19:42:26 +02:00
2411151b17
Feature: Offline-Stufen 1+2+3 — Timeout, API-Cache, Write-Queue (IndexedDB + BackgroundSync) — SW by-v509, APP_VER 486
2026-04-29 19:13:04 +02:00
ad3b73d687
Cleanup: training_exercises.js_exercise_id — ID-Mismatch bereinigt, JOIN mit exercise_progress, Fuß-Umbenennung — SW by-v508, APP_VER 485
2026-04-29 19:00:53 +02:00
9e9b87af35
Fix: Jahresbericht-Modal Schließen-Button + expliziter close-Handler — SW by-v507, APP_VER 484
2026-04-29 17:09:45 +02:00
41d5d745cb
UX: Jahresbericht — Wahlmöglichkeit wenn letzter Bericht <30 Tage alt — SW by-v506, APP_VER 483
2026-04-29 17:06:34 +02:00
9832cd24d8
Feature: KI-Jahresberichte speichern + Archiv + Download — SW by-v505, APP_VER 482
2026-04-29 17:03:49 +02:00
b4de0aa27c
UX: Login → Welcome statt Diary; Landing-Features flacher (kein Box-Icon, einheitlicher Hintergrund) — SW by-v504, APP_VER 481
2026-04-29 16:53:17 +02:00
414b7131e8
Fix: manifest.json modernisiert — id, scope, screenshots, prefer_related_applications — SW by-v503, APP_VER 480
2026-04-29 15:01:14 +02:00
977fbeb0fd
Feature: Analytics Jahres-Balkendiagramm — Seitenaufrufe + Neuanmeldungen 12 Monate — SW by-v502, APP_VER 479
2026-04-29 14:32:10 +02:00
b2e7f1409a
Fix: Suchfeld+Button table-Layout für garantierte Nebeneinander-Darstellung — SW by-v501, APP_VER 478
2026-04-29 13:29:39 +02:00
9603f099b5
Fix: Suchfeld+Button Grid-Layout (1fr auto) statt Flex — SW by-v500, APP_VER 477
2026-04-29 13:26:12 +02:00
47f1b09d30
UX: Stand-erfassen-Button mit Hinweistext — SW by-v499, APP_VER 476
2026-04-29 13:22:17 +02:00
70bc25a0a6
Fix: Suchfeld+Button in einer Zeile (flex-wrap:nowrap, min-width:0) — SW by-v498, APP_VER 475
2026-04-29 13:16:56 +02:00
325ba333fd
UX: Suchfeld über Tabs, zusammen mit Stand-erfassen-Button — SW by-v497, APP_VER 474
2026-04-29 13:14:21 +02:00
a3679354c8
Feature: Übungen Desktop 2-zeilige Tabs + globale Suche über alle Kategorien — SW by-v496, APP_VER 473
2026-04-29 13:07:41 +02:00
81ee1a063e
Feature: Übungs-Suche, fehlende Legacy-Übungen nachmigriert (110 gesamt) — SW by-v495, APP_VER 472
2026-04-29 12:26:32 +02:00
4c3638c17c
Fix: Tagesübung-Scroll via _scrollTarget nach exercises-Load statt fixem Timeout — SW by-v494, APP_VER 471
2026-04-29 11:54:38 +02:00
6d9f4a097e
Feature: Alle 104 Übungen aus DB in Übungsseite — 9 Tabs, DB-basiert, abwärtskompatibel — SW by-v493, APP_VER 470
2026-04-29 11:44:47 +02:00
175984e80f
Fix: Tagesübung nur JS-kompatible exercise_ids, Scroll per exercise_id; Landing+llms.txt Sprint-20 — SW by-v492, APP_VER 469
2026-04-29 11:34:28 +02:00
fe2e718827
Feature: ORS Admin-Card — Wochensumme + 30-Tage-Gesamt im Header — SW by-v491, APP_VER 468
2026-04-29 11:25:11 +02:00
69cbf3c599
Fix: Übungen-Tab kaputt nach Exercise-Chip-Navigation — DB-Kat-Mapping + refresh()-Fix — SW by-v490, APP_VER 467
2026-04-29 11:13:22 +02:00
e22dcc3c3d
Feature: Analytics 30-Tage Dual-Chart, Referrers, Umami-Credentials — SW by-v489, APP_VER 466
2026-04-29 11:06:18 +02:00
a4da7144d6
Feature: App-Version in Einstellungen + manueller Update-Check — SW by-v488, APP_VER 465
2026-04-29 10:54:56 +02:00
e507f4c086
Feature: Welpenwachstum — SVG-Kurve, Stats-Zeile, Veränderung-Spalte im Gewichtsverlauf — SW by-v487, APP_VER 464
2026-04-29 10:49:40 +02:00
dc737d0c48
Feature: KI-Nutzung im Admin mit 30-Tage-Sparkline + Top-Nutzer-Tabelle — SW by-v486, APP_VER 463
2026-04-29 10:42:00 +02:00
392359df45
Feature: ORS-Stats im Admin-Panel — Tagesverbrauch/2000, 30-Tage-Sparkline, Top-Nutzer — SW by-v485, APP_VER 462
2026-04-29 10:10:59 +02:00
69140a261e
Fix: Exercise-Chip Click-Handler nach async Chip-Update binden — SW by-v484, APP_VER 461
2026-04-29 10:04:43 +02:00
59feecb30b
Fix: Tagesbild stabil (date-seeded statt random), preview_url für schnelleres Laden — SW by-v483, APP_VER 460
2026-04-29 10:02:39 +02:00
117d32fcc3
Fix: Übung-des-Tages-Chip scrollt direkt zur Übung (kategorie + name als init-params) — SW by-v482, APP_VER 459
2026-04-29 09:39:54 +02:00
d9a0be489b
Feature: Übung des Tages — personalisiert aus exercise_progress, 4. Chip auf Welcome — SW by-v481, APP_VER 458
2026-04-29 09:26:41 +02:00