Commit Graph
318 Commits
Author SHA1 Message Date
Claude cc635f786f feat: add automatic image compression before upload
Added client-side image compression to improve upload speed and reduce storage.

New Features:
- Created imageCompression utility (src/utils/imageCompression.ts)
  * Automatically compresses images larger than 1MB
  * Resizes to max 1920x1080px while preserving aspect ratio
  * Uses 80% JPEG quality by default
  * Preserves PNG transparency when present
  * Falls back to 60% quality if still over 2MB

Mobile (NoteDetailPage.tsx):
- Integrated compression before upload
- Shows compression stats to user (e.g., "5.2 MB → 1.1 MB")
- Better error messages with specific details

Desktop (Index.tsx):
- Same compression integration as mobile
- Consistent user experience across platforms

Benefits:
✅ Users can upload large photos from cameras/phones
✅ Faster uploads (smaller files)
✅ Reduced server storage requirements
✅ Better mobile experience (photos often 5-10MB)
✅ Transparent to user (happens automatically)

Technical Details:
- Uses HTML5 Canvas API for processing
- Client-side compression (no server load)
- Maintains image quality while reducing size
- Handles JPEG, PNG, WebP, and GIF formats
- Smart transparency detection for PNGs
2025-11-27 13:14:37 +00:00
Claude 185fe92b6a fix: improve image upload error handling on mobile and desktop
Fixed image upload issues by improving error handling and validation:

Mobile (NoteDetailPage.tsx):
- Added file size validation (5MB max) before upload
- Added error message when upload returns null
- Specified exact image types in accept attribute
- Better user feedback for all error cases

Desktop (Index.tsx):
- Added file size validation (5MB max) before upload
- Added error message when upload returns null
- Specified exact image types in accept attribute
- Removed unnecessary handleUpdateNote call (backend ignores images field)
- Fixed state update to only update local state, not call backend

Both versions now:
- Show clear error messages to users when upload fails
- Validate file size before attempting upload
- Accept only supported formats: JPEG, PNG, WebP, GIF
- Handle null responses from upload service properly

This fixes the silent failure issue where images would not upload but no error was shown to the user.
2025-11-27 13:00:38 +00:00
Claude e420364b50 fix: correct SQL bug in todo creation query
Fixed critical SQL type error in todo creation endpoint that prevented todos from being added to notes.

Bug:
- Line 417: Used FALSE (boolean) instead of 0 (integer) in COALESCE function
- SQL: COALESCE(MAX(position), FALSE) + 1
- This caused a type mismatch error when inserting new todos

Fix:
- Changed to: COALESCE(MAX(position), 0) + 1
- Now correctly defaults to 0 when no todos exist for a note

This fix resolves the issue where adding todos would fail silently or throw database errors.
2025-11-27 12:49:07 +00:00
Claude 2b7d824c22 chore: update package-lock.json after npm install 2025-11-27 08:44:34 +00:00
Claude 75551be69d fix: resolve note todos synchronization issue between mobile and desktop
Fixed critical bug where todos added on mobile or desktop were being silently lost.

Root cause:
- Mobile and desktop were sending todos via the generic PUT /api/notes/:id endpoint
- Backend ignored the 'todos' field in this endpoint (only processes title and content)
- Users saw success messages but todos were never saved to database
- On reload, todos disappeared

Solution:
- Added dedicated todo management methods to NotesService:
  * addTodo() - POST /api/notes/:id/todos
  * updateTodo() - PUT /api/notes/todos/:todoId
  * toggleTodo() - PUT /api/notes/todos/:todoId
  * deleteTodo() - DELETE /api/notes/todos/:todoId

- Updated NoteDetailPage.tsx (mobile) to use proper API methods
- Updated Index.tsx (desktop) to use proper API methods
- Both versions now correctly persist todos to the database

