Commit Graph

100 Commits

Author SHA1 Message Date
b0a79541b6 feat: add Offline Mode Indicator (Bunker Status) 2025-12-20 23:51:16 +01:00
7d5091a139 fix: resolve pre-cache 404s and implement Bunker v7 with SWR 2025-12-20 23:44:37 +01:00
b2c8ef222f sw.js fixed 2 2025-12-20 23:33:50 +01:00
87856c87f0 sw.js fixed 2025-12-20 23:32:07 +01:00
8bafbf2ece feat: implement Paranoid Mode (SWR for Navigation) 2025-12-20 23:22:02 +01:00
a92b75891a feat: add /sessions to pre-cache and clarify scan/notes offline coverage 2025-12-20 23:12:45 +01:00
ceb964a07d docs: correct routes in offline sync documentation
fix: remove non-existent routes from sw.js pre-caching
2025-12-20 23:10:18 +01:00
c9e3caff5a feat: implement ironclad offline strategy with pre-caching and root fallback 2025-12-20 23:07:00 +01:00
b7ac0957d1 docs: add offline sync & PWA documentation
feat: improve PWA resilience with SWR and navigation timeouts
2025-12-20 22:52:04 +01:00
e0436987a1 feat: Unify AI prompts for Gemini and Mistral 2025-12-19 22:01:29 +01:00
2601a8f12f feat: Switch to Mistral Large 3 (mistral-large-latest) 2025-12-19 21:59:51 +01:00
25b1378794 feat: Replace Nebius with Pixtral AI for bottle scanning 2025-12-19 21:53:18 +01:00
06891a3619 style: Add wall clock time to session timeline 2025-12-19 21:11:36 +01:00
fdc1dd01e5 feat: Complete Flight Recorder with Session Closing and UI feedback 2025-12-19 21:06:16 +01:00
822dc18bfc style: Improve active session visibility and fix mobile timeline layout 2025-12-19 21:01:48 +01:00
0474a83dfb chore: Pin pnpm version for build stability 2025-12-19 20:53:24 +01:00
b48ad8cd56 fix: Resolve build blockers by removing outdated tests and refining schema 2025-12-19 20:53:11 +01:00
0a692498ce fix: Type error in TastingList for optional bottle_id 2025-12-19 20:50:42 +01:00
e8c3032954 feat: Add Flight Recorder, Timeline, ABV Curve and Offline Bottle Caching with Draft Notes support 2025-12-19 20:45:20 +01:00
24e243fff8 feat: Upgrade to Next.js 16.1 & React 19.2, migrate to Supabase SSR with async client handling 2025-12-19 20:31:46 +01:00
d9b44a0ec5 fix(ai): prevent OpenAI credential error at module load time
- Moved OpenAI client initialization to a lazy getter function
- Added explicit check for NEBIUS_API_KEY in the getter
- Ensures Server Actions return structured errors instead of crashing when keys are missing
2025-12-19 14:30:38 +01:00
e2c9bef8f4 fix: improve server action resilience and error logging
- Moved Supabase client initialization inside try-catch in Server Actions
- Added safety checks for null Supabase client in magicScan
- Added detailed server-side logging for debugging deployment issues
- Ensures all failure paths return a structured error response instead of 500
2025-12-19 14:28:40 +01:00
cbb28b389c fix: resolve TagSelector build error and improve component type safety
- Fixed undefined setTags in TagSelector.tsx
- Updated TagSelector to use Dexie cache for immediate UI updates
- Refined TastingList mapping to satisfy TypeScript interface
- Verified fix with a successful production build
2025-12-19 14:17:40 +01:00
f52cfb80fc fix: resolve magic scan crash and implement context-aware AI languages
- Fixed SQL syntax error in magicScan caused by single quotes
- Implemented dynamic locale-aware AI suggestions (Technical: EN, Custom Tags: Localized)
- Updated Dexie schema to version 2 (added locale to pending_scans)
- Fixed missing bottle_id in UploadQueue synchronization
- Installed missing dexie dependencies via pnpm
2025-12-19 14:06:13 +01:00
60ca3a6190 feat: implement robust offline-first sync with Dexie.js
- Migrated to Dexie.js for IndexedDB management
- Added optimistic UI for tasting notes with 'Wartet auf Sync' badge
- Implemented background caching for tags and buddies
- Unified scanning and tasting sync in a global UploadQueue
2025-12-19 13:40:56 +01:00
e08a18b2d5 fix: add missing state for suggested custom tags in TastingNoteForm 2025-12-19 13:20:38 +01:00
14e7759cf9 feat: complete AI custom tag proposals integration
- Fixed data fetching in TastingNoteForm to include suggested_custom_tags
- Verified Nebius service compatibility with updated AI prompts
- Cleaned up artifacts and implementation plan
2025-12-19 13:20:30 +01:00
74916aec73 feat: implement AI custom tag proposals
- AI now suggests dominant notes not in the system list (Part 3: Custom Suggestions)
- Updated TagSelector to show 'Neu anlegen?' buttons for AI-proposed custom tags
- Added suggested_custom_tags to bottles table and metadata schema
- Updated TastingNoteForm to handle both system and custom AI suggestions
2025-12-19 13:20:13 +01:00
b2a1d292da feat: implement advanced tagging system, tag weighting, and app focus refactoring
- Implemented reusable TagSelector component with i18n support
- Added tag weighting system (popularity scores 1-5)
- Created admin panel for tag management
- Integrated Nebius AI and Brave Search for 'Magic Scan'
- Refactored app focus: removed bottle status, updated counters, and displayed extended bottle details
- Updated i18n for German and English
- Added database migration scripts
2025-12-19 12:58:44 +01:00
9eb9b41061 feat: implement server-side image compression with sharp and cleanup RLS policies 2025-12-18 22:08:28 +01:00
d26ebc0b2e fix(query): resolve PostgREST grouping error in SessionList 2025-12-18 21:48:25 +01:00
17727243be feat: add global auth listener with hard reload on logout 2025-12-18 21:45:27 +01:00
6f32bfa17f feat: add visual eyecatcher to session detail header 2025-12-18 21:38:10 +01:00
ec9468f671 fix: resolve dynamic server usage error in debug-admin API route 2025-12-18 21:33:57 +01:00
42d8191c1a fix(pwa): add visibilitychange listener for Android sleep issues 2025-12-18 21:28:46 +01:00
087292f65d feat: improve PWA auth robustness and session management 2025-12-18 21:27:00 +01:00
409e78f2f4 feat: add docker healthcheck for Coolify 2025-12-18 21:19:08 +01:00
7008bbfd84 feat: social UI optimization, collapsible sections, and admin fixes 2025-12-18 21:16:09 +01:00
a64e8f17a1 feat: session deletion, improved tasting deletion visibility, and PWA login loop fix 2025-12-18 21:02:44 +01:00
a4a9d79c4c docker speeeeed 2025-12-18 20:45:37 +01:00
c63a348e6b fix: add defensive fallbacks for missing database relationships 2025-12-18 20:35:38 +01:00
68ac7a515e new 2025-12-18 17:40:20 +01:00
fea964b781 chore: add pnpm onlyBuiltDependencies 2025-12-18 17:37:30 +01:00
4051c40960 add dockerfile 2025-12-18 17:31:48 +01:00
869c8fe9c5 feat: add stop session button and update walkthrough 2025-12-18 17:20:49 +01:00
ca1621e765 feat: refine session workflow with global state, quick tasting, and statistics 2025-12-18 17:19:38 +01:00
7f600698e4 feat: modernize search filters & intelligent label shortening
- Introduced shortenCategory utility to strip redundant terms from labels
- Refactored BottleGrid filters into a compact, collapsible layout
- Added filter count indicator and improved chip styling
- Fully localized new filter UI elements
2025-12-18 16:46:39 +01:00
9464d56055 perf: optimize RLS policies (consolidate and wrap auth calls) 2025-12-18 16:36:30 +01:00
22db65d109 chore: security hardening, mobile PWA fix & analysis expansion
- Applied strict RLS and auth validation to tracking/credit services
- Set Service Worker to Network First to fix mobile session/loading issues
- Expanded Gemini analysis summary to show distilled/bottled/batch info
- Updated SQL schema document with hardening policies
2025-12-18 16:29:16 +01:00
a503e1a317 feat: expand camera analysis display with new fields
- Added distilled date, bottled date, and batch info to the analysis result summary in CameraCapture
- These fields now appear only if Gemini successfully identifies them from the photo
2025-12-18 16:10:50 +01:00