Release Notes
v1.82.143Changelog Chrono
Toutes les modifications notables de ce projet sont documentees dans ce fichier.
Le format est base sur Keep a Changelog.
v1.82.143 2026-02-15
Corrige
- Fatal error in saveAiGlobalConfig: db_load needs array argument
v1.82.142 2026-02-15
Corrige
- UTF-8 corruption: stop replacing raw \xA0 byte in email content
v1.82.141 2026-02-15
Corrige
- Handle Cloudflare 409 Duplicated Zone rule on email activation
v1.82.140 2026-02-15
Interface
- Move AI config from Task Review to Options > Configuration IA
v1.82.139 2026-02-15
Corrige
- Email webhook: conversion UTF-8 vers latin1 pour DB
v1.82.138 2026-02-15
Securite
- Corrections mineures pre-deploiement
v1.82.137 2026-02-15
Ajoute
- Entrypoint: auto-generation webhook secret + export env cron
v1.82.136 2026-02-15
Ajoute
- Centraliser config IA dans planning_config (globale)
Base de donnees
update-1-82-136.sqlv1.82.135 2026-02-15
Corrige
- PDF sorties: afficher nom complet du technicien au lieu de M.NOM
v1.82.134 2026-02-15
Interface
- Retrait badge IA du formulaire sortie, nature technique dynamique
v1.82.133 2026-02-15
Corrige
- Webhook: utilise la date de l'email pour trouver la periode active
v1.82.132 2026-02-15
Interface
- Retrait du tag IA/Auto dans la liste des sorties
v1.82.131 2026-02-15
Ajoute
- Tag IA dans liste sorties + regles d'exclusion email par equipe
Base de donnees
update-1-82-131.sqlv1.82.130 2026-02-15
Corrige
- Email processor: fix AI config loading and UTF-8 encoding
v1.82.129 2026-02-15
Corrige
- Email regex: clean nbsp, smart site names, accent-safe incident detection
v1.82.128 2026-02-15
Ajoute
- Email processing: LLM-first extraction with regex fallback
Base de donnees
update-1-82-128.sqlv1.82.127 2026-02-15
Corrige
- Email config: address change handling, smart prefix, webhook URL
v1.82.126 2026-02-15
Experience utilisateur
- Prefixe email editable + auto-calcul depuis equipes selectionnees
v1.82.125 2026-02-15
Ajoute
- Mutualisation adresse email entre equipes
v1.82.124 2026-02-15
Ajoute
- Email routing astreinte via Cloudflare Email Workers
Base de donnees
update-1-82-124.sqlv1.82.123 2026-02-15
Corrige
- Entrypoint: create task_review.lock with www-data ownership
v1.82.122 2026-02-15
Corrige
- Entrypoint: PHP migration detection uses initial DB version instead of post-SQL version
v1.82.121 2026-02-15
Corrige
- Task review: LLM-detected anomalies (memo_personnel, etc.) now trigger review regardless of staleness score
v1.82.120 2026-02-15
Corrige
- PHP migrations: Cannot redeclare runMigration() when multiple PHP migrations run sequentially
v1.82.119 2026-02-15
Corrige
- Scoring LLM: staleness base sur age + merge max() pour taches normales
v1.82.118 2026-02-15
Corrige
- LLM batch: fallback cle plaintext, timeout 90s, prompt BTP ameliore
v1.82.117 2026-02-15
Ajoute
- Architecture LLM-First pour detection anomalies panier
Corrige
- Corrections revue code architecture LLM-First anomalies panier
Base de donnees
update-1-82-117.sqlv1.82.116 2026-02-15
Corrige
- Ajout task_review_view_team dans formulaires utilisateur et bulk rights
v1.82.115 2026-02-15
Ajoute
- Auto-popup modale review au premier affichage pour nouveaux utilisateurs
v1.82.114 2026-02-15
Corrige
- Decoupler droits panier des droits task review + ajout task_review_view_team
v1.82.113 2026-02-14
Corrige
- Protection db_query() dans checkPendingReviews + logging erreur SQL
v1.82.112 2026-02-14
Ajoute
- Pagination modale review + retrait basket_manage_all du bouton Vue detaillee
v1.82.111 2026-02-14
Corrige
- Decoupler droits panier des droits task review + visibilite par equipe
v1.82.110 2026-02-14
Ajoute
- Filtres queue task review + enrichissement cartes
v1.82.109 2026-02-14
Ajoute
- Suivi task review par utilisateur et par equipe dans stats
v1.82.108 2026-02-14
Ajoute
- Auto-hygiene panier: 3 regles de nettoyage transparent
v1.82.107 2026-02-14
Ajoute
- Rationalisation droits + uniformisation Notion formulaires modaux
- Rationalisation gestion des droits sur les 3 formulaires
Interface
- Uniformise layout droits activites sur user_form et bulk_form
- Uniformisation Notion des formulaires modaux
v1.82.106 2026-02-14
Ajoute
- Droits task review assignables dans les profils
v1.82.105 2026-02-14
Ajoute
- Classifieur 3 niveaux pour detection anomalies panier
v1.82.104 2026-02-14
Corrige
- Smarty charset ISO-8859-1: corrige titres affiches "Sans titre"
v1.82.103 2026-02-14
Corrige
- Task review: logging manquant pour auto-archive absences et sans-titre
v1.82.102 2026-02-14
Ajoute
- Task review: onglet Historique des actions admin
v1.82.101 2026-02-14
Corrige
- Task review: 7 anomalies corrigees par analyse multi-agents
v1.82.100 2026-02-14
Experience utilisateur
- Task review: classification tags + auto-archive absences
v1.82.99 2026-02-14
Experience utilisateur
- Task review: AI key warning, model suggestions, pagination, untitled cleanup
v1.82.98 2026-02-14
Corrige
- Migration: prevent duplicate rows in staleness_model and review_config
Base de donnees
update-1-82-97.sqlv1.82.97 2026-02-14
Ajoute
- Task review cron: AI enrichment activation
- v1.82.97 Task review/charifage AI module
Corrige
- Task review: pre-merge fixes from final multi-agent analysis
- Task review: ADM fallback also in manual scoring
- Task review: orphan tasks fallback to admin ADM
- Task review: 15 MEDIUM fixes from multi-agent analysis
- Task review: 6 remaining HIGH fixes
- Task review: 9 HIGH fixes from multi-agent analysis
- Task review: 10 critical fixes from multi-agent analysis + manual scoring button
Experience utilisateur
- Move task review admin from modal to dedicated page
- Use non-technical labels in task review config
- Simplify task review config with presets and advanced mode
Securite
[Security][Fix] Task review: fix XSS, data loss, N+1 queries, duplicate IDs, Docker env leakBase de donnees
update-1-82-97.sqlv1.82.96 2026-02-13
Corrige
- Bandeau mise a jour: robustesse reconnexion, i18n et recovery
- Bandeau mise a jour: eliminer les faux positifs hors-ligne/erreurs reseau
v1.82.95 2026-02-13
Ajoute
- Amelioration gestion sessions et connexions
Securite
- Corrections critiques gestion sessions avant merge
v1.82.94 2026-02-13
Corrige
- Correction filtre calendriers: Surete/Securite exclus a tort par 1.82.91
v1.82.93 2026-02-13
Corrige
- Suppression activites astreinte + desactivation type ASTR
Base de donnees
update-1-82-93.sqlv1.82.92 2026-02-13
Corrige
- Nettoyage calendriers orphelins et renommage propre
Base de donnees
update-1-82-92.sqlv1.82.91 2026-02-13
Corrige
- Neutralise migration destructrice 1.82.89 + corrective 1.82.91
Base de donnees
update-1-82-89.sqlv1.82.90 2026-02-13
Corrige
- db_fetch() inexistant remplace par db_fetch_array()
v1.82.89 2026-02-13
Corrige
- GObject __isset manquant + nettoyage calendriers orphelins
Base de donnees
update-1-82-89.sqlv1.82.88 2026-02-13
Corrige
- Affichage horaires calendrier pour activites multi-jours et journee complete
v1.82.87 2026-02-13
Corrige
- Migration: exclure Sedentaire de la duplication calendriers
v1.82.86 2026-02-13
Corrige
- Migration securisee: complete duplication incomplete calendriers
v1.82.85 2026-02-13
Corrige
- Renommage migration vers v1.82.84 pour execution sur ChronoDev
v1.82.84 2026-02-13
Corrige
- Migration auto-assignation calendriers equipes orphelines
v1.82.83 2026-02-13
Corrige
- Migration recalcul durees couvre aussi les activites passees
v1.82.82 2026-02-13
Corrige
- Renommage migration recalcul durees vers v1.82.82
v1.82.81 2026-02-12
Ajoute
- Propagation calendrier etendue aux activites
- Propagation durees taches apres modification calendrier
Corrige
- Migration auto recalcul durees + correction colonne login_actif
v1.82.80 2026-02-12
Corrige
- Contrainte calendrier: boucle infinie sur ajustement tache multi-jours
v1.82.79 2026-02-12
Corrige
- Ajout Content-Type header sur reponse CSRF invalide xajax
v1.82.78 2026-02-12
Interface
- Uniformisation boutons sidepanels astreinte vers design system sp-btn
v1.82.77 2026-02-12
Experience utilisateur
- Phase 3: modale confirmation, focus trap, validation inline, breadcrumbs, console gate
v1.82.76 2026-02-12
Corrige
- CSRF: generation lazy du token (session pas encore active au require)
v1.82.75 2026-02-12
Corrige
- CSRF: require_once pour eviter double-declaration fatale
- Phase 2 - Correction regressions detectees par verification
- Phase 2 - Ameliorations importantes: securite, accessibilite, performance
v1.82.74 2026-02-12
Corrige
- Regression N+1: ajouter champ calcule is_delegation au row brut
- Phase 1 - 7 corrections critiques performances et securite
Base de donnees
update-1-82-74.sqlv1.82.73 2026-02-12
Corrige
- Ne pas envoyer de notifications pour les periodes passees
v1.82.72 2026-02-12
Experience utilisateur
- Filtres rapides periodes - vue annee en cours par defaut
v1.82.71 2026-02-12
Corrige
- Afficher les periodes d'astreinte passees dans le tableau
v1.82.70 2026-02-12
Ajoute
- Sorties d'astreinte - gestion complete + exports PDF multi-equipe/multi-mois
Base de donnees
update-1-82-70.sqlv1.82.69 2026-02-11
Corrige
- CSRF token mismatch behind reverse proxy + self-healing token refresh
v1.82.68 2026-02-11
Securite
- Replace addslashes→val2sql_raw in SQL, validate PDF params, sanitize options tab
- Upload SQL injection, MD5→random_bytes, tabnabbing, upload dir hardening
- Remove X-Powered-By header, add session strict mode, deduplicate X-Frame-Options
- CSRF protection for xajax, security headers, stronger token
[Security][Perf] Audit fixes - SQL injection, eval() RCE, missing indexes, N+1 queries
Base de donnees
update-1-82-68.sqlv1.82.67 2026-02-10
Corrige
- Re-enable Pointer Events API for drag-and-drop on hybrid PCs with touchscreens
v1.82.66 2026-02-10
Corrige
- Inject Docker env vars into cron entries for Brevo SMS config
v1.82.65 2026-02-10
Corrige
- Fix cron lock file ownership blocking notification sends
v1.82.64 2026-02-10
Corrige
- Fix cron notifications not sending: permissions, PHP path, timezone
v1.82.63 2026-02-09
Interface
- Add astreintes module toggle in Options page
v1.82.62 2026-02-09
Corrige
- Hide astreinte rights from self-profile edit form
v1.82.61 2026-02-09
Corrige
- Move trigger DEFINER fix before SQL migrations in entrypoint
v1.82.60 2026-02-09
Experience utilisateur
- Astreintes: hide UI elements based on permission level
v1.82.59 2026-02-09
Corrige
- Admin panel button visible for all users with panel-relevant rights
v1.82.58 2026-02-09
Corrige
- Astreintes: fix rights hierarchy - configure implies all levels
v1.82.57 2026-02-09
Ajoute
- Astreintes: email recap, notifications UI, SQL migrations, security fixes
- Astreintes: refactor notifications per-segment with titulaire fallback
- Astreintes: add per-user rights in user form
- Astreintes: SQL migration, cron config and syntax fix
- Astreintes: notification hooks, cron job and translations
- Astreintes: notification system infrastructure
- Astreintes: add granular roles and permissions
- Astreintes: toggle activation dans le formulaire equipe
- Astreintes: flag participation utilisateur + filtrage equipes actives
- Bandeau astreinte: blocs par jour avec delegations partielles
- Tooltip astreintes: couverture detaillee par personne et plages
- Module Astreintes - Refactoring audit complet + suppression contraintes
- Module Astreintes - Gestion complete des astreintes
Corrige
- Astreintes: cleanup dead CSS class, dead table, charset consistency
- Astreintes: robust retry, cron flock, rate limiting and admin alerting
- Astreintes: config equipe utilise listeEquipes (actives seulement)
- Astreintes: config equipe utilise listeGroupes (toutes), fix iterateur GCollection
- Astreintes: GCollection iteration avec fetch() au lieu de ->data
- Astreintes: supprimer tous les 13:00 hardcodes, config multi-equipes au submit
- Astreintes: heures config multi-equipes + suppression scroll horizontal
- Astreintes: db_save auto-increment, refresh direct, suppression scroll horizontal
- Bandeau astreinte: overnight UNION, titulaire visible, UX ameliorations
- Bandeau astreinte: horaires plages reelles au lieu des bornes periode
- Bandeau astreinte: avatar seul pour les delegations partielles
- Tooltip astreintes illisible + filtre titulaire par equipe + nouvelle periode sans arg
Performance
- Astreintes: optimize SMS volume -25% (36 -> 27 SMS)
Interface
- Astreintes: align notification SMS/email with app branding (Chrono)
- Astreintes: fix responsive horizontal scrollbar in periods table
- Planning: masquer tag/banniere astreinte sur equipes non activees
- Bandeau astreinte: suppression icone tel, labels plages delegues
- Planning astreintes: avatars colores, badges DELEG/EN COURS, visibilite amelioree
Experience utilisateur
- Bandeau astreinte: afficher titulaire barre + delegataire directement
Securite
- Astreintes: team-scoped auth, idempotent SQL, prod cron, version bump
Base de donnees
update-1-82-55.sqlupdate-1-82-56.sqlv1.82.54 2026-01-21
Corrige
- Multi-jour avec heures personnalisees: verifier heures AVANT demi-journees
v1.82.53 2026-01-21
Corrige
- Correction detection champ duree vide avec type=time
v1.82.52 2026-01-21
Corrige
- Ne pas vider date_fin lors de la saisie des heures personnalisees
v1.82.51 2026-01-21
Corrige
- Creneaux horaires personnalises: sauvegarde, rechargement et affichage multi-jour
v1.82.50 2026-01-20
Experience utilisateur
- Uniformisation contraintes calendrier: tout via modal serveur
v1.82.49 2026-01-20
Corrige
- Affichage plage horaire AM/PM dans tooltip et cellules
v1.82.48 2026-01-20
Corrige
- Taches hors_calendrier: affichage, modification et blocage drag
v1.82.47 2026-01-20
Corrige
- Calendrier: prise en compte matin/apres-midi pour periodes multi-jours
v1.82.46 2026-01-19
Corrige
- Prevent Apache redirect loop for static assets (AH00124)
Securite
- Harden .htaccess against open redirect and path traversal
v1.82.45 2026-01-19
Corrige
- Sidepanel respects calendar constraint toggle for half-day options
- Calendar constraint toggle now works for all operations
- Multi-team selection now saves correctly in basket task sidepanel
- Allow team task assignment for users with basket_manage_team right
- Correct team task management bugs (touch detection, basket auto-close, team addition)
Documentation
- Update analysis document with Bug 4 (multi-team selection in sidepanel)
v1.82.44 2026-01-18
Corrige
- Correct status labels encoding (UTF-8 -> latin1)
Base de donnees
update-1-82-44.sqlv1.82.43 2026-01-18
Corrige
- Correct column name in migration (commentaire, not label)
Base de donnees
update-1-82-41.sqlv1.82.42 2026-01-18
Corrige
- Use INSERT IGNORE for MariaDB compatibility in migration
Base de donnees
update-1-82-41.sqlv1.82.41 2026-01-18
Corrige
- Force calendar constraint mode to 'strict' by default
Base de donnees
update-1-82-41.sqlv1.82.40 2026-01-18
Corrige
- Calendar constraint not detecting activities ending on non-working PM
v1.82.39 2026-01-18
Experience utilisateur
- Phase 3 improvements for team filter system
v1.82.38 2026-01-18
Experience utilisateur
- Re-render team section after server response
v1.82.37 2026-01-18
Corrige
- Phase 2 high-priority fixes for team filter system
v1.82.36 2026-01-18
Securite
- Phase 1 critical fixes for team filter system
v1.82.35 2026-01-18
Ajoute
- Add migration version validation automation
v1.82.34 2026-01-18
Corrige
- Correct migration file versioning for v1.82.33 compatibility
Base de donnees
update-1-82-21.sqlupdate-1-82-32.sqlv1.82.33 2026-01-18
Ajoute
- Add advanced task duplication functionality
Experience utilisateur
- Improve task duplication to create copy only on validation
v1.82.32 2026-01-18
Ajoute
- Unified Access & Sharing panel (v1.86.00)
- Team manager backend - filter basket by managed teams
- Add team filter dropdown in basket panel
Corrige
- Use document.body for Select2 dropdownParent in xajax responses
- Basket panel UI sync and color-coded drop zones
Interface
- Add select2bs4 class to repetition select (merge fix)
- Uniform custom dropdowns for team and type filters in basket panel
Securite
- Complete rights system fixes and standardization
Base de donnees
update-1-83-01.sqlupdate-1-86-00.sqlv1.83.00_basket_team_filter.sqlv1.82.31 2026-01-17
Corrige
- Add position relative to assignment section for user dropdown
- Use document.body for Select2 dropdownParent in notion-layout.js
- Select2 dropdown positioning in sidepanel
- Close dropdowns on scroll in sidepanel
- Resolve xajax script parsing error in sidepanel
Interface
- Standardize repetition select with select2bs4 class
- Remove activity-based title coloring - consistent neutral style
- Unify label colors in sidepanel
- Fix sidepanel layout overflow issues
- Complete CSS design system standardization
Experience utilisateur
- Sprint 2 improvements - user assignment, schedule labels, validation
Securite
- Phase 6 - XSS prevention and error handling
Documentation
- Add UI standardization audit - typography, spacing, colors
- Update analysis - Global functions migration complete
- Update sidepanel analysis - Phase 10 complete, refactoring finished
- Update sidepanel analysis - Phases 6-9 complete
- Update sidepanel analysis with post-refactoring audit
v1.82.30 2026-01-16
Ajoute
- Calendar adjustment proposal on drag-and-drop constraint violation
Corrige
- Security and stability fixes from multi-agent review
- Silent UI rollback for calendar adjustment modal
- Fix half-day toggle display for multi-day activities in sidepanel
- Auto-refresh side panel after task move operations
- Prevent duplicate creation when confirming calendar adjustment
- Pass calendar adjustment as JSON string for xajax compatibility
- Calendar validation for multi-day tasks drag-and-drop
Interface
- Replace native confirm() with custom Bootstrap modal for delete button
v1.82.29 2026-01-16
Ajoute
- Add automatic migration to fix tasks violating calendar constraints
- Add tool to fix existing tasks violating calendar constraints
Corrige
- Handle NULL duree_details in calendar migration for multi-day tasks
- Fix migration for multi-day tasks starting on Friday PM
- Fix PHP migration dependencies and db_free_result
- Remove manual calendar violation tools - auto migration only
- Add calendar constraint validation to drag-and-drop move operations
v1.82.27 2026-01-16
Corrige
- Make SQL migrations idempotent for v1.84/v1.85
Base de donnees
update-1-84-00.sqlupdate-1-85-00.sqlv1.82.26 2026-01-16
Ajoute
- Multi-conditions pour statuts + fix notification loading
Corrige
- Remove debug console.log statements from date value storage
Base de donnees
update-1-84-00.sqlupdate-1-85-00.sqlv1.82.25 2026-01-16
Corrige
- Mobile drag-and-drop: clone visibility & toolbar display
v1.82.24 2026-01-16
Ajoute
- Migrate notification calls to SoNotify
- SoNotify - Unified notification system (Notion-style)
Corrige
- Complete SoNotify integration - critical fixes
v1.82.23 2026-01-16
Corrige
- Smart morph rendering bug - Use tbody.innerHTML for reliable DOM updates
- Visual sync of multi-user task clones during drag & drop
- Drag & drop multi-user tasks now updates all assigned users
Performance
- Delta updates for SSE planning events - avoid unnecessary refreshes
Interface
- Task badges refactoring and cleanup
v1.82.22 2026-01-15
Ajoute
- Configurable status icons via admin page
- SVG inline icons + preventive status management
Corrige
- Hide status icons on absence-type activities
- Code quality issues from multi-agent analysis
- Add row IDs to planning table for proper morphdom matching
Base de donnees
planning_mysql.sqlupdate-1-82-22.sqlupdate-1-83-00.sqlv1.82.11_performance_indexes.sqlv1.82.21 2026-01-15
Corrige
- Mobile month buttons not limited - wrong CSS selector
Documentation
- WIP - Clean up CHANGELOG from incorrect SQL migrations
v1.82.20 2026-01-15
Corrige
- Changelog only includes actually modified SQL files
v1.82.19 2026-01-15
Corrige
- Mobile - User column hidden behind task cells
v1.82.18 2026-01-15
Interface
- Simplify task sidepanel - remove link, file, email notification, custom
v1.82.17 2026-01-15
Corrige
- Remove hardcoded version numbers from comments
- Presence dropdown shows only overflow users (not already visible as avatars)
Documentation
- Add post-commit hook for auto versioning
v1.82.16 2026-01-14
Ajoute
- Integrate optimisticUI with PlanningEventState for concurrent drags
- Optimistic Drag & Drop - Phase 1 Infrastructure
Corrige
- Consecutive drag & drop popup interaction
Documentation
- Update progress and add workflow diagram
- Update progress tracking for Optimistic UI implementation
- Add Optimistic Drag & Drop analysis and implementation plan
v1.82.11 2026-01-14
Corrige
- Prevent drag & drop from getting stuck
Performance
- Add composite indexes for query optimization
- Debounce/throttle scroll handlers
- Add LRU cache to GObject::db_load()
- Async notifications + deferred budget updates
- Factorize 3rd conflict check block
- Optimize task operations - Phase 2
- Optimize task move operations - Phase 1
Base de donnees
update-1-82-10.sqlv1.82.09 2026-01-14
Ajoute
- Multi-month selection : Selection de plusieurs mois consecutifs dans la toolbar
- Shift+Click : Selectionner une plage de mois d'un coup
- Maximum 6 mois selectionnables
- Feedback visuel vert sur les mois selectionnes
- Indicateur avec compteur "X mois" et boutons Afficher/Annuler
- Tous les mois de la periode affichee sont surlignes apres validation
v1.82.08 2026-01-14
Corrige
- Presence dropdown z-index : Correction du probleme d'affichage du dropdown de presence
- Le dropdown s'affiche maintenant correctement au-dessus des autres elements
- Resolution du conflit z-index avec les overlays et modales
Technique
- Pattern Portal applique au composant PresenceDropdown
- Meilleure gestion du positionnement absolu dans le DOM
v1.82.07 2026-01-13
Corrige
- Date Range Picker : Bug date "AU" prenant la date du jour au lieu de la date "DU"
initDateRangeSync() pour synchronisation automatique- Quand date_debut change en mode custom, date_fin est mise a jour si vide ou invalide
- Si date_fin < date_debut, correction automatique avec feedback visuel
- Support mobile (input type="date") et desktop (Bootstrap Datepicker)
- Ajout
onFocus="remplirDateFinPeriode();" dans template comme fallbackAmeliore
- UX Date Range : Feedback visuel lors de la synchronisation automatique
- Message warning quand date_fin est corrigee (etait avant date_debut)
- Auto-disparition apres 4 secondes
Technique
- Nouvelles fonctions dans sidepanel-form.js:
parseUserDate() : Parse dates FR (DD/MM/YYYY) et ISO (YYYY-MM-DD)-
showDateRangeFeedback() : Affiche feedback visuel dans le panel custom-
initDateRangeSync() : Gere la synchronisation date_debut → date_fin- Bonnes pratiques UX basees sur Google Calendar, Expedia, Material Design
v1.82.06 2026-01-12
Corrige
- SSE/Polling : Silent fallback + Network detection
- SSE/Polling : Memory leak fix in SSE retry test
v1.82.05 2026-01-12
Ajoute
- SSE/Presence System v1.82.04 - Corporate Proxy Support + Stability
Corrige
- SSE/Cloudflare Phase 1 - Headers chunked/identity + streams par defaut
- SSE/Presence v1.81.05 - Cloudflare 16KB padding + subscribe loop fix
v1.82.04 2026-01-12
Corrige
- SSE/Deploiement : Affichage du bandeau de mise a jour apres 5 erreurs de connexion consecutives (404 pendant deploiement)
- SSE/UX : Au lieu d'erreurs silencieuses, l'utilisateur voit maintenant un bandeau bleu l'invitant a rafraichir
- Presence/UI : Correction du clignotement des avatars utilisateurs en ligne
- Skip render dans updateUserStatus() si le statut est inchange
- Skip render dans addUser() si l'utilisateur existe deja avec les memes donnees
- Skip render dans updateUsers() si la liste n'a pas change
- Presence/Away : Le statut "Absent" (away) est maintenant correctement affiche
- Pastille jaune/orange visible apres 5 min d'inactivite
Base de donnees
update-1-82-04.sqlv1.82.03 2026-01-12
Corrige
- SSE/Presence : Bug suppression ZSET multi-onglets (fermer un onglet supprimait l'utilisateur meme si d'autres onglets ouverts)
- SSE/Presence : heartbeatTimeout augmente a 20s (4x heartbeat serveur) pour eviter faux positifs
- SSE/Presence : maxHeartbeatTimeouts revenu a 2 (1 etait trop agressif)
- SSE/Presence : Nettoyage _pendingRemovals dans destroy() (fuite memoire)
- SSE/Presence : Utilisation constante CONFIG_PRESENCE_TTL partout
- SSE/Securite : Details des exceptions masques dans erreurs SSE
- SSE/Presence : Guard _switchingTransport dans initRealtime() (race condition)
- Long Polling : Queue drain compte les events et non les iterations (max 11 events)
Base de donnees
update-1-82-03.sqlv1.82.02 2026-01-12
Performance
- SSE/Presence : SSE_POLL_INTERVAL reduit de 5s a 1s (80% plus rapide)
- SSE/Presence : Rafraichissement liste presence de 60s a 15s (75% plus rapide)
- SSE/Presence : sleep() legacy SSE de 1s a 100ms (90% plus rapide)
- SSE/Presence : SSE_HEARTBEAT_INTERVAL de 15s a 5s (67% plus rapide)
- SSE/Presence : heartbeatTimeout client de 45s a 15s (67% plus rapide)
- SSE/Presence : heartbeatCheckInterval de 10s a 3s (70% plus rapide)
- Long Polling : LONGPOLL_TIMEOUT de 25s a 10s (60% plus rapide)
- SSE/Presence : GRACE_PERIOD de 15s a 5s (67% plus rapide)
- SSE/Presence : statusSyncInterval de 60s a 20s (67% plus rapide)
Base de donnees
update-1-82-02.sqlv1.82.01 2026-01-12
Corrige
- SSE/Presence : Flickering corrige - active_users retire des events delta (presence_join)
- SSE/Presence : TTL augmente de 90s a 180s (ratio 3:1 avec heartbeat)
- SSE/Presence : Heartbeat HTTP envoie toujours (ne skip plus si status inchange)
- SSE/Presence : Grace period 15s avant marquage offline
- SSE/Presence : Nettoyage ZSET deterministe (100% au lieu de 10%)
- SSE/Presence : publishPresenceLeave atomique avec transaction
Base de donnees
update-1-82-01.sqlv1.82.00 2026-01-12
Securite
- Rate limiting SSE (max 10 connexions simultanees par utilisateur)
- Rate limiting heartbeat (max 10 requetes/5s)
- Validation tab_id contre injection
Corrige
- SSE/Presence : Deduplication events cote client (evite doublons pendant switch transport)
- SSE/Presence : Transactions Redis pour presence atomique
- Long Polling : Cleanup a la deconnexion (sendBeacon)
- Long Polling : Structure events coherente avec SSE
- Accessibilite : Region ARIA live pour lecteurs d'ecran
Base de donnees
update-1-82-00.sqlv1.81.12 2026-01-12
Corrige
- Rate limiting atomique avec script Lua (evite cles orphelines sur crash)
- BLPOP draine les DEUX queues (evite perte events broadcast)
- TTL queue ne reset plus a chaque push (corrige fuite memoire)
- Connexion Redis fermee proprement avant null (corrige fuite socket)
- Guard contre ajustements interval concurrents (race condition)
- Debounce render avec max wait time (evite report infini)
- padStart() remplace par code compatible IE11
Base de donnees
update-1-81-12.sqlv1.81.11 2026-01-12
Corrige
- Fuite memoire PresenceDetector/UI - destroy() cleanup dans cleanupRealtime()
- Boucle SCAN infinie dans presence_heartbeat.php:230
- Race condition switch SSE/Long Polling - guard _switchingTransport
- markUserActive() manquant dans long_poll.php
Base de donnees
update-1-81-11.sqlv1.81.10 2026-01-12
Corrige
- Boucle infinie dans sse_planning.php SCAN fallback (CRITIQUE)
- Long Polling recoit maintenant les events heartbeat presence
- Check EventSource redondant supprime dans JS client
Ajoute
- Classe EncodingHelper centralisee pour conversion UTF-8
- Endpoint SSE health check (/process/sse_healthcheck.php)
- Rate limiting endpoint Long Polling (60 req/min)
Base de donnees
update-1-81-10.sqlv1.81.09 2026-01-12
Ajoute
- Long Polling : Support fallback pour proxies corporate bloquant SSE
- Nouvelle classe class_longpoll_queue.inc (queue Redis)
- Integration dans RealtimeNotifier pour publish vers queue
- Nouvel endpoint long_poll.php pour clients
- Fallback automatique quand SSE echoue
Base de donnees
update-1-81-09.sqlv1.81.08 2026-01-12
Corrige
- SSE/Proxy : Compatibilite proxies corporate amelioree
- Header Pragma: no-cache
- Header Expires: 0
- charset=utf-8 dans Content-Type
- X-Content-Type-Options: nosniff
- Access-Control-Allow-Origin: *
Base de donnees
update-1-81-08.sqlv1.81.07 2026-01-12
Corrige
- SSE/Cloudflare : Header Transfer-Encoding: chunked supprime (conflit Apache)
- SSE : Ordre output buffering corrige dans sse_planning.php ET sse_streams.php
- SSE : Padding 16KB envoye apres desactivation buffering
Base de donnees
update-1-81-07.sqlv1.81.06 2026-01-12
Corrige
- SSE/Cloudflare : Headers Transfer-Encoding: chunked et Content-Encoding: identity pour forcer streaming
- SSE/Presence : Activation de sse_streams.php (Redis XREAD) par defaut - meilleur blocage que subscribe()
Technique
- sse_planning.php et sse_streams.php: ajout headers chunked/identity
- notion-layout.js: _useStreamsEndpoint = true par defaut
v1.81.05 2026-01-12
Corrige
- SSE/Cloudflare : Ajout padding 2KB initial pour forcer flush buffer Cloudflare
- SSE/Presence : Correction de l'encodage UTF-8 pour JSON (ISO-8859-1 vers UTF-8)
- SSE/Presence : Support des Event ID pour la reconnexion SSE (Last-Event-ID)
- SSE/Presence : Gestion des messages vides (evite JSON errors)
- SSE/Presence : Headers Cache-Control renforces (no-transform)
Performance
- Reduction du timeout SSE de 120s a 90s pour compatibilite Cloudflare
- Reduction de l'intervalle heartbeat de 30s a 15s pour meilleure detection
Base de donnees
update-1-81-05.sqlv1.80.14 2026-01-12
Corrige
- SSE/Presence - Corrections critiques Phase 1 (v1.81.01)
- SSE/Presence - Fiabilité système utilisateurs en ligne (v1.81.00)
Base de donnees
update-1-80-02.sqlupdate-1-80-06.sqlv1.80.13 2026-01-12
Ajoute
- SMS inscription pour Chrono (v1.81.00)
Corrige
- SMS inscription - correction bug empty() sur GObject
Base de donnees
update-1-80-02.sqlupdate-1-80-06.sqlv1.80.12 2026-01-11
Ajoute
- Auto-generate changelog on merge to master
Corrige
- Add missing SQL migration files to update folder
- Correct version to 1.80.10 (resolve version timeline divergence)
Base de donnees
update-1-80-02.sqlupdate-1-80-06.sqlv1.80.11 2026-01-11
Corrige
- Correction de la version (resolution de la divergence de timeline de version)
- Ajout des fichiers de migration SQL manquants dans le dossier update
v1.80.10 2026-01-11
Corrige
- Correction de la version pour resoudre la divergence de timeline
v1.80.06 2026-01-10
Ajoute
- Boutons zoom +/- dans la toolbar PC
Performance
- Optimisations v2.7 finales pour l'animation de zoom
- Animation frame-split v2.6 pour eliminer les reflows synchrones
- Animation zoom v2.5 avec application CSS differee en idle
- Pause de l'enregistrement rrweb pendant l'animation de zoom
- Retarget de l'animation au lieu de redemarrer pour eviter les reflows
- Classe no-record pendant l'animation zoom pour prevenir le lag rrweb
- Optimisation animation zoom: localStorage differe + dimensions cachees
- Echelle RELATIVE pendant l'animation pour eviter le reflow de reset CSS zoom
- Animation zoom acceleree GPU avec transform
- Debounce de l'invalidation du cache DragStateController pendant l'animation zoom
Corrige
- Gestion correcte de l'interruption de l'animation zoom pour prevenir la desync
- Reset du CSS zoom a 1 avant animation pour prevenir le scaling cumulatif
v1.80.05 2026-01-09
Corrige
- Changement du label du bouton panier de "Ajouter au panier" a "Deplacer vers le panier" pour les taches planifiees
v1.80.04 2026-01-08
Ajoute
- Numero de version dans le footer de la page de login
- Auto-upgrade de la base de donnees et systeme de notification de version ameliore
Corrige
- Gestion gracieuse des incompatibilites de version pour les requetes SSE/API
- Corrections de session et notifications de version
Branding
- Changement du titre Changelog SoPlanning vers Changelog Chrono
v1.80.03 2026-01-08
Ajoute
- Page changelog accessible depuis la page de login sans authentification
Corrige
- Rebranding complet vers Chrono et corrections de bugs critiques
- Variables manquantes pour le template changelog public
- Initialisation Smarty pour la page changelog publique
- Cache bust pour presence-ui.js et zoom-manager.js
- Erreurs console sur la page changelog et pages non-planning
- Scroll de la page changelog - fermeture correcte des tags notion-layout
- Erreur base de donnees API version.php et prevention du double chargement de scripts
Experience utilisateur
- Amelioration du layout changelog public
Branding
- Remplacement du copyright SOPlanning par Chrono
v1.80.02 2026-01-07
Ajoute
- Phase 3: Geste swipe-to-close pour le panneau panier
- Phase 3: Changelog ameliore avec cache et ameliorations markdown
Corrige
- Phase 2: Ameliorations de robustesse de version-check.js
- Correction comprehensive pour le probleme de blocage du bouton FAB
- Utilisation de touchend pour le bouton FAB pour contourner le touch polyfill
- Prevention du ghost click apres swipe-to-close
- Reset des cartes expansees lors de la fermeture du panneau panier
- Nettoyage des CSS dupliques et conversion des console.log en _log()
Securite
- Phase 1: Masquage des informations de version et suppression de l'empreinte systeme
- Corrections de securite et bugs du systeme de notification de mise a jour
Experience utilisateur
- Phase 4: Ameliorations d'accessibilite et i18n
v1.80.01 2026-01-07
Ajoute
- Phase 2: Ameliorations UX du panneau panier avec animation d'ouverture/fermeture
Corrige
- Corrections diverses apres deploiement v1.80.00
v1.80.00 2026-01-07
Ajoute
- Deploiement transparent : Detection automatique des mises a jour
- Sessions Redis persistantes : Les sessions survivent aux redemarrages Docker
- Notification de mise a jour : Banniere informative lors d'une nouvelle version
- Page Changelog : Historique des versions accessible depuis l'interface
/api/version.php pour verification de versionAmeliore
- Messages d'erreur plus explicites lors des mises a jour
- Redirection vers login avec message informatif apres deploiement
- UX utilisateur lors des transitions de version
Technique
- Configuration Redis sessions via variables d'environnement
version-check.js pour detection frontendapp_version en session pour comparaisonv1.79.24 2026-01-07
Corrige
- Alignement indicateur presence avec settings
- Logique restrictive pour droits modification taches
- Correction sauvegarde profils de droits
- Correction erreur JavaScript dans formulaire profil
- Warnings PWA manifest start_url/scope
v1.79.23 2026-01-06
Corrige
- Ameliorations diverses de stabilite
- Corrections de bugs mineurs
v1.79.22 2026-01-06
Ajoute
- Cache statique des droits de profils pour eviter les requetes repetees
Corrige
- Performance amelioree sur le chargement des droits utilisateurs
v1.79.20 2026-01-06
Corrige
- Corrections des bugs B1-B5 identifies dans la gestion des droits
Base de donnees
update-1-79-20.sqlv1.79.19 2026-01-06
Base de donnees
update-1-79-19.sql - Corrections schema profilsv1.79.17 2026-01-06
Base de donnees
update-1-79-17.sqlv1.79.14 2026-01-06
Base de donnees
update-1-79-14.sqlv1.79.00 2026-01-05
Ajoute
- Nouvelle version majeure avec ameliorations de la gestion des droits
Base de donnees
update-1-79-00.sqlupdate-1-79-01.sqlv1.78.04 2025-12-30
Base de donnees
update-1-78-04.sqlVersions anterieures
Pour les versions anterieures, consultez l'historique Git du projet.