Files modified:
- src/services/NotesService.ts - Added todo management methods
- src/pages/mobile/NoteDetailPage.tsx - Fixed todo handlers
- src/pages/Index.tsx - Fixed todo handlers in note detail view
2025-11-27 08:43:46 +00:00
LogiFlow 425b7f36a0 Merge pull request #122 from R0m1k3/antigravity
feat: implement main application dashboard with notes, todos, RSS, ca…
2025-11-23 17:39:24 +01:00
Michael 29e19414b8 feat: implement main application dashboard with notes, todos, RSS, calendar, and chat functionalities. 2025-11-23 17:38:57 +01:00
LogiFlow 44ff130e0b Merge pull request #121 from R0m1k3/antigravity
Antigravity
2025-11-23 17:29:31 +01:00
Michael 2703e80afa feat: Add PostgreSQL database connection, custom type parsers, and initial schema definition for all application tables. 2025-11-23 17:28:55 +01:00
Michael e71d81c05d feat: Add automatic database schema migrations for tracking timestamps, priority, and in-progress fields, executed at startup. 2025-11-23 17:13:20 +01:00
LogiFlow 200bdd1de7 Merge pull request #120 from R0m1k3/antigravity
feat: add admin service for user management and migration, and routes…
2025-11-23 16:32:14 +01:00
Michael 00ac17da70 feat: add admin service for user management and migration, and routes for database cleanup. 2025-11-23 16:31:47 +01:00
LogiFlow 1499987821 Merge pull request #119 from R0m1k3/antigravity
feat: implement the main application index page with integrated notes…
2025-11-23 16:04:54 +01:00
Michael c177833b38 feat: implement the main application index page with integrated notes, todos, RSS, calendar, and chat functionalities. 2025-11-23 16:04:06 +01:00
LogiFlow 341affdd30 Merge pull request #118 from R0m1k3/antigravity
feat: add comprehensive dashboard page with todo management, RSS feed…
2025-11-23 15:45:35 +01:00
Michael 2665ba5cc1 feat: add comprehensive dashboard page with todo management, RSS feeds, calendar, and AI integration 2025-11-23 15:40:03 +01:00
LogiFlow 4f44a3bbe0 Merge pull request #117 from R0m1k3/antigravity
feat: Implement new React frontend with authentication, add user and …
2025-11-23 15:19:32 +01:00
Michael 4d29bc7454 feat: Implement new React frontend with authentication, add user and auth routes, and introduce various database migration and timezone diagnostic scripts. 2025-11-23 15:19:08 +01:00
LogiFlow f6e2ba21f8 Merge pull request #116 from R0m1k3/antigravity
Antigravity
2025-11-23 14:04:52 +01:00
Michael 623cb2f4f8 arichivage 2025-11-23 14:02:54 +01:00
LogiFlow ff5d227307 Merge pull request #115 from R0m1k3/claude/fix-note-overwrite-bug-01Rx2KMQBoF8XiWUyEHb4c1K
Fix: Amélioration des logs et gestion d'erreurs pour l'assistant IA O…
2025-11-23 13:53:24 +01:00
Michael 9d039d20c4 feat: Implement new React frontend with authentication, routing, theming, and add comprehensive calendar timezone management and database migration scripts. 2025-11-23 13:52:41 +01:00
LogiFlow 060a401824 Merge pull request #114 from R0m1k3/claude/add-database-cleanup-017GyBxnCE3LSomAPinGgDT5
Claude/add database cleanup 017 gy bxn ce3 l som a pin gg dt5
2025-11-21 15:20:09 +01:00
Claude 3677bdfe70 Feat: Système de migrations automatiques au démarrage
Implémente un système de migrations automatiques qui s'exécute à chaque
démarrage de l'application Docker/Node.

Problème résolu :
- Les utilisateurs n'ont plus besoin d'exécuter manuellement les migrations
- Les nouveaux champs SQL sont ajoutés automatiquement
- Évite les erreurs "column does not exist"
- Garantit la cohérence entre le code et le schéma DB

Fonctionnement :
1. Au démarrage : initDatabase() → autoMigrate() → startSchedulers()
2. autoMigrate() vérifie chaque colonne via information_schema
3. Si la colonne n'existe pas, elle est ajoutée automatiquement
4. Les triggers et index sont également créés/mis à jour

