Lancement du module Aether : stockage personnel chiffre accessible sur /aether
Gestion complete de fichiers et dossiers avec hierarchie, corbeille et restauration
Chiffrement optionnel AES-256-GCM a la volee pour les fichiers sensibles
Historique de versions par fichier avec restauration en un clic
Partage public par lien token avec protection par mot de passe, expiration et limite de telechargements
Interface de previsualisation inline pour images et PDF
Barre de quota de stockage par utilisateur (defaut 5 Go) avec gestion admin
Design sombre aligne LUMA (meme palette de tokens que le reste de la plateforme)
Aether — Synchronisation client
API delta feed : GET /sync/delta?cursor=<ISO> retourne uniquement les changements depuis le dernier cursor
Snapshot complet GET /sync/state pour le premier sync ou full rescan avec quota courant
Endpoint GET /files/:id/meta pour comparer les hashes SHA-256 sans telecharger le fichier
Upload chunked avec sessions persistantes (init / chunk / commit / cancel) pour gros fichiers et connexions instables
Verification d integrite SHA-256 au commit de session avec rejet si checksum invalide
Les reponses delta et state incluent desormais le champ path (chemin complet calcule par CTE recursive SQL)
Detection automatique du type MIME par extension au commit si le client n en fournit pas (png, jpg, pdf, mp4, zip...)
Acceptation flexible des noms de champs a l init de session : original_name/name/filename, total_size/size/fileSize, total_chunks/chunks
Correction schema : colonnes reelles aether_files (filename, mime, folder_id, stored_name) alignees dans toutes les requetes sync
Correction : suppression de updated_at inexistant sur aether_upload_sessions dans l increment de chunks
Orion — Systeme de salves Agent KO
Les alertes Discord Agent OFFLINE ne sont plus envoyees immediatement a la premiere detection
Nouveau systeme de salves : 3 verifications consecutives en timeout requises avant notification Discord
Evite les fausses alertes pour les agents qui se reconnectent en moins d une minute
Le seuil est configurable via la variable d environnement ORION_AGENT_KO_DISCORD_SALVE (defaut : 3)
Elyn — Alertes IP Discord supprimees
Les alertes d activite suspecte Elyn (elyn.suspicious_activity) ne declenchent plus de notification Discord
Toutes severites concernees (warning et critical), les tickets et l audit interne restent inchanges
Reduit significativement le bruit dans les canaux de monitoring Discord
Orion — Validation UUID route agents
La route GET /admin/orion/agents/:id valide desormais le format UUID avant la requete PostgreSQL
Retourne un 400 propre au lieu d une erreur SQL pour les identifiants malformes ou tronques
Assistant Elyn — Patch hors-domaine
L assistant ne repond plus avec un rapport complet sur des questions hors-domaine (calculs, bavardage, etc.)
Nouveau handler pour les reponses negatives ("Non", "non merci", etc.) : accuse de reception court sans dump de contexte
Guard post-inference ML : si l intent reste incertain apres analyse, reponse de perimetre claire plutot que fallback tout-contexte
Dashboard Admin — Tableau de bord avec graphiques
Nouveau panneau de graphiques integre au dashboard admin : trafic 24h (courbe), evenements Shield 7j (barres), jobs (donut), audit 7j (donut)
Visualisations en temps reel servies par Chart.js heberge localement (/js/chart.min.js) — aucune dependance CDN externe
Endpoint /api/admin/overview/charts avec cache 30s pour les series temporelles
Mise en page 4 colonnes responsive (grille CSS) avec breakpoints 1200px / 760px
Admin ACL — Granularite par module
Ajout d ACL dediees pour Tickets, Sante systeme et Configuration au lieu du fallback global admin.panel
Nouvelle matrice page /admin : Orion pilote par orion.panel, Tickets par admin.tickets.view, Sante par admin.health.view, Configuration par admin.config.manage
Lock visuel coherent dans le dashboard (cartes verrouillees selon les permissions reelles)
Securite — Surface API admin reduite
L endpoint /api/admin/overview reste protege strictement par admin.panel
Extraction des metriques tickets vers un endpoint dedie /api/admin/overview/tickets pour decoupler la carte dashboard des ACL du module Tickets
Nino — Optimisation ninoReleaseNotifier
Requete lente (~1.5s) sur nino.releaseNotifier.find remplacee par deux requetes paralleles ciblees via Promise.all
Fusion, deduplication et tri effectues en memoire JS apres les deux requetes independantes
Recuperation groupee des titres de series en une seule requete SQL (ANY($1::uuid[]))
Anti-join reecrit avec NOT EXISTS au lieu de LEFT JOIN ... IS NULL pour une semantique plus claire
Authentification — Suppression des notifications de connexion
Suppression de la notification flash "Connexion reussie" generee a chaque login reussi
Reduisait le bruit dans le centre de notifications sans apporter de valeur utilisateur
Aether — Architecture & fichiers
app/modules/aether/ : module complet avec web.routes.js, api.routes.js, config.js, version.js (0.1.0)
Donut cutout 72% avec centre absolu positionne (transform: translate(-50%, -58%)) pour affichage du total sans debordement
app/routes/api/admin/overview.js : GET /charts avec 3 requetes paralleles SQL (trafic par heure, shield par jour, audit par jour)
Admin ACL — Migration 176 & cablage routes
Migration 176_admin_module_acl.sql : creation des permissions admin.tickets.view, admin.health.view, admin.config.manage
Attribution automatique des 3 permissions aux roles admin et luma (idempotent ON CONFLICT)
Routes web admin branchees sur ACL dediees : /admin/tickets, /admin/health, /admin/config
Routes API admin branchees sur ACL dediees : /api/admin/tickets, /api/admin/health, /api/admin/config
app/routes/admin/index.js : adminAcl du dashboard aligne sur les nouvelles cles, avec Orion mappe sur orion.panel
Hardening API — Overview maintenu + endpoint dedie tickets
app/routes/api/admin/overview.js : endpoint overview maintenu actif sous requireACL(admin.panel)
Ajout GET /api/admin/overview/tickets (ACL admin.panel, cache court) pour alimenter la carte Tickets du dashboard sans dependre de /api/admin/tickets/stats