4df95bbe8b
Release v1.1.1
2026-04-30 11:25:18 +02:00
7c66e0b9d4
Fix: CSS ?v=545 (nie gecacht) — SW by-v545, overflow-y:visible auf Desktop endgültig
2026-04-30 11:22:29 +02:00
ca44a53fb2
Fix: CSS ?v=540→543 — Browser-Cache invalidieren, overflow-y:visible auf Desktop, SW by-v544
2026-04-30 11:06:13 +02:00
d2e3009402
Fix: Desktop overflow-y:visible auf #page-content — verhindert Event-Capture, SW by-v543
2026-04-30 10:57:52 +02:00
466b4a3d6d
Fix: overscroll-behavior-y:none nur mobile (max-width:767px) — Desktop-Mausrad freigegeben, SW by-v542
2026-04-30 10:42:47 +02:00
a37a944998
Fix: CSS-Version ?v=500→540 — immutable-Cache erzwingt Browser-Reload, SW by-v541, APP_VER 518
2026-04-30 10:38:11 +02:00
c0a1b2e922
Restore: CSS exakt auf v1.1.0 + overscroll-behavior-y:none auf #page-content — SW by-v540
2026-04-30 10:06:45 +02:00
4a634fbbd1
Fix: Desktop-Mausrad — overscroll-behavior:none von html/body entfernt, Desktop auf Original-Layout, SW by-v539
2026-04-30 09:58:25 +02:00
2943f98637
Fix: Desktop-Mausrad — #page-content height:100dvh+overflow-y:auto auf Desktop, interner Scroll, SW by-v538
2026-04-30 09:46:36 +02:00
3cb18acb44
Fix: Desktop Mausrad-Scroll — overscroll-behavior:auto auf html/body + #page-content ab 768px, SW by-v537
2026-04-30 09:41:50 +02:00
f01b0b228d
Fix: Desktop-Scroll — overflow-y:visible auf #page-content ab 768px, SW by-v536
2026-04-30 09:32:54 +02:00
5a6ca5496b
Revert nav: Original-Layout restauriert + overscroll-behavior:none — SW by-v535, APP_VER 512
2026-04-30 09:00:30 +02:00
9506eea0d9
Fix: Nav als Flex-Kind in #app{height:100dvh} — kein position:fixed, Desktop-Scroll repariert, SW by-v534
2026-04-30 08:52:39 +02:00
03508f8aa3
Fix: #app height:100dvh statt position:fixed+inset:0 — dvh inkl. safe areas, SW by-v533
2026-04-30 08:41:41 +02:00
6e938b9fa1
Fix: #bottom-nav aus #app heraus — position:fixed relativ zum echten Viewport, SW by-v532
2026-04-30 08:34:25 +02:00
460cc47844
Fix: overscroll-behavior:none auf html/body/#page-content — iOS Bounce bewegt keinen fixed Nav mehr, SW by-v531
2026-04-30 08:29:55 +02:00
b62d1ba933
Fix: Bottom-Nav position:fixed zurück — #app fixed+inset:0 verhindert Drift, nav erreicht Bildschirmrand, SW by-v530
2026-04-30 08:21:25 +02:00
cd5688ae8f
Fix: iOS Bottom-Nav — #app position:fixed+inset:0, Nav als Flex-Kind
...
position:fixed auf #bottom-nav funktioniert in iOS PWA-Standalone-Mode nicht
zuverlässig (driftet beim Scrollen). Fix: #app selbst position:fixed;inset:0
→ Nav ist normales Flex-Kind am unteren Rand → kein iOS-Fixed-Bug möglich.
Desktop: #app position:static via Media Query. SW by-v529, APP_VER 506
2026-04-30 08:04:11 +02:00
1056824be3
Fix: Routen-Seite aus FULLSCREEN_PAGES — window-scroll statt interner Container, SW by-v528
2026-04-30 07:53:33 +02:00
359d46d9bc
Fix: Bottom-Nav iOS — window scrollt statt #page-content
...
position:fixed funktioniert auf iOS nur stabil wenn der window-scroll aktiv ist.
Innere Scroll-Container lassen fixed-Elemente während des Scrollens 'driften'.
- #page-content: overflow:visible (window scrollt)
- body.page-fullscreen: Klasse für Karte/Routen/Chat/Gassi/Sitting
→ dort overflow:hidden + interner Scroll wie bisher
- navigate(): setzt/entfernt page-fullscreen bei jedem Seitenwechsel
- SW by-v527, APP_VER 504
2026-04-30 07:43:11 +02:00
61be87f29e
Release v1.1.0
2026-04-30 07:34:06 +02:00
0e6ab1b773
Revert: App-Shell-CSS auf Original — height/overflow auf #app+body bricht iOS PWA
...
Behalte nur sichere Fixes:
- #page-content min-height:0 (iOS Flex-Bug)
- #bottom-nav transform:translateZ(0) (GPU-Layer)
- SW by-v526, APP_VER 503
2026-04-30 07:19:37 +02:00
8fb4137465
Fix: body overflow:hidden entfernt — bricht iOS Safari PWA-Rendering, SW by-v525
2026-04-30 06:36:31 +02:00
bdcb6bfd51
Fix: CSS-Version ?v=382→500 — immutable-Cache zwingt Browser zu neuem Download, SW by-v524
2026-04-30 06:30:45 +02:00
bbedd658fa
Fix: Bottom-Nav iOS — min-height:0 auf #page-content + GPU-Layer auf #bottom-nav
...
- #page-content min-height:0: iOS-Flex-Bug — ohne das schrumpft der Container
nicht und overflow-y:auto greift nicht → body scrollt statt #page-content
- #bottom-nav: transform:translateZ(0) + will-change:transform für stabile
GPU-Compositing-Schicht auf iOS Safari
- #app: height:100% (kaskadiert von body) statt 100dvh
- SW by-v523, APP_VER 500
2026-04-30 06:20:54 +02:00
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