Commit Graph
92 Commits
Author SHA1 Message Date
elpatronandCursor a4c7fcfc6f feat: Plausible-Event Photo Uploaded für Logbuch und Crew
Trackt Foto-Uploads in Reisetagen und Crew-Profilen mit context- und role-Properties.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 19:20:50 +02:00
elpatronandCursor 2926d743fb feat: Plausible Analytics mit 18 Custom Events
Trackt zentrale Nutzeraktionen (Auth, Logbuch, Reisetage, Kollaboration, Onboarding, Export) über einen typisierten Analytics-Service und dokumentiert alle Events für Plausible Goals.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 19:02:41 +02:00
elpatronandCursor 0da855381d feat: Demo-Logbuch und Onboarding-Tour bei Registrierung
Neue Nutzer erhalten automatisch ein Demo-Logbuch mit drei Ostsee-Reisetagen
und eine interaktive App-Tour; die Tour kann in den Einstellungen erneut gestartet werden.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 17:59:02 +02:00
elpatronandCursor 2f6c668ca4 feat: Light Mode mit System-Erkennung und konfigurierbarem Erscheinungsbild.
Stellt hell/dunkel für Ocean, Material und Cupertino bereit, migriert die Kern-UI auf CSS-Variablen und ergänzt die Einstellungen inkl. i18n und Select-Kontrast.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 17:26:50 +02:00
elpatronandCursor 14b52c684d fix: Einladungs-Auto-Accept, isShared-Cache und Recovery-Validierung
Auto-Accept kann nach Session-Verlust erneut starten, isShared wird offline in Dexie persistiert, und leere Recovery-Benutzernamen werden abgefangen.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 17:00:49 +02:00
elpatronandCursor 241b2fdf63 fix: Einladungsflow für geteilte Logbücher reparieren
Eingeladene Nutzer konnten nach Registrierung/Login kein Logbuch öffnen, weil der Beitritt nicht abgeschlossen wurde und der Collaboration-Schlüssel falsch importiert wurde.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:54:22 +02:00
elpatronandCursor f87f5e382d fix: PDF-Passkey-Datum i18n und Challenge erst nach Verify löschen
Passkey-Signaturen im PDF nutzen die App-Sprache für Datumsformatierung.
Signing-Challenge bleibt bei fehlgeschlagener WebAuthn-Verifikation retry-fähig.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:48:13 +02:00
elpatronandCursor ce47fe5fdc feat: Hybride Passkey-Freigabe für Skipper und Crew
Skipper (nur Owner) und Crew (WRITE-Collaborators) können Logbuchseiten
optional per WebAuthn freigeben; klassische Unterschrift bleibt als Fallback.
Signatur ist an den Eintrags-Hash gebunden, Export in CSV/PDF angepasst.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:28:52 +02:00
elpatronandCursor 5706d1762d fix: Login zentrieren und CSV-Unterschrift-Platzhalter übersetzen
Auth-Screens werden per auth-screen über die volle Viewport-Höhe zentriert.
Bild-Unterschriften im CSV-Export nutzen i18n statt festem deutschen Text.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:18:01 +02:00
elpatronandCursor b1b0c798b3 feat: GPS-Track-Statistiken automatisch ins Logbuch übernehmen.
Strecke, Max- und Durchschnittsgeschwindigkeit werden beim Track-Upload berechnet, gespeichert und in PDF/CSV exportiert. Test-GPX für die Kieler Förde (5 sm) hinzugefügt.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 15:36:21 +02:00
elpatronandCursor cffe934d5e feat: Unterschriftsfelder im Logbuch per Touch, Stift oder Maus.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 15:28:52 +02:00
elpatronandCursor 3c7aec1573 fix: Daagbok-Branding, Track-Upload statt GPS-Tracker und zentrale Account-Löschung.
Ersetzt gpsTracker/Leaflet durch trackUpload, korrigiert App-Bezeichner und Login-Abstände, und macht die Account-Gefahrenzone auf dem Dashboard erreichbar.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 15:25:39 +02:00
elpatronandCursor 5d11dbacea fix: Passkey-Login über Plattformen hinweg vereinfachen und stabilisieren.
Merkt Accounts lokal für Ein-Klick-Login ohne Benutzernamen, verbessert PRF-Fallbacks für Windows Hello/Bitwarden und behebt PIN-Session-Probleme.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 14:49:32 +02:00
elpatron eca4e1eb29 feat: enhance WebAuthn PRF handling with follow-up authentication and base64url encoding for user IDs 2026-05-29 13:34:55 +02:00
elpatron 1cc8c6291e feat: implement persistent master key storage (Approach 1) and local PIN fallback (Approach 2) 2026-05-29 12:08:22 +02:00
elpatron 3bb59d2ca0 fix: add retry fallback in registration and login for authenticators with unsupported PRF options 2026-05-29 10:41:46 +02:00
elpatron e0e93a5685 fix: request empty prf options during registration to prevent typeerror on credentials container create 2026-05-29 10:38:25 +02:00
elpatron b9e3ce4252 fix: clean up unused local helper and verify compilation 2026-05-29 10:34:14 +02:00
elpatron fe8c5f12c6 fix: pass Base64URL salt during registration 2026-05-29 10:29:58 +02:00
elpatron 1c56136645 fix: WebAuthn PRF JSON Base64URL serialization for optionsJSON 2026-05-29 10:19:48 +02:00
elpatron 128dd17863 fix: WebAuthn PRF salt length and server logbook key storage 2026-05-29 08:46:50 +02:00
elpatron abfaf3e99c Use raw ArrayBuffer instead of Uint8Array for PRF salt input 2026-05-29 08:35:19 +02:00
elpatron 1001bafab7 Fix SimpleWebAuthn startRegistration and startAuthentication parameter structure 2026-05-29 08:29:26 +02:00
elpatron 217ba14d1a Add client-side diagnostic logging for Passkey PRF authentication 2026-05-29 08:24:17 +02:00
elpatron 8985afac38 Enroll Passkey PRF key on first login recovery phase 2026-05-29 07:53:46 +02:00
elpatron 71ea02416f Implement cascading logbook deletion on account deletion 2026-05-28 21:54:30 +02:00
elpatron ecdf8c2dc0 Request PRF evaluation salt during WebAuthn registration to enable passwordless logins 2026-05-28 21:46:29 +02:00
elpatron 9d24f4b71a Handle logbook key decryption failures gracefully by falling back to master key in getLogbookKey 2026-05-28 21:34:46 +02:00
elpatron a9a649f840 Implement self-healing migration/repair for legacy logbook keys to fix guest decryption failures 2026-05-28 21:31:20 +02:00
elpatron 20ff2a0baa Implement E2E-compliant anonymous read-only logbook sharing links 2026-05-28 20:47:52 +02:00
elpatron b3978ed294 feat(collab): E2E-compliant crew invitations and link-sharing collaboration 2026-05-28 20:31:10 +02:00
elpatron 1388f603c6 feat: replace active GPS logging with multiformat GPS track upload and OpenSeaMap Leaflet rendering 2026-05-28 15:48:07 +02:00
elpatron d84560f51f Replace native browser alerts and confirms with customized modern promise-based overlay dialogs 2026-05-28 12:26:32 +02:00
elpatron 572d38e490 Dockerize client, server, and postgres database for production with container healthchecks 2026-05-28 12:23:50 +02:00
elpatron 9a2052f623 Implement AC Nautik PDF Export, E2E Encrypted Photos, and Background GPS Route Tracking 2026-05-28 12:19:33 +02:00
elpatron 92b20ad0c0 fix: persist active master key in sessionStorage to survive page reloads 2026-05-28 11:19:15 +02:00
elpatron 50371b9297 feat: implement usernameless Passkey login flow using discoverable credentials 2026-05-28 10:45:33 +02:00
elpatron 72d6bceee6 feat: implement Phase 4 (CSV export, share, sync indicators, OS themes) and add dev starter script 2026-05-28 10:35:53 +02:00
elpatron 87d719ad9b feat & docs: implement zero-knowledge background sync protocol & conflict resolution 2026-05-27 21:50:11 +02:00
elpatron 55cbe71520 fix: correct WebAuthn options extensions path in client auth service 2026-05-27 21:44:41 +02:00
elpatron 6e2dce6ec5 feat & docs: implement multi-logbook database cache, API routes, and switcher dashboard 2026-05-27 21:33:16 +02:00
elpatron 35479cfff3 feat: implement WebAuthn Passkeys register/login API and client onboarding UI 2026-05-27 21:28:15 +02:00