Migrations incluses :
- Migration 1 : Champs de tracking (archived_at, completed_at)
  * notes.archived_at
  * global_todos.completed_at
  * note_todos.completed_at + created_at
  * Triggers automatiques

- Migration 2 : Champ priority pour tâches
  * global_todos.priority
  * note_todos.priority
  * Index de performance

Caractéristiques :
- ✅ Idempotent : Peut s'exécuter plusieurs fois sans problème
- ✅ Transactionnel : Utilise BEGIN/COMMIT/ROLLBACK
- ✅ Non-bloquant : L'application démarre même en cas d'erreur
- ✅ Intelligent : Vérifie avant de créer
- ✅ Sécurisé : Double protection avec rétrocompatibilité API
- ✅ Documenté : Guide complet dans docs/MIGRATIONS.md

Fichiers créés :
- scripts/auto-migrate.js - Script de migrations automatiques
- docs/MIGRATIONS.md - Documentation complète

Fichiers modifiés :
- server.js - Appel de autoMigrate() au démarrage

Logs au démarrage :
✓ Base de données initialisée avec succès
🔄 Vérification des migrations...
  → Ajout du champ priority à global_todos (si nécessaire)
✅ Migrations automatiques terminées avec succès
✓ Migrations automatiques appliquées

Impact :
Les utilisateurs peuvent maintenant simplement démarrer l'application avec
docker-compose up et tous les champs SQL seront automatiquement créés.
Plus besoin de lancer des scripts de migration manuellement !
2025-11-21 14:19:33 +00:00
Claude 941493cb16 Fix: Rétrocompatibilité pour le champ priority
Rend le code compatible avec les bases de données qui n'ont pas encore
exécuté la migration priority.

Changements :
- Route GET /api/todos utilise un fallback si priority n'existe pas
- Route PATCH /api/todos/:id/priority retourne un message explicite
- Les tâches s'affichent même sans migration
- Message clair pour guider l'utilisateur vers la migration

L'application fonctionne maintenant avec ou sans le champ priority.
2025-11-21 14:17:11 +00:00
LogiFlow 5bde1a3530 Merge pull request #113 from R0m1k3/claude/add-database-cleanup-017GyBxnCE3LSomAPinGgDT5
Feat: Ajout de l'icône de priorité pour les tâches
2025-11-21 14:52:21 +01:00
Claude 026f0499f5 Feat: Ajout de l'icône de priorité pour les tâches
Implémente un système de marquage de priorité pour les tâches avec une
icône étoile cliquable.

Fonctionnalités ajoutées :
- Champ priority (BOOLEAN) ajouté aux tables global_todos et note_todos
- Migration automatique avec script add-priority-field.js
- Route API PATCH /api/todos/:id/priority pour basculer la priorité
- Icône étoile (Star) dans l'interface frontend
- Tri automatique : tâches prioritaires en premier
- Index PostgreSQL pour optimiser les performances

Comportement de l'icône :
- Toujours visible et jaune quand la tâche est prioritaire
- Visible au survol (hover) quand la tâche n'est pas prioritaire
- Un clic bascule l'état prioritaire/non prioritaire
- Affichage discret (opacity 50%) pour les tâches complétées

Scripts npm ajoutés :
- npm run db:migrate:priority - Exécuter la migration

Routes API mises à jour :
- GET /api/todos - Inclut le champ priority, tri par priorité
- POST /api/todos - Accepte le champ priority
- PUT /api/todos/:id - Accepte le champ priority
- PATCH /api/todos/:id/priority - Bascule la priorité (nouveau)

UI améliorée :
- Icône étoile jaune pour les tâches prioritaires
- Animation au survol pour les interactions
- Tooltip explicatif au survol
- Onglets "Actives" et "Complétées" mis à jour
2025-11-21 10:20:00 +00:00
LogiFlow faa84373f4 Merge pull request #112 from R0m1k3/claude/add-database-cleanup-017GyBxnCE3LSomAPinGgDT5
Feat: Ajout du système de purge automatique de la base de données
2025-11-19 08:10:22 +01:00
Claude 86e825b9d1 Feat: Ajout du système de purge automatique de la base de données
Implémente un système complet de purge automatique pour maintenir
la base de données propre et performante.

