Add rotate-postgres-password.sh with optional app role, document the
procedure, and stop defaulting production POSTGRES_PASSWORD to postgres.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract ProfileHeaderButton and open UserProfilePage from any screen
without leaving the active logbook.
Co-authored-by: Cursor <cursoragent@cursor.com>
Track Live Log Photo Uploaded and centralize OWM Weather Fetched with
source props for live log and entry editor call sites.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use native camera picker on mobile, add preview-and-save step, and
harden canvas capture with toDataURL fallback when toBlob fails.
Co-authored-by: Cursor <cursoragent@cursor.com>
Generate scannable QR codes in settings next to collaboration links so crew can open invites on mobile without copying long URLs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Capture photos via getUserMedia in live log, share encrypted save logic with the editor, and disable weather fetch while other quick actions run.
Co-authored-by: Cursor <cursoragent@cursor.com>
Fast-path today's entry creation, add init timeout, defer auto-position GPS, and migrate logbook keys when the server returns a different id.
Co-authored-by: Cursor <cursoragent@cursor.com>
Batch weather events in one persist cycle, avoid global busy state while loading, and add a 20s API timeout.
Co-authored-by: Cursor <cursoragent@cursor.com>
Fetch OpenWeatherMap in live log when a GPS fix is under six hours old, open a fix modal with manual coordinates when geolocation fails, and only show the undo bar after a successful save.
Co-authored-by: Cursor <cursoragent@cursor.com>
Harden live log init with safe per-entry decrypt, stable loading state, and no parallel list scan in live mode. Improve multi-sail picker UX, stop WebAuthn retry after user cancel, redirect 127.0.0.1 to localhost, and tolerate missing appearance prefs table.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add three feature bullets in all locales, reduce feature list font to 8.5pt for single-page layout, and regenerate PDF/PNG exports.
Co-authored-by: Cursor <cursoragent@cursor.com>
Track Live Log Opened/Event Logged with action types, NMEA Uploaded on parse success, and align NMEA Imported properties with docs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Portal overlays to document.body and use opaque modal panels so fixed positioning works outside form-card and journal entries stay readable.
Co-authored-by: Cursor <cursoragent@cursor.com>
Reuses CourseDialInput from the classic journal editor in the live modals, prefilled from the most recent wind or course values.
Co-authored-by: Cursor <cursoragent@cursor.com>
SOG prefills from GPS speed when available; STW is entered manually. Motor journal entries now read “Motor Start” / “Motor Stop”.
Co-authored-by: Cursor <cursoragent@cursor.com>
Adds weather and course quick actions, diesel/water refills, five-second undo, foreground auto-position every three hours, and chronological pressure/wind/motor series in the stats tab.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduces a parallel Live view alongside the existing travel-day list so skippers can log motor, sail, and position events instantly without navigating the full editor.
Co-authored-by: Cursor <cursoragent@cursor.com>
Enables importing .nmea logs into travel-day events with interval/change modes, optional GPS track, local encrypted archive, and a test fixture for the Kieler Förde route.
Co-authored-by: Cursor <cursoragent@cursor.com>
Translate only visible body/title text, preserve HTML structure, and regenerate all flyer PDF/PNG exports.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extend generate-beta-flyer.mjs with --all/--lang support and add da, sv, nb assets alongside refreshed German exports.
Co-authored-by: Cursor <cursoragent@cursor.com>
Integrate new locale bundles, language cycling in the UI, SEO hreflang tags, and localized beta flyer HTML variants with scripts for batch translation and key validation.
Co-authored-by: Cursor <cursoragent@cursor.com>