Fonctionnalités ajoutées :
- Migration pour ajouter les champs de tracking (archived_at, completed_at)
- Triggers PostgreSQL pour mise à jour automatique des dates
- Script de purge manuel avec mode simulation (dry-run)
- Scheduler automatique configurable (défaut: 24h)
- Routes API admin pour contrôle et monitoring
- Documentation complète

Éléments purgés :
- Flux RSS désactivés (tous)
- Tâches complétées > 3 mois (configurable)
- Notes archivées > 6 mois (configurable)
- Rendez-vous passés > 6 mois (configurable)

Scripts npm ajoutés :
- npm run db:migrate - Exécuter la migration
- npm run db:cleanup - Purge manuelle
- npm run db:cleanup:dry-run - Simulation de purge

Routes API ajoutées :
- POST /api/admin/cleanup - Déclencher la purge
- GET /api/admin/cleanup/preview - Prévisualiser la purge
- GET /api/admin/cleanup/status - Statut du scheduler
- GET /api/admin/stats - Statistiques DB

Configuration via variables d'environnement :
- CLEANUP_ENABLED (défaut: true)
- CLEANUP_INTERVAL_HOURS (défaut: 24)
- CLEANUP_COMPLETED_TASKS_DAYS (défaut: 90)
- CLEANUP_ARCHIVED_NOTES_DAYS (défaut: 180)
- CLEANUP_PAST_EVENTS_DAYS (défaut: 180)
2025-11-19 06:49:27 +00:00
Claude f8cef758ad Fix: Amélioration des logs et gestion d'erreurs pour l'assistant IA OpenRouter
Problème :
- Erreur 502 (Bad Gateway) sur /api/openrouter/chat
- Message d'erreur générique "Provider returned error" peu informatif
- Difficile de diagnostiquer la cause réelle du problème

Solution backend (routes/openrouter.routes.js) :
1. Ajout de logs détaillés à chaque étape :
   - Début de requête avec modèle et nombre de messages
   - Validation de la clé API
   - Requête envoyée à OpenRouter
   - Réponse reçue avec status HTTP
   - Contenu de la réponse ou erreur détaillée

2. Amélioration de la gestion des erreurs :
   - Extraction du message d'erreur d'OpenRouter
   - Logs structurés avec contexte complet
   - Messages d'erreur plus descriptifs

Solution frontend (src/services/OpenRouterService.ts) :
1. Ajout de logs console à chaque étape
2. Messages d'erreur contextuels selon le code HTTP :
   - 400 : Requête invalide (message d'erreur API)
   - 401 : Clé API invalide
   - 402 : Crédits épuisés
   - 429 : Trop de requêtes
   - 502/503 : Service temporairement indisponible

3. Validation de la réponse :
   - Vérification que le contenu existe
   - Message d'erreur si réponse vide

Résultat :
- Logs détaillés backend + frontend pour diagnostic
- Messages d'erreur clairs et actionnables pour l'utilisateur
- Meilleure traçabilité des problèmes OpenRouter
2025-11-18 10:40:43 +00:00
LogiFlow 0359ebe22a Merge pull request #111 from R0m1k3/claude/mobile-page-boxes-017ThBhZv7USsPZZGHt55R9s
Feat: Ajout de la version mobile complète avec navigation sidebar
2025-11-17 14:30:29 +01:00
Claude 3e6440bd90 Feat: Ajout de la version mobile complète avec navigation sidebar
- Création de 3 composants UI mobile réutilisables (MobileHeader, MobileFAB, MobileCard)
- Création du layout MobileDashboard avec sidebar navigation
- Implémentation de 6 pages mobiles :
  * CalendarPage : gestion des événements avec pagination
  * NotesPage : liste des notes avec recherche et filtres
  * NoteDetailPage : édition complète de notes en fullscreen
  * TodosPage : gestion des tâches actives/complétées
  * RssPage : affichage des flux RSS avec actualisation
  * SettingsPage : paramètres de l'application
- Configuration du routing automatique mobile/desktop dans App.tsx
- Détection automatique du device avec redirection intelligente
- Tous les services backend réutilisés sans modification
- Build testé et fonctionnel
2025-11-17 12:20:32 +00:00
LogiFlow 7d16876cd3 Merge pull request #110 from R0m1k3/claude/fix-note-overwrite-bug-01Rx2KMQBoF8XiWUyEHb4c1K
Fix: Synchronisation des dates de modification et tags après sauvegarde
2025-11-17 08:46:25 +01:00
Claude eed5696596 Fix: Synchronisation des dates de modification et tags après sauvegarde
Problème :
- Après modification d'une note, il fallait rafraîchir la page pour voir updated_at
- Après ajout d'un tag, il fallait rafraîchir la page pour le voir dans la note

Solution backend :
1. routes/notes.routes.js - PUT /api/notes/:id :
   - Récupération de la note mise à jour après UPDATE
   - Retour de { message, note } au lieu de juste { message }
   - La note retournée contient la vraie updated_at générée par PostgreSQL

Solution frontend :
1. NotesService.ts - updateNote() :
   - Changement du type de retour de Promise<boolean> vers Promise<Note | null>
   - Récupération et retour de la note mise à jour depuis la réponse du serveur
   - Merge de la note locale (todos, images) avec les données du serveur (updated_at)

2. Index.tsx - handleNoteChange et handleContentChange :
   - Utilisation de la note retournée par updateNote() au lieu de l'état local
   - Mise à jour de openNote et notes avec les données du serveur

3. Index.tsx - Synchronisation des tags :
   - loadNoteTags : Mise à jour de openNote.tags après chargement
   - confirmAddTag : Mise à jour de openNote.tags après ajout
   - handleDeleteTag : Mise à jour de openNote.tags après suppression
   - Conversion du format { id, tag } vers { id, name } pour cohérence

Résultat :
- Les dates de modification s'affichent immédiatement après sauvegarde
- Les tags ajoutés apparaissent immédiatement dans l'interface
- Plus besoin de rafraîchir la page manuellement
2025-11-17 07:45:43 +00:00
LogiFlow a991a0fa00 Merge pull request #109 from R0m1k3/claude/fix-note-overwrite-bug-01Rx2KMQBoF8XiWUyEHb4c1K
Fix: Correction du bug d'écrasement de notes lors de la création
2025-11-17 08:36:00 +01:00
Claude 76b91788b7 Fix: Correction du bug d'écrasement de notes lors de la création
Problème identifié :
- Quand une nouvelle note était créée, elle écrasait la première note existante
- La fonction runQuery() dans database-postgres.js retournait rowCount (1) au lieu de l'ID réel
- Les requêtes INSERT n'utilisaient pas RETURNING pour récupérer l'ID généré

Solution implémentée :
1. Ajout de RETURNING * à toutes les requêtes INSERT dans :
   - routes/notes.routes.js (notes, todos, images, fichiers, tags)
   - routes/todos.routes.js (todos globaux)
   - routes/users.routes.js (utilisateurs)
   - routes/rss.routes.js (flux RSS, résumés)
   - routes/settings.routes.js (paramètres)
   - routes/calendar.routes.js (événements, tokens OAuth)

2. Modification de runQuery() pour :
   - Retourner la ligne complète si RETURNING est présent
   - Inclure tous les champs de la ligne insérée (spread operator)
   - Ajouter des logs détaillés pour le debugging

3. Ajout de logs détaillés pour tracer :
   - Chaque création d'entité avec ses paramètres
   - L'ID retourné après insertion
   - Les erreurs potentielles

Impact :
- Les nouvelles notes ont maintenant leur vrai ID auto-incrémenté
- Plus d'écrasement des notes existantes
- Meilleure traçabilité avec les logs détaillés
2025-11-17 07:34:12 +00:00
LogiFlow 81cf8d3100 Merge pull request #108 from R0m1k3/claude/sync-calendar-events-01GoMFNKnMXxqLi2xaqHhdzh
Fix: Correction du décalage horaire de 1h pour les événements Google …
2025-11-16 19:49:19 +01:00
Claude 8538dbdd0e Fix: Correction du décalage horaire de 1h pour les événements Google Calendar
Problème identifié:
- Google Calendar envoie '2025-11-17T10:20:00+01:00' (10h20 Paris = 09h20 UTC)
- PostgreSQL TIMESTAMP enlève le fuseau horaire et stocke '2025-11-17 10:20:00' (heure locale)
- Le parser 1114 traite cette valeur comme UTC → '2025-11-17T10:20:00.000Z'
- Frontend affiche 11h20 en heure de Paris (10:20 UTC + 1h) au lieu de 10h20

Solution:
- Convertir tous les timestamps en UTC (ISO format) avant insertion dans PostgreSQL
- Appliquer la conversion dans toutes les routes: POST /sync, POST /events, PUT /events/:id
- Le parser 1114 traite maintenant correctement les valeurs UTC stockées

Changements:
- routes/calendar.routes.js: Conversion UTC avant insertion (3 routes corrigées)
- routes/calendar.routes.js: Correction syntaxe PostgreSQL (INSERT ... ON CONFLICT)
- scripts/cleanup-calendar-events.js: Script pour nettoyer les événements existants

Pour appliquer la correction sur les données existantes:
1. Exécuter: docker exec notes-todo-app node scripts/cleanup-calendar-events.js
2. Redémarrer: docker-compose restart notes-app
3. Resynchroniser Google Calendar depuis l'interface web
2025-11-16 17:54:37 +00:00
LogiFlow 7570ca9ebb Merge pull request #107 from R0m1k3/claude/fix-time-offset-bug-01FzrcjKh9o5emsU6hRMMLRL
Add: Logs supplémentaires pour débuguer l'INSERT PostgreSQL et parser…
2025-11-16 18:43:34 +01:00
Claude 474d4977ad Add: Logs supplémentaires pour débuguer l'INSERT PostgreSQL et parsers 1114/1184 2025-11-16 17:42:35 +00:00
LogiFlow f529d09001 Merge pull request #106 from R0m1k3/claude/fix-time-offset-bug-01FzrcjKh9o5emsU6hRMMLRL
Add: Système de logs visibles dans le navigateur (sans accès Docker)
2025-11-16 18:38:08 +01:00
Claude 27840c342f Add: Système de logs visibles dans le navigateur (sans accès Docker)
NOUVEAU SYSTÈME DE LOGGING:

Au lieu d'utiliser les logs Docker (inaccessibles depuis Portainer),
création d'un système de logs accessible directement dans le navigateur.

FICHIERS AJOUTÉS:

1. services/timezone-logger.js:
   - Service singleton qui stocke les logs en mémoire
   - Limite à 500 logs max (pour éviter les fuites mémoire)
   - Méthodes: log(), getLogs(), clearLogs(), getLogsByCategory()

2. routes/timezone-logs.routes.js:
   - GET /api/timezone-logs - Logs en JSON
   - GET /api/timezone-logs/html - Interface web avec design moderne
   - GET /api/timezone-logs/category/:cat - Filtrer par catégorie
   - POST /api/timezone-logs/clear - Vider les logs

3. VOIR-LOGS-TIMEZONE.md:
   - Documentation complète du système
   - Procédure pas à pas
   - Explications des logs attendus

FICHIERS MODIFIÉS:

1. config/database.js:
   - Utilise timezoneLogger au lieu de logger.debug
   - Catégorie: PARSER

2. routes/calendar.routes.js:
   - Logs avec timezoneLogger lors de la synchronisation
   - Catégorie: SYNC (synchronisation Google Calendar)
   - Catégorie: GET (envoi au frontend)

3. server.js:
   - Ajout de la route /api/timezone-logs

INTERFACE WEB DE LOGS:

Accessible sur: http://localhost:2222/api/timezone-logs/html

Fonctionnalités:
- ✅ Design moderne avec dégradés et animations
- ✅ Statistiques en temps réel (total, par catégorie)
- ✅ Filtrage par catégorie (SYNC, PARSER, GET)
- ✅ Auto-refresh toutes les 3 secondes
- ✅ Code couleur par catégorie
- ✅ Affichage des données JSON formatées
- ✅ Bouton pour vider les logs
- ✅ Responsive, fonctionne sur mobile

UTILISATION:

1. Rebuild: docker-compose build --no-cache notes-app
2. Ouvrir: http://localhost:2222/api/timezone-logs/html
3. Synchroniser Google Calendar
4. Observer les logs en temps réel dans le navigateur

Plus besoin d'accès aux logs Docker/Portainer !
2025-11-16 17:37:30 +00:00
LogiFlow b1c34970e6 Merge pull request #105 from R0m1k3/claude/fix-time-offset-bug-01FzrcjKh9o5emsU6hRMMLRL
Add: Système de logging complet pour débuguer le décalage horaire
2025-11-16 18:27:16 +01:00
Claude 972dcacc50 Add: Système de logging complet pour débuguer le décalage horaire
Ajout d'un système de logging exhaustif pour tracer le flux complet
des dates depuis Google Calendar jusqu'à l'affichage dans NoteFlow.

FICHIERS MODIFIÉS:

1. config/database.js:
   - Logs détaillés dans le parser TIMESTAMPTZ
   - Affiche l'input, la transformation et l'output
   - Différencie les dates avec/sans timezone

2. routes/calendar.routes.js:
   - Logs lors de la synchronisation Google Calendar
   - Affiche ce que Google renvoie (format brut)
   - Affiche la conversion en UTC et l'affichage Paris
   - Logs lors de la récupération des événements (GET /events)
   - Nouvel endpoint GET /api/calendar/debug pour diagnostic complet

3. DEBUG-TIMEZONE-LOGS.md:
   - Documentation complète du système de logging
   - Procédure étape par étape pour débuguer
   - Commandes utiles pour analyser les logs
   - Guide d'interprétation des résultats

ENDPOINT DE DIAGNOSTIC AJOUTÉ:

GET /api/calendar/debug renvoie:
- Timezone du serveur Node.js
- Timezone de PostgreSQL
- Un événement exemple avec toutes ses représentations
- Test de parsing complet (input → output → display)

UTILISATION:

1. Rebuild avec: docker-compose build --no-cache notes-app
2. Supprimer les événements: DELETE FROM calendar_events
3. Lancer les logs: docker-compose logs -f notes-app
4. Synchroniser Google Calendar
5. Analyser les logs pour identifier où se produit le décalage

Les logs permettront de voir EXACTEMENT:
- Ce que Google Calendar renvoie
- Comment c'est stocké dans PostgreSQL
- Comment le parser le transforme
- Comment le frontend l'affiche
2025-11-16 15:54:38 +00:00
LogiFlow e3c5296e17 Merge pull request #104 from R0m1k3/claude/fix-time-offset-bug-01FzrcjKh9o5emsU6hRMMLRL
Claude/fix time offset bug 01 fzrcj kh9o5ems u6h rmmlrl
2025-11-16 16:16:35 +01:00
Claude 24e4dcfbd5 Add: Script de procédure pour corriger le décalage horaire 2025-11-16 14:59:17 +00:00
Claude 58f9d44e9c Fix: Correction de la regex du parser TIMESTAMPTZ pour supporter +HH et +HH:MM 2025-11-16 14:58:35 +00:00
LogiFlow bf0d18cafa Merge pull request #103 from R0m1k3/claude/fix-time-offset-bug-01FzrcjKh9o5emsU6hRMMLRL
Merge pull request #102 from R0m1k3/main
2025-11-16 15:56:12 +01:00
LogiFlow 2412461c0a Merge pull request #102 from R0m1k3/main
commiut
2025-11-16 15:51:22 +01:00
LogiFlow a8ff08793a Merge pull request #101 from R0m1k3/claude/fix-time-offset-bug-01FzrcjKh9o5emsU6hRMMLRL
Fix: Correction du décalage horaire lors de l'affichage des événement…
2025-11-16 14:54:51 +01:00