Changelog
Version actuelle : v3.8.1
v3.6.1
DernièreCorrigé
- Un dossier sans nom ne fait plus tomber l'application. Depuis la 3.6.0, un dossier arrivé d'un autre appareil, dont la description ne portait pas encore de nom lisible, faisait planter toute la fenêtre : la barre latérale lisait ce nom absent pour savoir s'il s'agissait d'une boîte « À ranger ». Le dossier s'affiche désormais sans nom en attendant, et le journal dit lequel.
v3.6.0
Nouveau
- « À ranger » : Filarr propose une place pour chaque fichier qui attend. La page reprend la boîte de réception et tout dossier nommé « À trier », « Inbox » ou « Téléchargements », propose un dossier pour chaque fichier et dit pourquoi (« la suite de facture-0412.pdf », « comme les relevés d'août et de juillet »). Seules les places vraiment sûres sont cochées d'avance : Filarr mesure sa propre justesse sur ce que vous avez déjà rangé. Elle signale aussi les doublons à l'octet près, les dossiers vides, ceux qui dorment depuis six mois et les « Nouveau dossier (2) ». Rien ne bouge sans votre accord, chaque geste s'annule, et tout est calculé sur votre appareil.
- Une page « Dossiers » : tous vos dossiers, ce qu'ils pèsent et ce qui y bouge. Trois vues — Arborescence (taille, dernière activité, synchronisation, filtres d'un clic), Colonnes (de dossier en dossier jusqu'à l'aperçu du fichier, au clavier comme à la souris) et Espace (une carte où chaque bloc a la taille de ce qu'il occupe). On y déplace un dossier par glisser-déposer, et chaque geste s'annule. « Importer un dossier… » fait entrer une arborescence entière de votre ordinateur, chiffrée comme tout import.
- Les tâches des coffres partagés entrent dans l'onglet Tâches, avec le nom de leur coffre. « Mes tâches » et « Aujourd'hui » n'en montrent que celles qui vous sont assignées. On les coche, les date et les assigne sans ouvrir la note : la modification passe par la note partagée, comme une frappe, et rien de ce qu'écrit un autre membre n'est écrasé.
- Rapports d'erreur : un interrupteur, et un code par profil. « Envoyer les rapports d'erreur » se coupe dans Réglages › Système, et chaque profil a son propre code anonyme, au lieu d'un code commun à tous les profils de l'ordinateur, profil leurre compris.
Amélioré
- « Retour » revient là d'où l'on vient. Chaque onglet tient son propre historique : le dossier d'avant, la page Dossiers, l'accueil. Alt + ← et Alt + → reculent et avancent dans ce même historique.
- Ouvrir une note ne fait plus attendre. Avec 2 000 notes, chaque ouverture figeait l'écran une seconde, le temps de recalculer les étiquettes suggérées sur toutes les notes ; elle s'ouvre désormais en quelques centièmes de seconde, avec les mêmes suggestions.
- Un nouveau profil local naît chiffré : il demande son mot de passe et donne sa phrase de récupération de 12 mots, comme au premier lancement.
- La barre des vues des Notes devient une ligne d'en-tête qui ne recouvre plus la note, et nomme ses vues : Liste, Mosaïque, Kanban, Pense-bêtes, Base, Calendrier, Graphe. Le panneau d'une tâche se lit en entier et s'élargit en tirant son bord.
- Désinstaller sous Windows garde vos profils. La désinstallation effaçait le dossier de données, donc tous les profils locaux, sans prévenir ; une réinstallation les retrouve désormais.
Corrigé
- Une note ou un document de coffre partagé n'écrase plus en silence ce qu'un autre a enregistré. Si la note a été enregistrée hors de l'édition à plusieurs (un appareil sans relais, une version plus ancienne), un bandeau le dit dès l'ouverture, « Charger la version plus récente » remplace l'ancien texte, et un enregistrement fait malgré tout ouvre l'écran d'arbitrage. Un document qu'on n'a pas touché ne se dit plus « modifié ».
- Ouvrir une note ne la modifie plus. Une note qui finissait par une liste, un titre ou un tableau recevait un paragraphe vide à l'ouverture, changeait de date et repartait à la synchronisation — et dans un coffre partagé, chez tous les membres.
- « Mot de passe oublié » rouvre vraiment vos fichiers. Deux parcours laissaient un compte avec une phrase de 24 mots qui ne rouvrait rien ; l'assistant applique désormais la phrase qu'il montre, et dit clairement quand une phrase ne rouvre pas les fichiers.
- Trois pertes de contenu dans l'éditeur : Ctrl+Z pouvait remplacer le corps d'une note par celui d'une autre, créer une sous-page faisait planter l'éditeur, et l'outil Texte du mode dessin laissait la frappe remplacer le bloc sélectionné.
- Tâches : plus de pertes silencieuses en les modifiant. Une tâche mensuelle du 31 ne glisse plus au 30 puis au 28 ; assigner pendant qu'un autre membre écrit ne vise plus la mauvaise tâche ; au-delà de huit membres, tout le monde est assignable ; une mention ou une date dans un titre n'est plus réécrite en texte brut.
- Un fichier déplacé garde ses étiquettes, sur le bureau comme sur le web, et le web déplace enfin réellement un dossier.
- L'historique des versions ne se perd plus en changeant de profil, et un import ne fait plus recharger toutes les notes.
- Un dossier protégé par mot de passe le demande, quel que soit le chemin : accueil, page Dossiers, recherche ou favoris.
- Une image centrée ou habillée dans une note l'est aussi sur sa page publique.
- Côté serveur, déjà en ligne : la phrase de récupération est vérifiée mot par mot (le serveur n'en lisait que les onze ou douze premiers) ; une personne bloquée ne revient plus dans vos invitations ; un abonnement annuel ne se lit plus échu au bout d'un mois ; « Signaler cette page » fonctionne sur les pages publiques.
v3.5.9
Nouveau
- Un onglet « Tâches » dans la barre latérale, façon Evernote, en liste, en tableau et en calendrier. Les tâches de toutes les notes, avec les onglets Mes tâches, Carnets, Notes, Aujourd'hui et Assignées, des tris et des filtres. En plus : un tableau par étape ou par jour, un calendrier mois et semaine, glisser une tâche pour la replanifier, des actions groupées, et « Voir dans la note » qui mène à la tâche elle-même.
- Des tâches complètes : échéance avec heure et durée, répétition (« Passer cette occurrence » la décale sans la terminer), jusqu'à cinq rappels, drapeau, priorité, étape, description et sous-tâches. Saisie rapide en langage naturel : « Appeler Léa demain à 15h !haute #travail ». Les tâches restent dans leurs notes et se synchronisent avec elles, avec un identifiant commun au bureau, au web et au mobile.
- Les dossiers dans la barre latérale : l'arborescence se déplie et crée un dossier d'un clic. La Corbeille passe en bas de la navigation.
Amélioré
- Une seule langue à l'écran. Un testeur anglophone voyait du français dans l'interface anglaise : aperçus, historique des versions, raccourcis, dates, tailles, notifications. Plus d'un millier de textes passent désormais par les traductions, dans les deux sens. Sur un système ni français ni anglais, l'application démarre en anglais.
- La barre des vues des Notes dit de quoi elle parle : « Afficher les notes en » précède ses icônes, puisque ces vues montrent toutes les notes et non celle qui est ouverte.
Corrigé
- Les collections fonctionnent de nouveau. Depuis le 16 mars, aucune ne pouvait être créée (« Failed to create collection ») ; elles se créent, se modifient, se dupliquent, et « Ajouter des fichiers » permet enfin d'en remplir une.
- La note du jour et « @aujourd'hui » suivent le jour local. Le jour était calculé en UTC : juste après minuit en France, la note du jour était celle de la veille.
- Le bouton d'impression des codes de secours ne faisait rien, et Ctrl+Maj+N depuis le Kanban créait une note invisible.
v3.5.8
Amélioré
- Le plafond de suppressions passe de 120 à 1 000 par cinq minutes. Il vaut pour le compte entier : vider un dossier de photos l'épuisait, et le téléphone voyait ensuite ses propres suppressions refusées. Déjà en ligne côté serveur.
- Les images ne voyagent plus avec les notes. Le chargement des notes transportait toutes leurs images, en double, jusqu'à l'écran ; il ne transmet plus que des références, et une image n'est lue que pour être affichée. Tout ce qui sort de l'application — export, page publiée, dépôt en coffre partagé, presse-papiers, versions — les réinsère. Le ménage quotidien ne fige plus la fenêtre. Bureau d'abord, l'application web au prochain déploiement.
Corrigé
- Une publication de manifeste refusée ne met plus de fichiers à la corbeille. Six images téléchargées y sont parties le 22 septembre : leurs octets étaient bien envoyés, mais le manifeste qui les annonce n'avait pas été publié, et le cycle suivant a lu leur absence du nuage comme une suppression faite ailleurs. Une absence ne compte plus comme suppression que pour ce que l'appareil a lui-même annoncé avec succès.
- Deux bureaux ouverts sur le même compte ne se renvoient plus le manifeste. Chacun publiait sa seule vue, effaçant ce que l'autre venait d'ajouter, et la notification relançait l'autre trois secondes plus tard — 46 versions en 80 secondes, sans rien transférer. Un disjoncteur coupe en plus toute boucle de ce genre.
- Plusieurs comptes sur un poste ne se mélangent plus. « Ajouter un compte » laissait tourner la synchronisation du profil qu'on quittait, et un cycle pouvait partir avec la session et la clé de l'autre compte. Un compte qui change d'adresse reste reconnu.
- Un dossier dont le dossier parent a disparu s'affiche à la racine. Il n'apparaissait nulle part — ni à l'accueil, ni dans l'arborescence, ni à la corbeille — alors que ses fichiers étaient bien là. Rien n'est réécrit : si le parent revient, le dossier retrouve sa place.
v3.5.7
Corrigé
- Plus de boîte d'erreur « WebSocket was closed before the connection was established » à la fermeture. Fermer le canal de notification pendant son ouverture émettait une erreur un instant plus tard, sans personne pour la recevoir.
v3.5.6
Corrigé
- L'application ne se fige plus au démarrage sur un gros historique de notes. L'observateur du coffre surveillait aussi les 6 635 répertoires de versions : neuf secondes de marche, et jusqu'à cent secondes sans répondre. Il ne surveille plus que ce que la synchronisation lit.
- Les historiques des notes disparues sont ramassés. Les versions d'une note supprimée restaient pour toujours ; elles sont retirées trente secondes après le chargement des notes, jamais celles d'une note vivante.
v3.5.5
Amélioré
- Le premier lancement ne fige plus la fenêtre. Le paquet embarquait toutes les dépendances de développement : 563 → 49 Mo, et l'installeur 211 → 112 Mo. Écran d'amorçage immédiat, synchronisation démarrée une fois la fenêtre chargée, recherche de mise à jour après une minute.
v3.5.4
Corrigé
- Le plafond de suppressions se reconnaît au seul statut du serveur. Un serveur plus ancien, ou un intermédiaire qui réécrit la réponse, ne transforme plus le refus en « panne de transfert ».
v3.5.3
Corrigé
- Un dossier supprimé depuis un autre appareil ne revient plus. La règle des suppressions rangeait le descriptif d'un dossier parmi les fichiers techniques du profil, ceux que personne ne supprime jamais : un dossier effacé depuis le téléphone était republié à chaque cycle, indéfiniment, avec tout son contenu. Il part maintenant à la corbeille locale en entier, récupérable.
- Supprimer beaucoup de fichiers d'un coup ne bloque plus vos autres appareils. Le serveur plafonne les suppressions à 120 par cinq minutes, et ce plafond vaut pour le compte entier : vider un gros dossier depuis le bureau l'épuisait pour le téléphone, qui affichait une erreur de synchronisation. Le bureau s'arrête au premier refus et reprend au cycle suivant, et le refus dit qu'il s'agit du plafond, pas d'une panne.
v3.5.2
Corrigé
- Une suppression se propage, elle ne ressuscite plus. Deux appareils d'un même profil se renvoyaient les fichiers supprimés indéfiniment. La pierre tombale reste trente jours ; un fichier que le nuage ne porte plus part à la corbeille locale (récupérable) au lieu d'être renvoyé ; restaurer depuis la corbeille renvoie le fichier. Un garde-fou évite de vider un coffre si le manifeste distant est simplement réinitialisé.
- Une note sans tableau de tags ou de liens ne fait plus planter les vues. Les notes venues d'un autre appareil pouvaient arriver sans ces tableaux, et la vue base de données tombait en écran rouge.
- La boîte de réception ne dit plus « élément supprimé » pour un type d'élément qu'elle ne connaît pas.
v3.5.1
Nouveau
- Publier une note sur le web. Dans le menu « … » de la page : la note, et au choix ses sous-pages, devient une page lisible par quiconque a le lien, sans compte. Elle est chiffrée avant d'être envoyée et la clé voyage dans le lien, comme Send ; mot de passe et expiration facultatifs, sommaire, badge. Le dialogue dit si la page est à jour ou modifiée depuis la publication, republie en un clic, dépublie. Trois pages en ligne en Gratuit, vingt en Solo, sans plafond au-delà.
- Une boîte de réception. La cloche du haut rassemble tout ce qui vous concerne dans les coffres partagés : mentions, réponses à vos commentaires, nouveaux commentaires sur vos pages, fils résolus, tâches assignées — avec onglets, archivage, et le clic qui ouvre l'élément. Le serveur ne reçoit que des identifiants, jamais un texte.
- Les commentaires deviennent des fils, avec des réactions. Répondre, réagir, résoudre le fil entier et le rouvrir — dans une note personnelle comme dans une note de coffre. Les notes d'avant restent lisibles telles quelles.
- Une tâche s'assigne à quelqu'un, avec une échéance. Au survol d'une case à cocher, « + Assigner » ouvre un choix de personne et de date. La puce affiche « Léa M. · 30 sept. », en rouge quand la date est passée, et la vue Tâches gagne « Les miennes » et « En retard ».
- Une ligne de base de données devient une page. « Créer la page » ouvre une note ordinaire qui porte, sous son titre, les propriétés de la ligne, modifiables sur place. Rien n'est ajouté à la note : c'est la base qui la désigne.
- Rechercher et remplacer dans la note (Ctrl+F) : occurrences surlignées, compteur « 3 / 12 », respect de la casse, « Remplacer » et « Tout remplacer ».
- Les images s'ouvrent en plein écran. Double-clic, ou « Ouvrir en plein écran » : ← / → parcourent toutes les images de la note, la molette zoome, 0 revient à la taille réelle, et Copier / Enregistrer sont sous la main.
- Un menu « … » sur la page pour les réglages qu'on change le plus : police, petit texte, pleine largeur, numéros de ligne, machine à écrire. Ce sont des préférences d'affichage : rien n'entre dans la note.
Amélioré
- L'éditeur se manie comme Notion. La poignée « ⋮⋮ » gagne Déplacer vers le haut / le bas, Copier le lien du bloc et une palette de couleurs ; le menu bulle gagne « Transformer en » et « Commenter ». Au clavier : Ctrl+Maj+↑/↓ déplace, Ctrl+D duplique, Ctrl+Maj+0 à 8 transforme — y compris en AZERTY.
- Plusieurs blocs se sélectionnent d'un coup. Échap sélectionne le bloc courant, Maj+↓ étend au voisin, Ctrl+A prend toute la note ; sur la plage, supprimer, dupliquer, déplacer, transformer, copier et couper agissent d'un seul geste.
- Les tableaux ont enfin leurs commandes à l'écran : insérer une ligne ou une colonne, basculer l'en-tête, supprimer la ligne, la colonne ou le tableau, dès que le curseur est dans une cellule.
- Le tableau se regroupe, et les filtres connaissent le OU. Regrouper par choix, case, personne, mois ou texte, avec des en-têtes repliables et les calculs de pied par groupe ; et des groupes de conditions, chacun avec son ET ou son OU.
- L'application démarre avec moitié moins de code à charger. Les deux langues, le convertisseur Word, les diagrammes, les formules, la coloration syntaxique et le lecteur PDF partaient d'un bloc avant le premier écran, que vous ouvriez ou non un seul de ces fichiers. Mesuré sur le build web : 8,4 Mio → 3,9 Mio au démarrage.
- Les fichiers de plus de 64 Mio s'ouvrent enfin depuis le navigateur : le web lit désormais les fichiers que le bureau découpe en blocs, déchiffrés et vérifiés bloc à bloc.
- Sous Linux, la fenêtre ne scintille plus : le bureau repasse par X11, et Paramètres → Bureau → Affichage sous Linux laisse choisir le backend ou couper l'accélération matérielle. Si le processus graphique meurt trois fois de suite, l'accélération est coupée et l'application relancée, au lieu de disparaître sans un mot.
- Les profils que le nuage porte et que votre appareil n'a pas se voient enfin — et se suppriment. Ils n'apparaissaient nulle part et faisaient échouer une restauration à chaque lancement, sur chaque appareil.
Corrigé
- Les vues Kanban, mosaïque, tâches, calendrier, carte mentale et base de données parlent français. Cent soixante-huit libellés étaient appelés avec une clé absente des deux langues, et l'anglais par défaut s'affichait. La vue Tâches n'était pas traduite du tout.
- La barre d'outils de l'éditeur parle français : ses vingt-six infobulles étaient en anglais quelle que soit la langue, comme les dates relatives de la liste.
- Cent quatre-vingts libellés français retrouvent leurs accents — réglages, corbeille, profils, aperçu.
- Le calendrier et les notes périodiques parlent la langue de l'interface, et une note « Semaine 38, 2026 » créée en français reste reconnue comme périodique après un passage en anglais.
- Le corps d'une page publiée est propre : le titre n'est plus doublé, la page rend son propre sommaire, et les notes de bas de page sont numérotées et rassemblées en fin de document.
- Une page à mot de passe s'ouvre avec son mot de passe. Le sel et le contenu chiffré partaient en deux requêtes ; quand la seconde échouait, la page gardait un sel qui n'ouvrait plus rien et aucun mot de passe ne marchait plus.
- Les cases à cocher et boutons radio natifs redeviennent visibles. Le reset de styles leur retirait tout dessin, et leur état disparaissait dans une trentaine de dialogues.
- Un profil neuf ne montre plus un dossier « Folder notes » : le répertoire du magasin de notes était pris pour un dossier du coffre et affiché sur l'accueil.
v3.1.0
Nouveau
- Les @mentions dans les coffres partagés : tapez « @ » dans une note pour proposer les membres du coffre, et la personne nommée est prévenue — une cloche dans la barre, un courriel, et un clic qui ouvre la note. La notification dit dans quelle note et quel coffre : le titre est déchiffré sur votre appareil, jamais par nos serveurs.
- Un nom d'affichage (Réglages → Compte) à la place de votre adresse, dans le trombinoscope des coffres et dans les puces de mention. Videz-le pour revenir à votre adresse.
- Les clés d'accès : connectez-vous avec l'empreinte, le visage ou le code de votre appareil, sans mot de passe, sur app.filarr.com. Une clé d'accès ouvre le COMPTE, jamais le coffre — la clé qui déchiffre vos fichiers se dérive de votre mot de passe et reste sur votre appareil.
- « Rechercher une mise à jour » à la demande, dans Réglages → À propos. Filarr vérifiait déjà seul toutes les quatre heures ; il ne le disait pas, et on ne pouvait pas le lui demander.
Amélioré
- Les transferts partent en parallèle — trois de front, et la place se libère dès qu'un transfert finit au lieu d'attendre le plus lent du lot.
- « Ce compte est utilisé sur 14 appareils » disait faux : l'identité d'un appareil est désormais votre machine et non votre profil, les sessions sans activité depuis trente jours sont marquées inactives et se ferment d'un bouton, et les lignes mortes s'en vont seules.
- Changer de profil depuis le menu de compte ouvre ce profil, au lieu de renvoyer au portail des espaces puis au sélecteur.
- Un profil neuf range ses notes une par une dès sa création, et le rangement ne se bloque plus lui-même sur un appareil qui comptait ses propres envois comme ceux d'un autre.
- Coffres partagés : libellés scellés lisibles et renommables depuis le bureau, journal qui distingue repeindre de renommer, corbeille qui est un geste sur des éléments et non sur le coffre.
- Organisation : le SSO a sa poignée sur le bureau, la fermeture prévient, purge jusqu'aux octets et se rétracte, et l'abonnement annuel est enfin souscriptible alors qu'il était tarifé et annoncé à -17 %.
Corrigé
- Ouvrir une note ne la marque plus « modifiée », et l'horloge d'une note ne bouge que si quelque chose bouge : une note ré-estampillée sans raison gagnait contre une vraie modification faite ailleurs.
- Plus d'aller-retour de dix mégaoctets toutes les cinq minutes entre deux appareils, plus de copies de conflit fabriquées à chaque tour, et un document d'édition à plusieurs resté en arrière ne fait plus foi contre la version la plus récente.
- Le bureau exécutait un programme du 2 septembre : la compilation écrivait à côté de ce que l'application charge, et les nouveautés n'apparaissaient jamais.
- Dans le navigateur, la puce « Organisation » ne reste plus allumée sur un compte personnel, et « Profil non rattaché » disparaît dès que le rattachement a eu lieu.
- La dispense de second facteur ne survit plus à « déconnecter tous les appareils » ; l'étiquetage des fichiers ne meurt plus à chaque rechargement ; le rangement des carnets fait au téléphone ne redevient plus alphabétique ici.
v3.0.0
Nouveau
- Atelier de thèmes : composez votre propre apparence — fond, surfaces, texte, accent, bordures — avec aperçu en direct et trois décors de fond animés en plus des fonds unis. Un thème emporte désormais toute l’apparence : pas seulement les couleurs, mais aussi la police, les rayons et la disposition des barres.
- Accueil modulaire, quarante blocs plus loin : vingt blocs supplémentaires et vingt variantes des blocs existants, quatre dispositions intégrées de plus, et la disposition de base entièrement redessinée. Votre disposition peut être enregistrée sous son propre nom et retrouvée à côté des modèles fournis.
- Marché de modèles de mise en page : publiez votre accueil, installez celui des autres en un clic. Chaque paquet est signé de bout en bout — Filarr refuse d’installer ce qu’il ne peut pas vérifier.
- Une fiche par modèle : aperçu, galerie de quatre images, vignette en guise d’icône, capture réelle de la mise en page, description, pseudonyme d’auteur, badge officiel qui ne se prête pas, et les autres publications de l’auteur.
- Résolution de conflit bloc par bloc sur une note de coffre, avec le rendu final sous les yeux pendant qu’on choisit — au lieu d’un arbitrage aveugle entre deux versions entières.
Amélioré
- Mettre à jour une fiche du marché en un clic, et republier en choisissant sa version suivante au lieu de la taper. Un refus de publication nomme le bloc qui bloque et les chiffres en cause, avant même de tenter l’envoi.
- Une fiche retirée dit pour qui elle reste visible, et le catalogue passe à une vraie grille : colonne centrée, accents corrigés, largeur de lecture confortable.
- Une note s’ouvre dans la fenêtre si on la lit, dans l’éditeur complet si on l’écrit — et la note de coffre prend enfin l’habillage de l’éditeur, sans plus mentir sur ce qui est réellement enregistré.
- La colonne latérale montre un panneau à la fois au lieu de tout empiler, et la surface s’écarte en courbe autour de la barre flottante.
- Sur une carte de grille, le partage se lit d’un coup d’œil (silhouettes) et le cadenas se voit.
- Une invitation annulée ne garde plus un siège en otage, et le compteur de places dit ce qu’il compte réellement.
Corrigé
- Le décor de fond, jusque-là invisible faute d’être posé au bon endroit, s’affiche enfin ; et le halo du thème Minuit se ferme proprement quelle que soit la taille de la fenêtre.
- Régler la largeur de l’accueil n’empêche plus de publier la mise en page, et un bloc vide garde son cadre, son icône et sa phrase au lieu de disparaître — en occupant toute la rangée plutôt qu’une colonne sur douze.
- Écrire à deux dans une note de coffre fonctionne, et la note s’ouvre dans l’onglet Notes comme n’importe quelle autre.
- Corriger le rang de quelqu’un qu’on a invité fonctionne quelle que soit la moitié du geste déjà accomplie, et une personne invitée existe là où on la cherche — son lien d’invitation se retrouve.
- Une coupure réseau n’est plus confondue avec un refus d’accès au coffre, et un chargement qui échoue ne reste plus « en cours » indéfiniment : le message nomme le problème et offre le geste qui le règle.
- Les boutons de repli fonctionnent (la règle de style les ignorait), le rail latéral ne recouvre plus la page, les panneaux flottants ne se glissent plus dessous, et les menus du bas tiennent dans la fenêtre.
- Le panneau de réglages du graphe ne perd plus une ligne par section faute de barre de défilement, et retirer un favori se fait là où on l’a ajouté.
- Client web : une session de plus d’un quart d’heure n’est plus éjectée (le jeton d’accès est rafraîchi avant chaque appel au lieu d’être supposé valide), l’export et l’import de mise en page fonctionnent depuis le navigateur, deux ponts réservés au bureau ne sont plus montés sans garde de plateforme, et la page de réglages des partages ne retombe plus sur la liste des partages.
v2.35.0
Nouveau
- Une page « Gérer le coffre » par coffre partagé, à sa propre adresse : aperçu, membres, invitations, activité, réglages, clé, corbeille.
- Réglages par coffre — nom, description, plafond de taille, politique de corbeille — et statistiques : ce que le coffre contient, ce qu’il pèse, ce qu’il consomme.
- Geler un coffre : lecture seule immédiate pour tous les membres, le temps de régler un incident.
- Ajout direct d’un membre de l’espace, choisi dans une liste — plus besoin de retaper une adresse e-mail.
- Re-sceller les éléments restés sous une clé ancienne, pour qu’un arrivant puisse aussi lire le passé du coffre.
Amélioré
- Une seule ligne d’invitation qui annonce son issue — envoyée, expirée, refusée, acceptée — au lieu de quatre statuts éparpillés. Les invitations échues se voient et se réémettent.
- Qui reçoit un accès l’apprend, par courriel et sur son accueil, et l’invité sait avec quel compte ouvrir son invitation avant d’agir.
- Ce que font les autres arrive sans recharger la page, et les notes des coffres partagés se lisent depuis l’onglet Notes, dans le vrai éditeur.
- Vider la corbeille d’un coffre en un geste, et filtres d’activité pour retrouver un événement précis dans un fil chargé.
- Chaque onglet vide dit quoi faire, et une panne ne se déguise plus en vide : on sait si c’est calme ou cassé.
Corrigé
- Éditer une note à deux ne provoque plus de conflit, et une note se reconnaît d’un coup d’œil.
- Un admin de coffre invité dans un espace qu’il n’administre pas lit enfin l’annuaire dont il a besoin pour inviter.
- Le nom du coffre survit à une rotation de clé, au lieu de disparaître au premier retrait de membre.
- Sur le web, les notes s’affichent au rechargement d’un profil déjà déverrouillé.
v2.34.0
Nouveau
- Quatre vues sur une base de données de notes : tableau, tableau de bord, galerie, calendrier — chacune avec ses réglages — plus des colonnes calculées à partir des autres colonnes.
- Une fiche par ligne : cliquer sur une ligne l’ouvre en page complète, avec ses propriétés et son contenu.
- Modèles de notes intégrés, proposés à la création, qui exploitent réellement tout l’éditeur (callouts, bases, colonnes, toggles) au lieu d’être des squelettes vides.
- Mode sans distraction : l’interface s’efface, il ne reste que la note. Avec raccourcis clavier pour l’activer et pour partager une note.
- Envoyer une note vers un coffre partagé, avec un badge qui dit où vit la copie — et une note retient dans quels coffres ses copies sont parties.
Amélioré
- Un export Notion arrive entier : images, bases de données et pièces jointes comprises.
- Le Markdown collé ou importé devient de vrais blocs — titres, listes, tableaux, code, images — au lieu d’un pavé de texte.
- La couverture s’efface au défilement et la barre se recentre : l’en-tête rend une centaine de pixels dès qu’on commence à lire, et se replie en trois paliers au lieu de deux.
- Panneaux de notes au survol (réglable) pour garder la surface d’écriture dégagée, et une poignée de taille sur les blocs, en largeur comme en hauteur.
Corrigé
- La carte mentale n’oublie plus aucun titre imbriqué, cliquer sur un titre vise le bon, et le saut vers un titre se recale tant que la mise en page bouge encore.
- Les partages créés depuis l’application apparaissent sur le tableau de bord web et restent récupérables depuis un autre appareil — la clé de partage est scellée sur la conservation du compte, au format que le site sait ouvrir.
v2.33.0
Nouveau
- Un coffre partagé se manipule exactement comme un dossier : sélection multiple, glisser-déposer, corbeille, raccourcis — les mêmes gestes qu’ailleurs. Les coffres se rangent parmi les dossiers à l’accueil et s’ouvrent à leur propre adresse.
- Un fichier déplacé dans un coffre laisse un raccourci à sa place : vous retrouvez où il était, et un clic vous y ramène.
- Une seule boîte pour gérer l’accès à un coffre, au lieu de quatre chemins éparpillés.
Amélioré
- Reconnaître une personne d’un coup d’œil, par ses initiales et sa couleur, partout où elle apparaît.
- Les cartes de l’explorateur disent avec qui c’est partagé et ouvrent le coffre directement.
- Le nombre de personnes d’un partage se lit en une requête, sans les nommer — la liste ne ralentit plus l’affichage.
- Le panneau d’activité nomme ce qu’il transfère au lieu d’annoncer un fichier muet.
Corrigé
- Un coffre verrouillé refuse de rendre du clair, même hors de l’interface : la porte se ferme au niveau du cœur de l’application, pas seulement des écrans. Auparavant, verrouiller mettait surtout un écran devant une porte restée ouverte.
- Verrouiller ferme la porte d’abord, puis affiche l’écran — et ne perd plus la frappe en cours. L’écran dit désormais pourquoi il verrouille : inactivité, veille, verrouillage de session, geste manuel.
- Un modèle de bandeau n’emporte plus l’icône, la couverture et la note d’accueil du dossier auquel on l’applique.
v2.32.0
Nouveau
- Inviter quelqu’un dans un espace et lui donner accès à un coffre, en une fois : l’hôte déclare son intention au moment de l’invitation, et l’accès s’ouvre tout seul dès que la personne rejoint. L’application de l’hôte scelle seule ce qu’elle a promis — jamais avec une clé qu’elle n’a pas vérifiée, et le serveur reste incapable de fabriquer un accès.
- Le thème et la couleur d’accent suivent votre profil, pas l’ordinateur : deux profils sur la même machine ne se marchent plus dessus.
Amélioré
- L’accès en préparation porte un nom des deux côtés : celui qui invite voit à qui il ouvre, celui qui attend voit ce qui l’attend.
- Le menu slash retient les commandes récentes et les remonte en tête.
Corrigé
- Les préférences choisies à la première ouverture vont au profil, et se connecter ne redemande plus des choix déjà faits.
- L’écran de choix de profil défile au lieu de déborder hors de la fenêtre quand les profils sont nombreux.
- Un document plein ne peut plus être écrasé par un document vide : l’éditeur refuse et explique. Et un fichier illisible n’entre plus dans une salle de coédition — il aurait été enregistré vide au premier accord.
v2.31.0
Nouveau
- « Ouvrir avec… » sur un fichier : choisir entre l’éditeur intégré, l’application système ou un autre éditeur — et mémoriser le choix pour ce type de fichier.
- Les `.docx` s’ouvrent dans Filarr par conversion, jamais par écrasement : le fichier d’origine reste intact, l’alignement est conservé, et toute perte de mise en page est annoncée avant de continuer.
- Éditeur de code coloré pour une quarantaine d’extensions supplémentaires, grille CSV/TSV éditable fidèle au séparateur, aux guillemets et aux fins de ligne d’origine, et éditeur de calendrier `.ics` qui préserve à l’identique les parties qu’il ne comprend pas.
- Comparaison ligne à ligne du contenu réel entre deux versions d’un fichier, avec un geste évident pour la déclencher depuis l’historique.
Amélioré
- Aperçu des documents `.fdoc` sans avoir à ouvrir l’éditeur, et les `.svg` s’affichent au lieu de s’ouvrir en code source.
- « Nouveau document » ne propose que les formats réellement disponibles, avec un contenu de départ valide.
Corrigé
- Deux fichiers ouverts en même temps ne se marchent plus dessus dans le dossier temporaire, et le retour vers le nuage ne perd plus les modifications.
v2.30.0
Nouveau
- Chaque dossier peut avoir sa couleur, son icône, sa couverture, son bandeau et sa note d’accueil — avec héritage depuis le parent, ou rupture d’héritage pour vivre sa vie. Trois modèles d’accueil prêts à l’emploi, applicables en un clic.
- Une mise en page d’accueil s’exporte en fichier `.filarrlayout` et se réimporte sur un autre appareil ou chez quelqu’un d’autre. Elle suit un coffre publié, et le client web sait la lire.
- Plusieurs éditeurs peuvent se déclarer pour une même extension, et vous choisissez.
Amélioré
- Bloc Dossiers redimensionnable en hauteur, largeur de page réglable, et redimensionnement libre des blocs en largeur comme en hauteur — l’ancien système de paliers en pourcentage disparaît.
- Plafond de taille à l’ouverture, déclaré par chaque éditeur, au lieu d’un gel silencieux sur un fichier énorme.
- La bande des boutons natifs de la fenêtre est mesurée, plus devinée : fini les contrôles de l’application qui passent sous les boutons système, quelle que soit la configuration Windows.
Corrigé
- L’historique des versions stocke le contenu réel de chaque version — auparavant, restaurer une version antérieure ne restaurait pas les octets attendus.
- Un fichier qui n’est pas en UTF-8/LF n’est plus mutilé à l’enregistrement : son encodage et ses fins de ligne sont préservés. Et éditer un fichier chiffré en V3 ne le rabaisse plus au format précédent.
- Le quota se calcule en delta réel, et un renommage hybride qui échoue le dit au lieu de laisser un état ambigu.
v2.29.0
Nouveau
- L’accueil devient une grille de blocs que vous composez : notes récentes, notes sans dossier, dossiers, coffres partagés, activité, favoris — ajoutés, déplacés et redimensionnés en mode édition, sur un moteur de grille 12 colonnes. Votre mise en page est chiffrée et synchronisée entre vos appareils.
- Thème Minuit : un sombre profond, cohérent jusque dans les notes — et « Minuit vivant », le premier thème animé de Filarr.
- Cinq dispositions de barres (dont flottante et latérale), choisies dans un sélecteur à vignettes d’aperçu, avec barre supérieure et barre d’onglets masquables.
- La vue Tableau devient un vrai canvas spatial : les notes se placent librement, se déplacent et se relient dans un plan qu’on parcourt.
- Coller ou déposer une image directement dans l’éditeur.
Amélioré
- Témoins de glisser-déposer impossibles à rater, et navigation pendant le drag : on peut entrer dans un dossier en tenant le fichier. Avec déplacement vers la racine, création de dossier en ligne et destinations récentes.
- Les coffres partagés deviennent l’explorateur normal : même vue, mêmes gestes, mêmes cartes.
- Sauvegarde incrémentale des notes : plus de blocage pendant la frappe sur une note longue.
- Refonte de la recherche du menu @, liens potentiels actionnables avec suggestions dynamiques, blocs toggle et callout supprimables au clavier, slash-commands utilisables dans les listes.
- Panneau d’activité de synchronisation détaillé, et vraie synchronisation des profils entre appareils.
- Les demandes de fichiers sont ouvertes à tous les comptes, avec un quota par compte au lieu d’une restriction par plan.
Corrigé
- Fin des sélections et survols clairs qui trouaient les thèmes sombres, et Ctrl+B réparé.
- Les notes fixes (sticky) sont stables : déplacer l’une ne fait plus bouger les autres, et le gel à la sélection disparaît.
- Les préférences d’affichage ne fuient plus d’un profil à l’autre, les imports faits depuis la zone de notification apparaissent enfin dans l’application, et plus aucune commande de la palette ne mène à une page inexistante.
v2.28.0
Nouveau
- Filarr devient extensible : des greffons peuvent ajouter des éditeurs, des vues et des formats sans toucher au cœur de l’application. Chaque greffon s’exécute dans un bac à sable, sans accès réseau libre et sans jamais pouvoir exfiltrer du contenu en clair — du code non revu peut tourner sans mettre vos données en jeu.
- Place de marché de greffons : parcourir, installer et mettre à jour depuis l’application, avec une chaîne d’approvisionnement signée de bout en bout. Filarr refuse d’installer ce qu’il ne peut pas vérifier.
- Docs, le premier greffon maison : un éditeur de documents `.fdoc` complet, utilisable dans l’explorateur personnel comme dans les coffres, avec coédition et curseurs distants visibles.
- Partager un élément précis avec une personne précise, sans lui ouvrir tout le coffre, et un écran « Partagé avec moi » qui rassemble tout ce qu’on vous a ouvert.
- Boîte de réception des invitations dans le compte : accepter, refuser, ou relancer.
- Dossiers chiffrés dans les coffres : une vraie arborescence, construite côté client, sans migration.
Amélioré
- Chaque capacité demandée par un greffon est déclarée, affichée et refusable, avec une documentation développeur complète : architecture, API, limites, publication.
- Fil d’activité dans les coffres : qui a fait quoi, lisible par tout membre.
- Les commentaires ne meurent plus : ils vivent dans les coffres, sur les notes comme sur les fichiers.
- Confort de collaboration : « untel écrit… », sillage de frappe attribué à son auteur, sessions d’édition nommées.
v2.27.0
Nouveau
- Corbeille des coffres partagés : un élément supprimé y part, reste visible par les membres et se restaure en un geste. Auparavant la restauration existait côté serveur — sans aucune porte pour y entrer.
- Filtrer les éléments d’un coffre pour retrouver ce qu’on cherche dans un coffre chargé, et une recherche qui traverse enfin les coffres : le coffre cesse d’être un silo.
- Aperçu de 19 formats supplémentaires directement dans un coffre partagé.
Amélioré
- Retirer un membre fait tourner la clé du coffre, et Filarr vérifie à qui il rescelle avant de le faire, au lieu de faire confiance à une empreinte qui a pu changer entre-temps. Une empreinte modifiée demande une confirmation explicite.
- Une rotation ne condamne plus les invitations en attente en silence : elles sont réémises avec la nouvelle clé.
- Les éléments en corbeille comptent dans le quota et le disent, au lieu d’occuper un espace invisible ; et la purge ne peut plus écraser un élément qu’un collègue vient de restaurer.
- Renommer un fichier ne le renvoie plus entièrement : seule la métadonnée change.
Corrigé
- Renommer un coffre et changer le rôle d’un membre fonctionnent enfin — la route était bloquée côté serveur — et un coffre ne peut plus se retrouver sans aucun propriétaire après un retrait.
- Un fichier déposé dans un coffre redevient modifiable : il était figé à vie.
- Se connecter ramène ses profils (la restauration depuis le nuage existait sans écran pour la déclencher), supprimer un profil le retire aussi du nuage, et se déconnecter verrouille tout — auparavant, un tiers seulement de l’état était oublié.
- Une expulsion d’un espace laisse une trace lisible au lieu d’un écran vide.
v2.26.0
Amélioré
- Les écrans ne proposent plus des gestes que le serveur refuse : chaque bouton reflète les droits réels du rôle.
- L’historique des versions d’un fichier de coffre — inclus dans le plan mais jusque-là hors d’atteinte — est désormais consultable et restaurable.
Corrigé
- Un coffre partagé peut enfin être supprimé par son propriétaire.
- Supprimer son compte n’efface plus les coffres partagés de ses invités : leurs accès survivent au départ de l’hôte.
- Supprimer le contenant ne contourne plus la conservation légale : un élément sous rétention reste retenu, même si son dossier disparaît.
- Deux versions de clé ne partagent plus une salle d’édition que ni l’une ni l’autre ne pouvait lire, et un pair déconnecté cesse d’apparaître « en ligne » et rend le stylo au lieu de le retenir indéfiniment.
- Fin du « hors ligne » quatre fois par heure alors que la connexion était parfaitement stable, et un membre exclu d’une session l’apprend au lieu de continuer à taper dans le vide.
v2.25.0
Nouveau
- Les coffres partagés ne sont plus réservés aux organisations : tout compte payant peut créer un coffre, y inviter des proches ou des collègues, et le chiffrement de bout en bout reste identique. Un espace personnel est amorcé automatiquement à la première utilisation.
- Relations entre bases de données : une ligne d’une base peut pointer vers des lignes d’une autre, avec des agrégats — compter, sommer, faire la moyenne — directement dans une colonne.
- Écran de résolution de conflit quand deux appareils ont modifié la même note hors ligne.
Amélioré
- Une invitation mène quelque part : le lien ouvre un écran d’acceptation qui explique qui invite, à quoi, et avec quel compte se connecter — et il atteint l’application installée au lieu de rester bloqué dans le navigateur.
- Les notes d’un coffre sont modifiables par les membres qui en ont le droit, avec vues filtrées et nettoyage assisté des éléments obsolètes.
Corrigé
- L’invitation est signalée dans l’application — auparavant, rien nulle part n’indiquait qu’on avait été invité. Refuser une invitation refuse la bonne, et une invitation non cliquée ne verrouille plus le couple invitant/invité à jamais.
- La fin d’un abonnement a enfin un effet côté serveur : les limites redescendent au plan gratuit au lieu de rester à l’ancien niveau.
- Le bouton d’achat sur le web fonctionne — et quand il échoue, il le dit.
v2.24.0
Nouveau
- Édition en temps réel chiffrée de bout en bout : deux personnes éditent la même note simultanément, chacune voyant les frappes de l’autre apparaître au fil de l’eau. Le serveur ne voit rien — il ne fait que relayer des paquets chiffrés qu’il est incapable de déchiffrer.
- Une base de données d’une note peut se remplir depuis une source — un dossier de fichiers, une autre base — au lieu d’être saisie à la main.
Amélioré
- Synchronisation quasi temps réel : une modification faite sur un appareil apparaît sur l’autre en quelques secondes, au lieu d’attendre le prochain cycle.
- Fusion sans perte : les modifications concurrentes se combinent au lieu de s’écraser, y compris après une coupure réseau.
- Le bouton Synchroniser devient conclusif — il dit quand c’est vraiment fini — et Pause met vraiment en pause.
Corrigé
- Un seul onglet mène la synchronisation quand plusieurs sont ouverts, au lieu de les voir se battre.
- Filet de conflit : une divergence réelle produit une copie de conflit clairement nommée, et une divergence qui n’existe pas n’en produit plus aucune.
- Les profils cloud illisibles sont ignorés au lieu de bloquer tout le cycle, et l’écriture du manifeste est retentée au lieu d’abandonner au premier échec.
v2.23.0
Nouveau
- De vraies bases de données dans les notes : insérer au milieu d’une page un tableau de lignes et de colonnes qui vit dans la note, se trie, se filtre et se réordonne.
- Types de propriétés : texte, nombre, sélection, sélection multiple, date, case à cocher, URL, e-mail, téléphone, personne, fichier, date de création et de modification — avec valeur par défaut sur les sélections.
- « Compléter depuis le lien » : coller une adresse dans une ligne et cliquer sur ⚡ récupère le titre, la description et l’image de la page pour remplir les colonnes automatiquement. Strictement optionnel : la récupération passe par un relais que vous activez explicitement, et rien ne part sans le geste.
Amélioré
- Réordonnancement des colonnes par glisser-déposer, ajout d’une colonne en un clic, et colonne « + » toujours visible.
Corrigé
- Menu slash traduit, sélecteur de date utilisable, gardes sur le survol des lignes, et fin des échecs muets.
v2.22.0
Nouveau
- Filarr arrive dans le navigateur : app.filarr.com ouvre vos coffres, vos notes et vos fichiers depuis n’importe quel ordinateur, sans rien installer. Le déchiffrement se fait dans votre navigateur — la clé ne quitte jamais votre machine.
- Synchronisation bidirectionnelle avec l’application de bureau : ce que vous écrivez sur le web arrive sur le bureau, et l’inverse.
- Déverrouillage par clé d’accès (passkey) — empreinte, visage ou code de l’appareil, sans ressaisir le mot de passe. « Rester déverrouillé » reste un choix explicite, jamais un comportement par défaut.
- Page de posture de sécurité à deux niveaux, qui explique en clair ce que le serveur peut et ne peut pas voir.
Amélioré
- Interface adaptée au navigateur : barre supérieure propre, raccourcis clavier cohérents, défilement natif, et un thème papier en plus des thèmes sombres.
- Ouverture des fichiers : les types affichables s’ouvrent dans un onglet, les autres se téléchargent sous leur vrai nom.
- Chargement rapide : les ressources versionnées sont mises en cache un an, la page d’entrée toujours revalidée.
v2.21.0
Nouveau
- Import d’un coffre Obsidian entier : notes, liens [[wiki]], dossiers et pièces jointes, convertis en notes Filarr chiffrées.
- Un coffre créé hors ligne peut être publié sur votre compte — il devient synchronisable, partageable et sauvegardé — sans jamais être rescellé : aucune phase où vos données repasseraient en clair.
- Appairage par QR code entre le bureau et un appareil mobile, avec un protocole d’échange de clé revu : la session n’est plus détruite avant que l’autre appareil ait lu la clé.
Amélioré
- Réglages complets du graphe : forces d’attraction et de répulsion, distance des liens, centrage, décroissance — avec la même finesse qu’Obsidian — plus groupes, couleurs et filtres pour lire un graphe de plusieurs centaines de notes.
- Reprise après interruption : la publication d’un coffre repart au démarrage là où elle s’était arrêtée, et un doublon adopté en cours de route est fusionné au lieu d’être dupliqué.
- Chaque téléchargement vérifie son empreinte SHA-256 avant d’être accepté, et l’API expose désormais un contrat versionné pour que les applications mobiles et web puissent évoluer sans casser.
Corrigé
- Un index de coffre illisible n’est plus réinitialisé : Filarr refuse de repartir de zéro sur un index abîmé — cause potentielle de perte de données — et signale le problème.
v2.20.0
Nouveau
- « Déplacer dans le coffre » à l’import : Filarr chiffre le fichier, vérifie que la copie chiffrée se redéchiffre à l’octet près, et seulement ensuite supprime l’original de façon sécurisée. Avant, ajouter un fichier au coffre laissait une copie en clair sur le disque — la protection du chiffrement était annulée par le fichier oublié à côté.
- « Protéger sur place » : au lieu de ranger le fichier dans l’application, Filarr le transforme là où il est en un fichier `.filarr` chiffré, qui ne s’ouvre plus que via Filarr. Un dossier entier devient un seul conteneur, qui s’ouvre comme un mini-coffre navigable. « Déprotéger » rend le fichier ou le dossier en clair.
- Icône dans la zone de notification : état verrouillé/déverrouillé d’un coup d’œil, actions rapides (protéger un fichier, tout verrouiller, purger les temporaires), et clic gauche pour le mode réduit.
- Mode réduit : une petite palette élégante — glissez un fichier pour le protéger, déverrouillez, retrouvez vos éléments récents, verrouillez tout — sans ouvrir toute l’application.
- Clic droit « Protéger avec Filarr » dans l’Explorateur, sur un fichier ou un dossier, la sélection multiple étant regroupée en un seul dialogue.
- Raccourcis globaux (Ctrl+Alt+F pour le mode réduit, Ctrl+Alt+Maj+L pour verrouiller) et verrouillage automatique au verrouillage de session, en veille, ou après inactivité.
Amélioré
- Purge des fichiers temporaires : les copies déchiffrées (aperçu, ouverture, glisser-vers-le-bureau) sont effacées de façon sécurisée, automatiquement au verrouillage et à la fermeture ou à la demande. Une note honnête rappelle que l’effacement reste « au mieux » sur SSD et recommande d’activer BitLocker/FileVault.
- Jamais de perte de données : au moindre échec — chiffrement, vérification, suppression — l’original est conservé intact.
- Un conteneur protégé sur un autre appareil affiche un message clair « impossible de le déchiffrer ici », distinct d’un fichier corrompu.
v2.19.0
Nouveau
- Envoi direct sur Filarr Send : les fichiers partagés ne transitent plus par le serveur — le navigateur les envoie directement au stockage chiffré. Plus rapide, et le plafond technique imposé par ce détour disparaît. Si l’envoi direct n’est pas disponible, Send bascule tout seul sur l’ancien chemin.
- Les plafonds de Send dépendent maintenant de votre formule, résolus côté serveur et donc infalsifiables : 2 Go, 3 envois actifs et 10 vues en anonyme ; 2 Go et 5 envois en Gratuit ; 10 Go, 10 envois, 50 vues et 14 jours en Solo ; 25 Go, 25 envois, 200 vues et 30 jours en Pro.
- Chaque transfert affiche désormais un pourcentage, une vitesse (« 12,4 Mo/s ») et un temps restant estimé — dans la synchronisation comme dans Send, à l’envoi comme au téléchargement.
Amélioré
- Les envois simultanés sont comptés par compte pour les utilisateurs connectés : un réseau d’entreprise partagé ne bride plus un abonné.
- Une organisation peut restreindre, jamais élargir : partages externes désactivés, mot de passe obligatoire, expiration plafonnée.
v2.18.0
Nouveau
- Transfert direct pour la synchronisation : le serveur ne fait plus transiter vos octets, l’application les envoie directement au stockage chiffré. Fin du plafond technique de ~1 Go par requête, et import jusqu’à 5 To par fichier (au lieu de 5 Go), avec une mémoire plate quelle que soit la taille.
- Synchronisation incrémentale : seuls les blocs modifiés sont renvoyés. Éditer 5 Mo dans une vidéo de 4 Go ne transfère que ~5 Mo, pas les 4 Go entiers — idéal pour les images de machines virtuelles, les grosses archives et les montages vidéo.
- Vidéo et audio en streaming : lecture et navigation instantanées dans un fichier de plusieurs Go, sans jamais tout déchiffrer d’un coup — seul le passage lu est déchiffré. Gros PDF ouverts page par page, grosses archives ZIP listées sans tout télécharger.
Amélioré
- Envoi en parallèle : plusieurs morceaux partent en même temps, ce qui sature votre connexion au lieu de perdre du temps en allers-retours.
- Reprise après coupure : un envoi interrompu reprend là où il s’était arrêté.
- Les gros fichiers déjà présents mais non synchronisables — chiffrés avec la clé de l’appareil — sont automatiquement re-préparés pour la synchronisation, sans réimport.
v2.17.0
Nouveau
- Nouveau format de chiffrement en flux : les fichiers montent jusqu’à 5 Go (au lieu de 500 Mo), chiffrés par blocs au fil de l’eau, avec une mémoire plate (~100 Mo) quelle que soit la taille — au lieu de charger le fichier entier en mémoire plusieurs fois.
Amélioré
- Beaucoup plus rapide : ~550 Mo/s en chiffrement matériel, et l’ouverture d’un fichier est elle aussi accélérée (l’ancien format repayait un calcul coûteux à chaque lecture).
- Anti-falsification : chaque bloc est authentifié avec sa position — impossible de tronquer, réordonner ou greffer un morceau d’un autre fichier sans détection immédiate.
- Rétrocompatible : vos fichiers existants restent lisibles, et seuls les nouveaux gros fichiers utilisent le nouveau format.
- L’import passe désormais par le chemin du fichier au lieu de le copier en mémoire — plus aucune limite liée à la RAM.
v2.16.0
Nouveau
- Aperçu des archives `.7z` et `.rar` : le contenu s’affiche, se navigue, et les fichiers texte s’ouvrent dans un volet — sans quitter Filarr, sans rien écrire en clair sur le disque.
- Décompression réelle : 7z (LZMA/LZMA2/Deflate) et RAR5 compressé sont extraits pour de vrai, pas seulement listés.
Amélioré
- Le moteur est écrit en JavaScript pur — le durcissement de sécurité de l’application interdit le WebAssembly — et son exactitude a été vérifiée à l’octet près contre WinRAR et 7-Zip, plus des milliers de cas d’archives malformées qui échouent proprement au lieu de bloquer.
- Les archives chiffrées par mot de passe, ou dans un format non pris en charge (PPMd…), sont listées avec une note claire plutôt que de faire échouer l’aperçu.
v2.15.0
Nouveau
- Lien « Aller au contenu » : au chargement, la première tabulation révèle un lien qui saute par-dessus l'en-tête et la barre latérale pour amener directement au contenu principal.
Amélioré
- Cartes de notes opérables au clavier dans les vues Kanban, Masonry, Sticky et Base de données : une carte devient focalisable et `Entrée` ouvre la note — avant, elles n'étaient accessibles qu'à la souris.
- Actions de ligne révélées au focus : les boutons d'action jusqu'ici visibles au seul survol apparaissent désormais aussi quand on les atteint au clavier.
- Révision des flashcards entièrement au clavier : `Espace` révèle la réponse et `1`–`4` notent la carte (Again / Hard / Good / Easy).
- Maths et diagrammes désormais restitués aux lecteurs d'écran : les équations KaTeX émettent leur couche MathML (rôle `math` + libellé) et les diagrammes Mermaid reçoivent un rôle d'image + un libellé — jusqu'ici tous deux étaient totalement invisibles pour un lecteur d'écran.
Corrigé
- Anneau de focus global : chaque bouton, item de menu, entrée d'arbre ou élément interactif affiche enfin un contour net quand on l'atteint au clavier. La réinitialisation CSS supprimait le contour des boutons et ne le rétablissait que pour les champs de saisie — la majorité des contrôles n'avaient donc AUCUN repère de focus.
- Restauration du focus à la fermeture d'une fenêtre modale : le focus revient sur l'élément qui l'a ouverte, au lieu de repartir en haut de la page.
- Contraste des thèmes clairs : les textes secondaires (dates, compteurs, métadonnées) des thèmes `lofi`, `sky`, `sakura` et `terracotta` passent désormais WCAG AA — ils étaient jusqu'ici sous le seuil de lisibilité.
- Notifications : la politesse d'annonce dépend maintenant du type (erreur / avertissement = assertif, succès / info = poli), et les régions live imbriquées qui provoquaient des annonces en double ont été supprimées.
- Barre de modes des notes : correctement annoncée comme un groupe de boutons à état pressé, au lieu d'un widget d'onglets incomplet.
v2.14.0
Nouveau
- Graphe local façon Obsidian — ouvrez une note, passez en vue Graphe et activez « Local » : le graphe se réduit à la note ouverte et son voisinage, avec une profondeur réglable de 1 à 3 sauts, au lieu du graphe global illisible sur un vrai coffre. Retombe automatiquement sur le graphe global quand aucune note n'est ouverte.
- Recherche dans le graphe : taper un nom estompe les nœuds et arêtes qui ne correspondent pas et met en avant les correspondances, façon Obsidian. Le champ de recherche existait mais était du code mort et ne filtrait rien.
- Vue Base de données — le filtrage et la visibilité des colonnes sont enfin actionnables : un bouton « Filtrer » (propriété + opérateur + valeur : contient / égal / vide / non vide) et un bouton « Propriétés » pour masquer ou afficher les colonnes. Le moteur de filtrage et la persistance existaient déjà, mais aucun bouton ne les appelait — les filtres restaient vides et toutes les colonnes toujours affichées.
- Section « Récents » en tête de la liste des notes : les dernières notes visitées, un clic pour y revenir.
- Épinglage en masse : épinglez ou désépinglez plusieurs notes d'un coup depuis la barre de sélection.
Amélioré
- Touche `Tab` dans l'éditeur : passe désormais d'une cellule à l'autre dans un tableau et indente à l'intérieur d'un bloc de code, au lieu d'être avalée partout.
- Calendrier localisé : les noms de mois et de jours s'affichent dans la langue de l'app et se mettent à jour lors d'un changement de langue — ils étaient jusqu'ici codés en dur en anglais.
Corrigé
- Colonnes Kanban persistées : vos colonnes personnalisées survivent au rechargement. Avant, elles disparaissaient et toutes les cartes retombaient en « inbox », détruisant l'organisation du tableau.
- Génération de flashcards « Générer depuis les notes » désormais idempotente : elle préserve la progression de répétition espacée (SM-2) des cartes existantes, n'ajoute que les nouvelles paires Q/R et ne crée plus de deck dupliqué. Avant, chaque génération remettait toute la progression à zéro.
v2.13.0
Nouveau
- Aperçu Word `.docx` mis en forme directement dans le panneau d'aperçu : titres, listes et images sont rendus fidèlement. Conversion via `mammoth` à 100 % côté client (hors-ligne), sortie assainie par `DOMPurify`.
- Aperçu CSV / TSV sous forme de tableau interactif : tri au clic sur les en-têtes, filtre plein texte, détection automatique de la ligne d'en-tête, et rendu virtualisé pour rester fluide même sur les gros fichiers.
- Aperçu HTML rendu dans un cadre isolé — aucun script exécuté, aucune requête réseau — avec bascule vers le code source.
- Recherche dans le contenu des documents : le texte des `.docx`, `.csv` et fichiers texte est indexé à l'ouverture et devient trouvable via la recherche.
- Déplacer / Copier en lot : sélectionnez plusieurs éléments et déplacez-les ou copiez-les d'un coup (les boutons étaient grisés en permanence).
- Grouper les fichiers par type, date ou première lettre, aussi bien en vue grille qu'en vue liste (le menu ne faisait rien auparavant).
- Tri par colonne au clic sur les en-têtes « Nom », « Taille » et « Modifié » (vue liste).
- Navigation au clavier dans le navigateur de fichiers : flèches, `Entrée` (ouvrir), `F2` (renommer), `Suppr`, `Ctrl+A`, `Début`/`Fin`.
- Miniatures PDF dans la vue grille (aperçu de la 1re page), en plus des miniatures d'images.
- Quota de stockage affiché dans le pied de page pour les comptes cloud, avec un code couleur qui alerte à l'approche de la limite.
- Couleur et emoji de dossier pour repérer un dossier d'un coup d'œil.
- « Afficher dans l'explorateur » via le clic droit sur un fichier.
- Glisser un fichier vers le bureau : `Alt`+glisser exporte le fichier déchiffré vers l'OS, tandis que le glisser normal reste le déplacement interne.
- Nouveau thème Terracotta : un thème clair chaleureux, avec fonds sable/crème et accents argile.
- Nouvelle police Plus Jakarta Sans disponible dans les réglages.
- Suppression sécurisée des copies déchiffrées temporaires : celles créées pour le glisser-déposer et l'« Afficher dans l'explorateur » sont effacées de façon sécurisée après un délai et à la fermeture de l'app.
Amélioré
- Espace entreprise présenté comme « Prochainement » (désactivé) tant qu'il n'est pas prêt, avec une option pour le masquer complètement au démarrage.
Corrigé
- Aperçu PDF hors-ligne : le lecteur ne charge plus son worker depuis un CDN — il est désormais embarqué et fourni à `pdf.js` via une URL `blob:` (compatible avec la CSP stricte de l'app). L'aperçu fonctionne donc sans réseau et ne fuit plus aucune requête.
- Palette de commandes entièrement traduite — son habillage était codé en dur en français.
v2.12.0
Nouveau
- Connexion SSO d'entreprise en OIDC (`Authorization Code` + PKCE) avec provisionnement à la volée (JIT) des membres. L'espace entreprise est déployé progressivement et reste affiché « Prochainement » dans l'app tant que l'ensemble n'est pas finalisé — la brique décrite ici est construite côté serveur/admin.
- Console SSO d'administration : configuration de la connexion OIDC et vérification de domaine par DNS.
- Déverrouillage sans mot de passe après SSO (opt-in) : une clé liée à l'appareil déchiffre la FEK au lancement, pour un accès fluide une fois authentifié via SSO.
- Moteur de politiques de gouvernance versionné, appliqué à la fois côté client et côté serveur, sans jamais exposer les clés (connaissance nulle).
- MFA obligatoire avec flux d'enrôlement forcé, liste blanche d'IP à la connexion et au rafraîchissement de session, et expiration de session absolue imposée côté serveur.
- Gestion de parc : inventaire des appareils, révocation et effacement à distance avec preuve d'exécution, idempotence et annulation.
- Rétention et conservation pilotées par politique : rétention des versions et de la corbeille, plus conservations légales qui bloquent la destruction des données sous hold.
- Gouvernance du partage — fermeture du contournement via Filarr Send — et application des politiques même hors-ligne.
- Éditeur de politiques de gouvernance intégré à la console d'administration.
- Puits SIEM configurables avec rôle dédié `security_admin` : drain planifié par cron, ancrage des exports dans R2, file de rejeu DLQ pour la fiabilité et contre-vérification R2.
- Rétention du journal d'audit : suppression définitive et point de contrôle de troncature signé.
- Instrumentation de la connexion, du 2FA et des appareils dans le journal d'audit, avec un tableau de bord de supervision de l'organisation.
- Paire de clés d'organisation scellée par l'admin, avec transparence de clé et garde anti-MITM.
- Escrow de récupération des coffres d'équipe : opt-in et conditionné au consentement cryptographique des membres, révocable et conforme RGPD.
- Secret partagé Shamir k-parmi-n : récupération multi-parties menée par un coordinateur, conversion en place de la clé d'org vers Shamir, rotation de la clé et re-split (changement du groupe de détenteurs ou du seuil).
- Tableau de bord Récupération : politique en vigueur, empreinte de transparence et rotation.
- Filarr Send/Request côté dépôts pro : pages de dépôt personnalisées liées à un destinataire vérifié.
- Tableau de bord côté déposant, avec rappels envoyés par e-mail depuis le serveur.
- Requêtes de dépôt : garde par plan et par coffre, pagination, rappels automatiques et purge du rate-limit.
- Annuaire clients avec colonnes entièrement configurables, groupes de clients explicites et e-mails de livraison de lien directs.
- Import Notion finalisé et activé ; les deux importeurs (Obsidian + Notion) sont désormais durcis et testés.
- Custody à connaissance nulle : nouvelle colonne `kdf_scheme` et endpoint de re-wrap pour ré-envelopper la clé de récupération.
- Cockpit fondateur sur `admin.filarr.com`, accompagné d'un cockpit d'infrastructure.
Amélioré
- Jeton de rafraîchissement désormais transporté par un cookie `HttpOnly` (double voie), réduisant l'exposition au XSS.
- Refonte des e-mails avec un modèle fait main affichant l'avatar de l'organisation, et garde de custody imposée sur les envois authentifiés.
- Webhooks V2 : filtre d'événements, rejeu de la DLQ et ping de test.
- Passe de design professionnel sur la console d'administration et sur l'UI des puits SIEM.
Corrigé
- Changement de mot de passe : il n'annule plus l'enveloppe de récupération de la FEK — la récupération de custody reste valide après un changement de mot de passe.
- Facturation : la limite de stockage affichée suivait d'anciennes valeurs (10/50 Go) au lieu des 25/150 Go réellement appliqués.
v2.11.0
Nouveau
- Notes liées façon Obsidian — transclusion vivante `![[Ma note]]` qui incruste inline le contenu de la note cible (pas un lien, le contenu lui-même), rendu en direct et toujours à jour : modifiez la source, toutes les incrustations suivent. `![[Note#Titre]]` cible une section, `![[Note#^bloc]]` un bloc précis, `![[Note|autre libellé]]` un alias. Autocomplétion unifiée pour `[[…]]` et `![[…]]` avec bascule de mode, et renommer une note propage automatiquement à tous les `![[…]]` qui la pointent.
- Corbeille de notes — les notes supprimées passent en corbeille récupérable au lieu d'être perdues ; les incrustations pointant vers une note supprimée sont signalées comme orphelines.
- Rappels — nouvelle page dédiée `/reminders` avec snooze et complétion en ligne, badge des rappels en retard et clic pour sauter directement à l'élément concerné. Attachez un rappel à un fichier ou à une note, avec récurrences et modèles de presets, sync multi-device en direct et opérations groupées. Notifications natives Windows avec boutons d'action (snooze / terminer) et ouverture au démarrage pour que le planificateur tourne en arrière-plan.
- Clé de sécurité matérielle (Solo+) — enrôlez/retirez une YubiKey ou toute clé compatible WebAuthn dans les Réglages ; l'écran de verrouillage propose « Utiliser ma clé de sécurité » dès qu'une clé est enrôlée. Le mot de passe continue de fonctionner (la clé est une option, pas un remplacement). La clé reste locale à l'appareil, jamais poussée dans le cloud : la KEK est dérivée de la sortie PRF WebAuthn via `HKDF-SHA-256` et la FEK ne quitte jamais le cœur crypto.
- Coffre caché / mode leurre (Solo+) — un second coffre déverrouillé par un mot de passe distinct : sous contrainte, saisir le mot de passe leurre ouvre un profil crédible au lieu de votre vrai coffre. Configuration via un modal dédié dans les Réglages, avec une divulgation honnête des limites. Le coffre leurre génère une FEK indépendante (jamais la vraie) et ne touche jamais le trousseau du vrai profil.
- Hot Folder Watch — nouveau type de règle dans Réglages → Hot Folders : pointez un dossier de votre PC (Téléchargements, Scanner, Screenshots…) vers un dossier Filarr cible, et tout ce qui y arrive est automatiquement chiffré (`AES-256-GCM` via la FEK du profil) et synchronisé vers le cloud — un PDF posé apparaît chiffré dans le vault dans la seconde. Éditer un `.md` dans VS Code ou Obsidian remplace la version dans le vault (même identifiant, historique préservé, pas de doublons), et le miroir des suppressions (optionnel) passe un fichier en `deleted` quand il disparaît du dossier OS.
- Hot Folders — N règles indépendantes, chacune avec sa source, son dossier cible, ses filtres (sous-dossiers, extension, taille max), son action post-import (conserver / effacer sécurisé / déplacer) et ses auto-tags (Solo/Pro). Garde-fous intégrés : anti-loop, anti-overlap, refus des chemins système, blocklist d'exécutables et un safety threshold qui suspend la cascade de suppressions si trop de fichiers disparaissent d'un coup (disque USB débranché, NAS offline). Limites par plan : Free 1 règle, Solo 3, Pro illimité ; bouton « Scan now » par règle pour forcer une passe de rattrapage.
Amélioré
- Réglages repensés — navigation en deux colonnes : barre latérale de catégories sticky à gauche, contenu scrollable à droite. Chaque catégorie a son adresse dans l'URL, directement navigable et liable.
- Dossiers — nouvelle option « simple clic ouvre les détails, double clic ouvre le fichier ».
Corrigé
- Déconnexions intempestives — refonte du rafraîchissement de session : plus de logout quand plusieurs requêtes rafraîchissent le token en parallèle (réveil de veille, reconnexion) ou quand une réponse réseau est perdue. Mutex single-flight côté app, fenêtre de grâce de 30 s sur la rotation des tokens côté serveur et fenêtre glissante portée à 90 jours, avec distinction nette entre échec réseau (session gardée) et token réellement révoqué (vraie déconnexion).
- Isolation des profils — plus de fuite d'état entre profils au changement de profil ; les onglets de dossiers orphelins sont nettoyés au switch.
- Démarrage — correction d'une erreur TDZ au boot (imports Electron hissés en tête).
- Rappels — suppression d'un ancien handler de snooze en double.
v2.10.1
Corrigé
- Régression de sync introduite en `v2.8.0` par l'optimisation ETag / `If-None-Match` sur le manifest : quand le serveur répondait `304 Not Modified`, le moteur de sync réutilisait directement le manifest local comme vue distante, si bien que la fusion comparait des entrées strictement identiques et ne planifiait jamais le push des nouveaux fichiers ou modifications locales tant qu'aucun autre device ne touchait au manifest cloud.
- Symptômes : les notes modifiées ne remontaient plus dans le cloud entre deux sessions, le scan local trouvait des entrées `pending_upload` mais le merge log affichait « 0 upload, 0 download, 0 conflicts », et le compteur de version du manifest pouvait s'incrémenter sans qu'aucun chunk soit réellement poussé.
- Correctif : sur une réponse `304`, la vue distante est désormais reconstruite à partir du manifest local en filtrant les entrées `pending_upload`, ce qui permet à la fusion de détecter correctement les fichiers à pousser — aucune migration nécessaire, il suffit de relancer Filarr et la prochaine sync rattrape le retard accumulé.
v2.10.0
Nouveau
- Filarr Send — partage E2EE anonyme sans compte, accessible depuis `filarr.com/send`. Drag-drop, expiry / max downloads / mot de passe optionnel, barre de progression byte-par-byte. Table D1 dédiée `ephemeral_shares`, préfixe R2 séparé `send/{id}/`, endpoints Worker `/send/*` non authentifiés. Caps anonymes : 2 Go max fichier, 7 jours max, 10 téléchargements max, 3 sends actifs / IP. IP du créateur stockée hashée (SHA-256) jamais en clair.
- Grille des limites par plan revue pour une progression strictement monotone : Free (1 Go / 14j / 10 actifs / 50 downloads), Solo (10 Go / 90j / 100 actifs / 1000 downloads), Pro (50 Go / 1 an / illimité / illimité). La version initiale laissait Pro à la même taille max fichier que l'anonyme gratuit (5 Go vs 5 Go) — corrigé. Anonyme reste utile pour les envois ponctuels (2 Go ≈ WeTransfer free) mais Free et au-dessus dominent clairement sur expiry, active count, features (revoke, history, 1-per-IP).
- Audit log par share côté owner — nouvelle table D1 `share_views` (migration 0008) qui log timestamp + pays (`request.cf.country`) + sous-réseau `/16` à chaque chunk_0 servi. Jamais l'IP complète. Endpoint `GET /sync/share/:id/views` (auth owner-only) + bouton « Historique » dépliable dans la page /shares, lazy fetch + cache par shareId.
- Compteurs séparés visites vs téléchargements — migration 0010 ajoute `info_view_count` à `shares` et `ephemeral_shares`. La page /shares affiche maintenant 2 chips : 👁 page ouverte, ⬇ download complété. Utile sur les shares password-protected où plein de visites n'aboutissent pas (mauvais password, abandon).
- Option « 1 téléchargement par IP » dans `ShareFileModal` (migration 0011 : `one_download_per_ip` sur `shares` uniquement). Réutilise le `/16` de `share_views` pour la dédup — pas de stockage IP supplémentaire. Chunks 1+ ne sont pas IP-gated (un download interrompu peut reprendre). Hint UI sur le caveat NAT (carrier-grade NAT / corp office partagent la limite).
- Page dédiée `/shares` dans la sidebar (entrée entre Automatisation et Corbeille), avec header large + sous-titre expliquant l'E2EE. Empty state propre pour les vaults locaux : « Sharing requires cloud sync » + CTA vers Settings. Retirée de Settings → Partages chiffrés.
- URL recovery via localStorage `filarr-shares-keys-v1` (`{shareId → K_share_base64url}`) — le bouton « Copier le lien » dans /shares reconstitue l'URL même si la modal a été fermée trop vite. Cleanup auto via `pruneLocalShareKeys()` à chaque refresh. Message clair si K_share absent (share créé sur un autre appareil).
Amélioré
- Page recipient `filarr.com/s/[id]` unifiée pour les deux modes : essaie `/share/{id}/info`, fallback sur `/send/{id}/info` en 404. Le destinataire voit la même URL pattern quel que soit le mode (authentifié ou anonyme).
- Espacement de la meta row dans la liste /shares : `gap: spacing-2 / spacing-3` au lieu de 1-5, séparateurs rendus en cercles 4px à 40% opacité (les middots collaient au texte avant).
Corrigé
- Page `filarr.com/send` ne 404 plus — le middleware `next-intl` redirigeait `/send` vers `/{locale}/send` qui n'existe pas. Mirror de l'exclusion `/s/` pour `/send`.
v2.9.0
Nouveau
- Partage E2EE de fichiers — clic droit sur n'importe quel fichier puis « Partager par lien ». Filarr génère une URL `filarr.com/s/{id}#k={cle}` qui se déchiffre dans le navigateur du destinataire, sans compte requis. La clé `k` vit dans le fragment URL et n'est jamais envoyée à nos serveurs (RFC 3986) — zero-knowledge intact, même avec un compromis total de Filarr.
- Pipeline « ré-encryption au moment du partage » : le client lit le fichier en clair localement, le chunk en 16 MB, re-chiffre chaque chunk avec une clé `K_share` fraîche, et uploade vers un préfixe R2 dédié au share. Conséquence pratique : ça marche pour tous les fichiers, y compris ceux uploadés avant la v2.8.0 (format de stockage interne legacy).
- Mot de passe optionnel sur les partages (Solo et Pro) — `HKDF-SHA-256(K_share + password, salt)` dérive la clé de déchiffrement réelle, le serveur ne voit jamais le mot de passe ni la clé.
- Limites configurables par share : expiration (1h / 24h / 7j / 30j / 90j selon plan), nombre maximum de téléchargements, révocation manuelle depuis Settings → Partages chiffrés.
- Panel Settings → Partages chiffrés : liste les liens actifs et récemment inactifs (révoqués/expirés/limite atteinte), permet de recopier l'URL d'un share existant (la clé est mise en cache local après création) ou de révoquer.
- Page publique de réception `filarr.com/s/{id}` en ligne : déchiffrement 100% navigateur (WebCrypto), saisie du mot de passe quand requis, barre de progression chunk-par-chunk, langue auto-détectée via `Accept-Language` avec toggle FR/EN. Bundle minimal (~7 kB), CSP stricte, `noindex` — la page n'apparaît pas dans les moteurs de recherche.
Amélioré
- Modal de partage adapté à tous les thèmes — utilise désormais les composants Modal/Button/Checkbox du design system et les variables CSS d'accent, plus de couleurs hardcodées.
- Les options « Limiter les téléchargements » et « Mot de passe » deviennent des cartes interactives qui montrent visuellement leur état (bordure accent quand sélectionné, opacity 60% quand le plan ne le permet pas) — plus de checkbox 16px invisibles.
- Barre de progression réelle byte-par-byte pendant la création du share (utile pour les gros fichiers — la création prend ~1s par 16 MB).
- Le compteur côté destinataire affiche maintenant « téléchargements » au lieu de « vues » — c'est le fetch du premier chunk qui incrémente côté serveur, pas l'ouverture de la page. Le wording reflète la réalité.
Corrigé
- Worker `[placement] mode = "smart"` activé dans `wrangler.toml` (régression : la config avait été perdue après un rebase).
- Migration D1 0007 : drop des colonnes `wrapped_fek` / `wrapped_fek_iv` (héritage de la v1 du design abandonnée) et ajout de `status TEXT NOT NULL DEFAULT 'pending'`. Les shares restent en `pending` tant que tous les chunks ne sont pas uploadés — les endpoints publics rejettent les `pending` avec un 404, donc impossible de récupérer un share half-baked.
v2.8.0
Nouveau
- Compression côté client (deflate niveau 5) avant chiffrement — appliquée à tous les fichiers texte/JSON/Office/code. Le serveur ne voit toujours que du chiffré opaque, mais vous stockez ~2 à 3× plus de données originales dans le même quota R2. Marker de version sur chaque blob pour préserver la rétrocompatibilité avec les fichiers déjà uploadés.
- Quotas augmentés sans hausse de prix — Solo passe de 10 → 25 Go, Pro passe de 50 → 150 Go. Le Free reste à 1 Go en essai 30 jours.
- Taille max par fichier 500 Mo → 5 Go. Les uploads gros fichiers utilisent désormais le protocole multipart R2 (parts de 16 Mo, parallélisme 3) qui contourne la limite 100 Mo des Cloudflare Workers et permet la reprise sur coupure réseau.
- Tous les types de fichiers acceptés — la blacklist d'extensions (.exe, .msi, .bat, .dmg, .deb…) a été supprimée. Filarr est end-to-end chiffré : bloquer une extension côté client était cosmétique (un user pouvait toujours renommer). Vous pouvez maintenant stocker installeurs, scripts, ISO, sans contournement. L'UI affichera un message informatif rappelant qu'on ne peut pas scanner les fichiers chiffrés.
- Manifest cloud compressé avec deflate — sur un compte avec beaucoup de fichiers, le manifest peut faire plusieurs Mo de JSON. Compression ~5× sur ce type de payload, latence de sync réduite proportionnellement.
Amélioré
- GET /sync/manifest gère désormais If-None-Match / 304 — le client envoie sa version locale, le Worker répond 304 sans corps si rien n'a changé. Économise une fetch + decrypt complet à chaque cycle de sync en steady state (la majorité des cycles).
- Worker Smart Placement activé — le runtime Cloudflare colocalise désormais l'exécution avec D1+R2 au lieu de l'eyeball. 50 à 200 ms de latence en moins sur les calls /sync/* selon votre localisation.
- Compression sautée pour les formats déjà compressés (mp4, jpg, png, pdf, docx, zip, 7z…) — détection par extension ET par magic bytes pour rester robuste. CPU gagné, ratio inchangé.
Corrigé
- Le fallback de décryptage tente le format v0 (legacy, sans marker) en cas d'échec d'authentification GCM sur les formats v1/v2 — couvre le cas où un IV legacy commence par un octet 0x01/0x02 ressemblant à un marker.
- Le détecteur de quota côté Worker vérifie maintenant le projection contre la consommation actuelle ET le delta du multipart en cours, évitant l'overshoot quand deux uploads multipart concurrents passent la pré-vérification.
v2.7.0
Nouveau
- Kanban — swimlanes horizontales avec 4 modes (Aucune, Carnet, Premier tag, Épinglées). Chaque voie est repliable, état persisté en localStorage. Drag-drop volontairement intra-voie uniquement (cross-lane changerait le critère de groupement, trop implicite pour un geste). Édition inline du titre (double-clic) + bouton « + » par colonne qui crée une note pré-affectée à cette colonne et au carnet courant.
- Vue graphe — panneau latéral détaillé au clic d’un nœud : entrants/sortants/wordcount, tags résolus, dernière modif, preview 240 chars, voisins ↙/↗ cliquables pour pivoter sans quitter le canvas, bouton « Ouvrir la note » pour l’ancien comportement. Flèches directionnelles sur les arêtes wiki-links (markers SVG, liens réciproques fusionnés en une arête bidirectionnelle).
- Mind map — collapse + expand par branche (chevron −/+ sur chaque nœud avec enfants), état per-note dans localStorage (entrées vides élaguées). Boutons « Collapse all » / « Expand all ». Clic sur un nœud heading → la note s’ouvre et l’éditeur scrolle automatiquement sur cette section (bridge via flag transient pendingScrollToHeading, NoteEditor calcule la position ProseMirror dans un requestAnimationFrame).
- Calendrier — monté comme vue à part entière dans la barre de modes. Modal jour au clic d’une case avec notes prévues + éditions + bouton « Créer une note quotidienne » qui pré-remplit titre Daily YYYY-MM-DD et scheduledDate. Champ scheduledDate dédié sur la note (drop sur une case ne réécrit plus createdAt). Plage de l’agenda configurable (passé + futur tunables).
- Vue sticky — resize per-note (handle bas-droite, dimensions stockées dans viewSizes, MIN/MAX bornés) + contenu scrollable. Bouton « Fit all » qui recadre le canvas pour englober toutes les stickies. Persist du zoom + pan en localStorage, restauré au remount.
- Mosaïque — toolbar dédiée de tri (updatedAt/createdAt/title/wordcount) + filtre (tag/notebook/pinned), persistée dans filarr.masonryView.config.v1.
- Indicateur de save state dans le header de l’éditeur — 4 états (synced / saving / pending / error), couleurs distinctes, aria-live="polite" pour les screen readers. Distinct du badge sync cloud : les users local-only ont enfin un signal d’état pour leur travail.
Amélioré
- Couleurs stables dans sticky et mosaïque — dérivées du note.id (hash) plutôt que de l’index dans la liste, donc plus de saut de couleur au filtrage/réordre. Palette dark mode revue pour rester distinguable et lisible.
- Configuration de vue base-de-données persistée (colonnes affichées, ordre, largeurs, sort, filtres) en localStorage par dataset.
- Lisibilité du calendrier sur thèmes warm — chips et onglets de sous-vues utilisent --color-text-primary avec opacité (au lieu de --color-text-secondary qui devenait invisible). Guard regex isValidCssColor ajouté pour rejeter les couleurs custom polluées style "x,y".
- Clusters déconnectés du graphe plus rapprochés — tuning des forces d3 (gravité augmentée, repulsion réduite entre composants connexes) pour que les sous-graphes orphelins ne s’éloignent pas à l’infini.
- Erreurs localStorage du graphe remontées via toast d’avertissement au lieu d’être avalées silencieusement (QuotaExceededError, accès refusés).
- Migration coverColor → viewPositions['sticky'] — la vue Sticky écrivait "x,y" dans coverColor, ce qui polluait l’affichage de la couverture dans les autres vues. Reducer one-shot migrateStickyPositionPollution qui détecte le pattern, parse les coords, vide coverColor.
Corrigé
- « Collapse all » du mind map qui cassait la vue — collectCollapsibleIds poussait root dans la liste, donc Collapse all repliait root → écran vide avec juste un « + ». Désormais root est exclu, et loadCollapsed strip tout 'root' legacy en localStorage (self-healing).
- Timeline préserve createdAt/updatedAt au cloud sync — le sync écrasait avec Date.now() les timestamps lors de la rehydratation cloud, toute la timeline était écrasée à chaque cycle. Fix dans StorageService.addItemToFolder qui propage maintenant les timestamps reçus.
- Timeline affiche tous les matchs sous filtre actif — un cap silencieux de 100 entrées coupait le résultat des recherches sans indicateur.
- Note active visible dans la mode bar sur toutes les vues (avant : seulement liste).
- Notes corbeille masquées immédiatement des colonnes Kanban (filtre n.deletedAt == null, plus besoin d’un refresh).
- Drag intra-colonne dans le Kanban — préserve l’ordre via un nouveau champ kanbanOrder + reducer reorderKanbanCard. Les drops cross-colonnes mettent toujours à jour kanbanStatus.
- Clic sur une note en vues non-liste ouvre maintenant l’éditeur (handleOpenNote partagé qui switch en mode liste + set l’editing note).
- currentDate du calendrier sync entre sous-vues — clic sur une cellule en mode Mois passe en mode Jour positionné sur ce jour-là.
- Split panel en mode Notes — chaque panneau a maintenant son propre viewMode et editingNote, plus de leak de state entre les deux moitiés.
- Récursion infinie dans handleViewModeChange (un replace_all malheureux avait fait s’auto-appeler la fonction). Restauration du dispatch(setNotesViewMode(mode)) dans la branche else.
v2.6.0
Nouveau
- Surveillance des téléchargements OS — Filarr peut maintenant surveiller un dossier OS (typiquement Téléchargements) et importer automatiquement chaque nouveau fichier dans une boîte de réception Filarr de votre choix. Watcher chokidar avec awaitWriteFinish 2 s pour ne pas attraper les fichiers en cours d’écriture, watch top-level seulement (depth: 0), ignoreInitial: true pour ne pas re-importer en boucle au démarrage. Multi-dossiers supportés, config profile-scopée, redémarré automatiquement sur switch de profil.
- Sécurité défense en profondeur — blocklist en dur des extensions exécutables (.exe, .msi, .bat, .cmd, .ps1, .vbs, .js, .scr, .lnk, .jar, .app, .dmg…) appliquée avant tout filtre utilisateur. Refus de surveiller les chemins système (C:\Windows, C:\Program Files, /etc, /usr/bin…) — un appConfig falsifié ne peut pas faire lire un dossier protégé. deleteSource IPC restreint aux chemins effectivement surfacés par le watcher ET sous une racine surveillée.
- Filtre extensions opt-in — chips ajoutables/supprimables dans Settings (vide = tout est importé sauf la blocklist exécutables, jamais désactivable). Sanitization stricte côté main : trim, lowercase, strip leading dot, regex [a-z0-9]+ only.
- Bouton « Scanner » — catch-up scan one-shot qui énumère chaque dossier surveillé et défère chaque fichier à la même pipeline handleNewFile (donc applique blocklist + filtre extension + size limit + dedup). Retourne { queued, skipped } pour feedback. Désactivé tant que le watcher n’est pas active.
- Nouveau trigger d’automatisation file_imported_from_os — fire alongside file_created quand le watcher importe. Permet d’écrire des règles ciblées OS-imports uniquement (ex : « PDF importé depuis l’OS → Documents », sans toucher aux PDFs ajoutés in-app). Nouvelle condition os_source_path pour matcher sur le chemin d’origine (avec normalisation des séparateurs Windows/Unix).
- 3 templates d’automatisation utilisant le nouveau trigger : « Router les téléchargements OS », « Trier les PDFs téléchargés », « Trier les images téléchargées ».
- UI Settings avec feedback runtime — badge de statut live (Active / Démarrage… / Erreur / Inactive) avec compteur de dossiers surveillés. Compteur « X fichiers importés » + nom du dernier import, mis à jour en temps réel via le canal IPC status-changed (pas de polling). Bandeau d’erreur rouge si state === error, bandeau ambré si certains dossiers configurés sont introuvables sur le disque. Toggle master désactivé tant que la config n’est pas complète, avec hint inline indiquant ce qui manque.
Amélioré
- Auto-routage des fichiers ajoutés in-app — le moteur d’automatisation avait file_created comme trigger depuis longtemps mais rien ne l’émettait jamais, les règles utilisateur ne tournaient pas sur drag-drop / import button. Fix : addFileToFolder dispatch maintenant processFileEvent('file_created', …) après chaque upload réussi. Nouveau template « Router les fichiers importés » (no-condition + move_to_folder). Garde anti-boucle : move_to_folder / copy_to_folder deviennent no-op silencieux si source == cible.
- Reporting honnête en fin de sync — Sync complete: X/N uploaded avec compteur de failed séparé, au lieu de X uploaded qui mentait sur le résultat réel.
- Cache mémoire des profils zombies (profilesFailedToRestore) — un profil cloud qui échoue à se restaurer (typiquement parce que sa encryptionKey a été wrappée avec une autre clé OS / DPAPI / Keychain et n’est pas déchiffrable ici) n’est plus retenté à chaque cycle de sync. Vidé sur switch de profil.
Corrigé
- CRITIQUE — Uploads meta:* débloqués au worker Cloudflare. Le hardening pentest du 25 avr avait restreint le FILE_ID_REGEX à [a-zA-Z0-9_-]{1,128}, ce qui rejetait silencieusement tout fileId portant le préfixe meta: (meta:notes, meta:<id>). Conséquence en prod : les notes nouvellement éditées ne se synchronisaient plus, le manifest distant était incrémenté pendant que les blobs R2 sous-jacents n’étaient jamais écrits. Fix : autoriser le : dans le regex (le seul séparateur structurel utilisé pour <namespace>:<id>). Worker redéployé le 2026-04-29.
- uploadFile / downloadFile rethrow maintenant après log + enqueue retry — elles avalaient leurs exceptions, donc le try/catch de processQueue atteignait markSuccess à chaque retry, finissant par un log syncQueue Completed même quand R2 avait répondu 400. Les Promise.allSettled des boucles batch absorbent la rejection sans casser le cycle.
v2.5.0
Nouveau
- Badge de synchronisation par note — 4 états distincts (Synchronisée, Synchronisation…, Non synchronisée, Hors ligne) dérivés du dirty-tracking client-side en croisant note.updatedAt avec sync.lastSyncAt + sync.state. Deux variantes : full (icône + label) dans le header de l’éditeur, compact (point coloré 8 px) dans chaque carte de la vue liste. Masqué automatiquement en mode local-only.
- Toggle « Afficher les carnets » dans la vue graphe — off par défaut pour préserver la philosophie actuelle, persisté dans localStorage. Quand activé : nœud losange violet par carnet (uniquement ceux avec une note dans le graphe), arêtes pointillées discrètes carnet → notes (opacité ~22 %) qui ne concurrencent pas les wiki-links. Clic sur un carnet = filtre par carnet + switch en vue liste.
Amélioré
- Frappe dans une note longue ~300× à ~9,5 M× plus rapide — le hot-path onUpdate → Redux faisait un JSON.stringify de tout le document à chaque keystroke debouncé. Ref lastSyncedContentRef cache la dernière string émise pour transformer la comparaison en identity-compare O(1) sur les round-trips internes. Sur une note de 5,9 Mo, l’ancien path brûlait 30 ms de main-thread par seconde de frappe, le nouveau consomme 4 ns.
- Ouverture d’une note longue : INP 743 ms → 230 ms (~70 % de réduction) — retrait du key={editingNote.id} sur NoteEditor qui démontait/remontait TipTap (30+ extensions, schéma ProseMirror, panneaux enfants) à chaque clic. Trois garde-fous ajoutés pour éviter les fuites d’état entre notes : reset effect sur note.id, snapshot prevOnUpdateRef, flush synchrone dans onBlur.
- Double JSON.parse éliminé sur l’ouverture — le ref de sync est seedé avec note.content dès l’initialisation, l’effet voit l’égalité au premier passage et skip.
- Panneaux latéraux différés avec useDeferredValue — BacklinksPanel faisait trois scans synchrones O(N) à O(N·M) sur note-switch. React fractionne maintenant : commit urgent pour rendre l’éditeur interactif, puis recompute en priorité basse.
- 17 tests unitaires ajoutés (8 syncEditorContent + 9 getNoteSyncState) + microbenchmark reproductible scripts/bench-note-editor-sync.mjs pour valider tout futur refactor du hot-path.
Corrigé
- Pollution des icônes par le Kanban — la vue Kanban écrivait l’id de la colonne (inbox, in-progress, review, done…) directement dans le champ icon, écrasant l’emoji choisi à chaque drag-drop. Nouveau champ dédié kanbanStatus + reducer migrateKanbanIconPollution one-shot idempotent qui heal le parc existant (heuristique kebab-case).
v2.4.2
Amélioré
- Auto-healing du compteur storage — syncService appelle POST /sync/recalculate/:profileId une fois par session par profil au retour d’un sync réussi, pour réconcilier le compteur depuis la vérité R2 sans attendre une action utilisateur.
- Endpoints admin one-shot — POST /sync/admin/reconcile-all (scan complet bucket, agrège par profil, overwrite storage_used_bytes — exécuté en prod : 78 objets, 5 profils corrigés, total ramené à 102,7 Mo) et POST /sync/admin/list-keys/:userId/:profileId (inspection R2 avec catégorisation manifest / file-chunk + top fichiers, utile pour identifier les orphelins).
Corrigé
- Compteur de stockage cloud sur-comptait massivement — chaque ré-upload d’un chunk R2 incrémentait storage_used_bytes de la taille totale du nouveau body sans soustraire la taille de l’objet existant. Après ~26 ré-uploads cumulés, le compteur divergeait d’un facteur ×26 (D1 : 2,5 Go annoncés vs R2 : 104 Mo réels, observé en prod). Fix : HEAD R2 avant le put + update par delta avec MAX(0, …) pour blinder contre un compteur négatif.
- Quota presign symétrique — le check de quota dans POST /sync/presign/upload comparait used + newSize > limit sans tenir compte de la taille du chunk déjà en place. Un user proche de sa limite ne pouvait plus ré-uploader un chunk existant. Désormais : used − previous + new > limit.
v2.4.0
Nouveau
- Historique des versions de notes — snapshots chiffrés automatiques à chaque save (dedup par hash, throttle 2 min, rétention 50 versions ou 30 jours), 3 modes UI interchangeables : liste latérale, scrapbook plein écran 2 colonnes avec diff condensé, ou timeline style Figma avec scrubber horizontal et bulle de date flottante. Restauration sûre qui crée un nouveau snapshot automatique.
- Couvertures de notes — 40 presets en 6 catégories (Couleurs, Pastels, Sombres, Tropicaux, Minimal, Mesh) + upload d’image personnelle avec compression JPEG automatique (max 1.2 MB après compression). 3 sliders pour zoomer (30-300%, dézoom inclus) et repositionner l’image verticalement et horizontalement en live.
- Picker d’icônes hybride à 3 onglets — 280 emojis curatés en 8 catégories avec recherche par mots-clés et 18 récents persistés, 145 icônes Lucide SVG en 17 catégories, ou upload d’une petite image personnelle (logo de projet).
Amélioré
- Extensions TipTap complètes dans le viewer de versions (callouts, math, toggle, wiki-links, file embeds, code blocks lowlight, tables) — aucune note ne rend blanc dans l’historique, quelle que soit sa complexité.
- Fallback défensif si un snapshot a un contenu JSON désynchronisé : banner jaune "Rendu indisponible" + affichage du texte brut pour que l’utilisateur ne soit jamais devant un panneau vide.
Corrigé
- Restauration d’une ancienne version qui ne s’appliquait pas dans l’éditeur (NoteEditor ne resynchronisait TipTap avec Redux que sur changement de note.id, pas sur note.content).
- Modal d’historique qui se fermait à chaque sync cloud (loadNotesFromDisk.fulfilled nullait systématiquement les pointeurs d’édition, démontant NoteEditor).
- Doublons d’historique après restart (cache mémoire vide traitait le premier save comme "first seen") — lazy warm-up depuis le disque avant la décision de dedup.
- Clics qui passaient derrière la barre de titre en mode Timeline (contrôles natifs de la fenêtre à z-index 99999) — padding top ajouté sur le wrapper.
- Previews de versions qui rendaient vide : double cause, recréation de l’instance TipTap sans repaint + extensions manquantes faisant dropper les nodes custom. Fix combiné setContent impératif + remount forcé + liste d’extensions complète.
- Piste des range sliders invisible sur thèmes clairs (accent-color ne colorait que le thumb) — styling explicite des pseudo-éléments webkit/moz.
v2.3.3
Nouveau
- Synchronisation du PIN entre appareils — le hash PIN transite désormais dans le manifest chiffré par la FEK. Configurer un PIN sur un appareil le propage automatiquement aux autres (last-write-wins sur horodatage). Sync déclenché immédiatement au changement de PIN au lieu d’attendre le prochain cycle.
Amélioré
- Écran de verrouillage route correctement vers le PIN lock dès qu’un PIN est reçu d’un autre appareil (au lieu de retomber sur le mot de passe vault).
v2.3.2
Amélioré
- Indicateur FEK réactif — nouveau check disque (4 chemins candidats cloud/local × dev/prod) au lieu d’une variable mémoire renderer qui était toujours inactive en mode cloud.
- Log throttling côté sync — les skips « not-authenticated / offline / no-fek » ne se loguent plus qu’aux transitions, supprimant le spam toutes les 15-20 s.
- Écran Vault Password : logo Filarr + nom réel du profil (via chaîne de fallback profil → localProfile → email local-part), clés i18n ajoutées (FR/EN).
Corrigé
- CRITIQUE — Perte de notes par auto-save prématuré : à l’ouverture d’un profil, saveNotesToDisk pouvait s’exécuter avec l’état vide avant que loadNotesFromDisk ait fini, écrasant jusqu’à 30 Ko de notes. Double parade : guard côté renderer (auto-save bloqué tant qu’un load n’a pas complété) + guard côté main (refus d’écrire < 200 octets au-dessus d’un fichier existant de > 200 octets).
- Enhanced Lock (handler before-quit) : le handler async laissait Electron quitter avant la suppression de .fek_safe. Remplacé par event.preventDefault() + quit explicite après complétion — .fek_safe est désormais garanti d’être supprimé avant le quit.
- Enhanced Lock (enforcement au lancement) : handleProfileSelected n’activait pas isLocked=true quand Enhanced Lock était activé mais .fek_safe absent. L’app passait directement à l’écran principal. Pre-check ajouté.
- Rechargement post-unlock : après déverrouillage, les dossiers et notes sont rechargés depuis le disque (Enhanced Lock saute ces loads au startup, il fallait les rejouer).
- Graph view : liens visibles sur thèmes clairs — le stroke des arêtes était quasi invisible avec des faibles densités.
v2.3.1
Amélioré
- Version de maintenance — correctifs mineurs d’UI pour le widget Pomodoro introduit en v2.2.0 (anneau de progression, toggles des paramètres).
Corrigé
- Anneau du Pomodoro : temps et label empilés verticalement au lieu de chevaucher.
- Cases à cocher des paramètres Pomodoro remplacées par de vrais switches visibles.
- Contraste des onglets de mode amélioré (texte blanc sur accent au lieu de blanc sur blanc).
v2.3.0
Amélioré
- Electron 39.2.1 → 41.2.1 — corrige 18 CVEs Electron accumulées dans la branche 39 : context isolation bypass, AppleScript injection, header injection, use-after-free multiples, path injection sur setAsDefaultProtocolClient (Windows), USB device spoofing, etc.
- electron-builder 24.13.3 → 26.8.1 — aligné avec Electron 41.
- npm audit : passage de 55 à 47 vulnérabilités, 0 critique, 0 high runtime direct. Seul react-scripts reste (build-only, non exposé en prod).
- Smoke test runtime OK : authentification, sync cloud, merge manifest, upload/download, aucune régression sur les APIs Electron utilisées (BrowserWindow, webContents, session, Tray, autoUpdater, safeStorage, dialog, shell.openExternal, contextBridge).
v2.2.2
Amélioré
- Fuses Electron complets — 8 fuses explicites avec strictlyRequireAllFuses : RunAsNode, EnableCookieEncryption (cookies chiffrés via DPAPI/Keychain/libsecret), EnableNodeOptionsEnvironmentVariable, EnableNodeCliInspectArguments, EnableEmbeddedAsarIntegrityValidation, OnlyLoadAppFromAsar, LoadBrowserProcessSpecificV8Snapshot, GrantFileProtocolExtraPrivileges. Une future version d’Electron ne pourra pas introduire un fuse avec un défaut non-sûr à notre insu.
- HKDF-SHA-256 sur le secret partagé ECDH du pairing multi-appareils — les 256 bits bruts sont désormais expansés via HKDF avec le code de pairing comme salt et un domain separator « filarr.pairing.wrap.v1 » comme info label. Plus conforme aux hypothèses de sécurité d’AES-GCM et isole la clé de wrap de tout autre usage futur du secret partagé.
Corrigé
- Clés i18n manquantes (warnings i18next::translator missingKey en console au lancement) : commandPalette.commands.focusTimer/focusTimerDesc, settings.font/fontDesc, settings.importVaultModalDesc, settings.importSelectFile.
v2.2.1
Amélioré
- Audit sécurité complet post-v2.2.0 — 24 findings vérifiés directement dans le code, 8 patchs livrés immédiatement, restants déférés et documentés.
Corrigé
- CRITICAL — Path traversal via import:readFile / import:readDirectory : un XSS dans le renderer pouvait exfiltrer ~/.ssh/id_rsa, .aws/credentials, l’historique git, etc. Désormais les handlers exigent une whitelist de paths approuvés par dialog.showOpenDialog + rejet des symlinks + cap de 20 000 entrées au walk.
- CRITICAL — ZIP bomb dans vault:importZip : aucune limite de décompression. Cap ajouté : 500 Mo total, 50 Mo par entrée, 10 000 entrées max. Rejet préalable des chemins absolus ou contenant « .. ».
- HIGH — UUIDs prévisibles : generateUUID / generateUniqueId utilisaient Math.random() (non-cryptographique). Bascule vers crypto.randomUUID() / crypto.getRandomValues() (source OS).
- HIGH — Service Worker désactivé : un SW dans Electron pouvait servir du JS obsolète après mise à jour (l’utilisateur continuait d’exécuter du code vulnérable après patch). Remplacé par unregister() + purge des Cache Storage au démarrage.
- HIGH — Timing attack sur comparaison hash : filePasswordService comparait les hash legacy SHA-256 et PBKDF2 avec « === ». Remplacé par une comparaison en temps constant (XOR sur toute la longueur).
- MEDIUM — URL protocol check : shell.openExternal était gardé par un startsWith(“https://”) naïf. Remplacé par un parseur new URL() strict rejetant tout sauf http/https, les contrôles ASCII, et les URLs > 8 Ko. Appliqué aussi aux URLs de billing (defence-in-depth contre backend compromis).
- MEDIUM — DOMPurify FORBID_TAGS élargi : MarkdownPreview bloque désormais svg, math, foreignObject, annotation-xml, object, embed, base, meta, link, et les attributs srcdoc, formaction, ping (historiquement utilisés pour bypass le sanitizer).
- MEDIUM — safeStorage fail-closed : hybrid:storeFEK retournait false silencieusement si safeStorage était indisponible. Un caller distrait pouvait continuer sans persistance chiffrée. Désormais lève une erreur explicite.
v2.2.0
Nouveau
- Minuteur Focus / Pomodoro — widget flottant persistant avec 3 modes (focus 25 min, pause courte 5 min, pause longue 15 min — tous configurables). Avance automatique focus → pause selon le cycle. Deux états : pilule minimisée (horloge + play/pause) et carte étendue avec anneau de progression, onglets de mode, compteur quotidien et panneau de paramètres. Statistiques journalières 90 jours. Notifications système. Accessible via bouton dans la barre d’en-tête ou via la palette de commandes.
- Thème Forêt — thème sombre pin-vert profond, canopée avec lucioles ambrées et rayons de lumière verts. Pensé pour les longues sessions d’écriture.
- Police Atkinson Hyperlegible — conçue par le Braille Institute pour maximiser la lisibilité (formes de lettres distinctives qui réduisent les confusions b/d, 0/O). Utile pour les utilisateurs malvoyants comme pour tous.
Amélioré
- Audit dépendances — passage de 59 vulnérabilités (1 critique) à 55 (0 critique). Upgrade jspdf 4.2.0 → 4.2.1 (fixe XSS critique GHSA-wfv2-pwc8-crg5, CVSS 9.6), axios 1.7.7 → 1.15.0 (DoS via __proto__, SSRF NO_PROXY, header injection), dompurify 3.3.1 → 3.4.0 (5 bypass du sanitizer).
v2.1.0
Nouveau
- Import depuis Obsidian — wizard 4 étapes (source → fichier → options → progression). Parse le YAML frontmatter, les wiki-links [[]], les tags #tag, les callouts > [!note]. Mapping automatique des dossiers top-level vers les carnets Filarr.
- Thème Sakura — thème clair inspiré des cerisiers en fleurs, rose doux sur crème chaud.
- Thème Crépuscule — thème sombre crépusculaire, ambre et pourpre sur brun profond.
- Police Space Grotesk — nouvelle option typographique dans Apparence.
- Halos atmosphériques — overlay gradient subtil sur les thèmes à effets (Space, Aurora, Sakura, Crépuscule).
Amélioré
- Graphe Canvas2D — remplacement du rendu SVG par Canvas2D (10-50x plus rapide). Simulation d3-force avec Barnes-Hut, frustum culling, HiDPI, zoom vers le curseur.
- Graphe organique — formule de link strength 1/√max(degré), les sous-structures émergent naturellement au lieu de former une boule.
- Taille des nœuds proportionnelle à √connexions (6-40px), les hubs sont visuellement proéminents.
- Drag interactif — déplacer un nœud relance la simulation, les voisins réagissent. Le nœud reste épinglé.
- Labels intelligents — visibles selon le zoom et l’importance du nœud (hubs affichés en premier).
- Limite de nœuds passée de 500 à 2000.
- NotesList virtualisée — react-virtuoso réduit ~99% des nœuds DOM pour le scroll fluide avec des milliers de notes.
- Wiki-links cliquables — les [[note]] importées sont conservées en texte brut pour le plugin de décoration Filarr.
- Liens externes — Ctrl+Clic ouvre les URLs http(s):// dans le navigateur.
- Wiki-suggestions coupées à 20 résultats (perf avec 6000+ notes).
- Inline parser — support de ==highlight==, [[wiki-link|alias]], et conversion HTML→Markdown.
Corrigé
- Billing webhook — fallback +30 jours si Stripe ne renvoie pas current_period_end.
- NoteEditor — adaptation des couleurs de fond et texte par thème.
- Obsidian preprocessor — nettoyage des commentaires %%, boutons HTML, badges shields.io.
v2.0.0
Nouveau
- Synchronisation cloud zero-knowledge — chiffrement AES-256-GCM côté client, stockage Cloudflare R2
- Jumelage multi-appareils sécurisé — échange de clés ECDH P-256 via code à 6 chiffres
- Plans d’abonnement — Free (1 Go, 1 appareil), Solo (10 Go, 3 appareils, 4€/mois), Pro (50 Go, illimité, 8€/mois)
- Intégration Stripe — checkout, portail client, webhooks, détection automatique du changement de plan
- Synchronisation des profils entre appareils — nom, avatar, structure de dossiers
- Verrouillage automatique — configurable (5/15/30/60 min), efface la FEK de la mémoire
- Mode verrouillage renforcé — supprime .fek_safe à la fermeture, mot de passe vault requis à chaque lancement
- Clé de secours exportable — fichier JSON chiffré avec PBKDF2 + AES-GCM, restauration en 2 étapes
- Indicateur cloud-only — badge gris sur les fichiers disponibles uniquement en ligne
- Page filarr.com/account — gestion des appareils, abonnement et suppression de compte depuis le navigateur
- Onboarding multi-appareils — détection automatique device principal vs secondaire
Amélioré
- Manifest cloud chiffré avec la FEK (plus la clé locale) — compatible multi-appareils
- Deduplication des appareils — device ID persisté localement, upsert au login
- Auto-login après vérification email dans l’onboarding cloud
- Recalcul du quota storage depuis R2 (POST /sync/recalculate)
- Token refresh résilient — ne déconnecte plus sur erreur fichier Windows (EPERM)
- Notes supprimées avec le dossier parent (soft delete, plus d’orphelins)
- Changement de mot de passe synchronisé avec le compte cloud
Corrigé
- Quota storage désynchronisé après suppressions locales
- Pairing affiché sur le premier device (faux positif device count)
- FEK introuvable après réinitialisation StorageService (recherche multi-chemins)
- Metadata.json illisible sur Device B (clé de chiffrement non partagée)
- .fek_safe introuvable après changement de profil actif
- Sync ne démarrait pas automatiquement après l’onboarding
- Bouton Suivant visible pendant l’étape de jumelage
- Flag onboarding non persisté sur disque pour le flow secondaire
v1.7.1
Nouveau
- Indentation Tab / Shift+Tab dans les listes (checkboxes, puces, numérotées)
- Chevron collapse sur les checkboxes — replie/déplie le contenu imbriqué
- Détection automatique de la langue OS dès l’onboarding
- Sélecteur de langue sur la page de bienvenue (🇫🇷/🇬🇧)
- Single instance lock — empêche les lancements multiples, réactive la fenêtre existante
Amélioré
- Thème appliqué en temps réel dans l’onboarding
- Mise à jour silencieuse — installateur NSIS en arrière-plan, comme VS Code et Obsidian
- Installation auto à la fermeture quand une mise à jour est prête
- Persistance du thème sur disque via IPC (survit aux mises à jour)
- Thème pré-appliqué au chargement — plus de flash blanc en dark mode
- Marges des titres réduites (aligné sur Notion/Obsidian)
- Pipeline de release interactive — choix des plateformes à builder
- Workflow CI conditionnel — jobs séparés par plateforme
- Nom d’artefact Windows avec tirets (corrige le 404 auto-updater)
- Télémétrie rebranchée — stats KV Cloudflare reprennent
Corrigé
- setupAutoUpdater() appelé deux fois, doublant les event listeners
- Les thèmes Space, Lofi, Sky n’étaient pas restaurés au redémarrage
- Plusieurs instances pouvaient se lancer simultanément
- Le script release.js perdait les guillemets JSON dans le message de tag
v1.6.3
Nouveau
- Mot de passe de chiffrement à l’onboarding — dérivation KEK et initialisation FEK dès la création du profil
- Phrase de récupération (12 mots, style MetaMask) pour restaurer le mot de passe de chiffrement
- Réinitialisation du PIN via mot de passe de chiffrement ou phrase de récupération
- 3 nouveaux thèmes : Space (étoilé), Lofi (tons terre), Sky (bleus aériens)
- Code blocks améliorés — sélecteur de langage (24), copier, compteur de lignes, fold/collapse
- Import de vault complet (ZIP) — notes, dossiers, tags, paramètres, supports plain et chiffré
- Export enrichi — contenu TipTap JSON, métadonnées étendues, templates, flashcards, automations
- Nouveau logo SVG Filarr (composant adaptatif au thème) + tous les assets refaits
- Panneau latéral Notes repliable (Ctrl+B)
- 30+ couleurs d’accent et 36 couleurs d’avatar pour les profils
Amélioré
- Vue graphe — centrage instantané dès le premier frame, répulsion et ressorts adaptatifs
- Flashcards — parsing TipTap corrigé, pattern Q:/A: plus permissif
- Wiki-links — détection via texte brut TipTap au lieu de plainText (corrige les liens non détectés)
- Aperçu au survol des liens — popover au-dessus, délai 400ms, clic navigant
- Double onglet / Split view — chaque panneau gère son propre noteId indépendamment
- Persistance fenêtre — position, taille et état maximisé sauvegardés
- Sélecteur de thème — grille dynamique avec prévisualisation miniature
- Onboarding — conteneur scrollable, largeur augmentée
Corrigé
- Wiki-links insérés via [[ n’apparaissaient pas dans les linkedNoteIds
- Le popover de lien et le bouton « Lier une note » se superposaient au survol
- Flashcards ne trouvaient aucune paire Q/R (doubles sauts de ligne TipTap)
- En mode split, cliquer sur une note changeait aussi la note dans l’autre panneau
v1.6.2
Nouveau
- Import de notes (.md, .html, .txt, .filarr, .json) avec conversion automatique en TipTap JSON
- Recherche globale enrichie — trouve les notes (titre + contenu avec extrait) et les sections de paramètres
- Thèmes éditeur dark mode — variantes sombres automatiques pour Default, Writer et Developer
Amélioré
- Export de notes complet — conserve titres, listes, code blocks, tableaux, task lists, callouts, formules math, Mermaid et formatage inline
- Vue graphe style Obsidian — simulation de forces en espace infini, répulsion Coulomb, ressorts Hooke, auto-fit du viewport
- Dark mode sur les vues Masonry, Sticky Notes, Dataview et sélecteur de thème
- SearchResults redesigné avec icônes par type et navigation directe
- DashboardStats : compatibilité dark mode du donut chart SVG
- FolderView : miniatures masquées pour les fichiers verrouillés
- ManageProfilesModal : reset complet avec flag d’onboarding persisté sur disque
Corrigé
- Corrections CSS dark mode : BacklinksPanel, CalendarWidget, NoteEditor, NotesList, PeriodicNotes, TasksAggregator
v1.6.1
Amélioré
- Toast de mise à jour en bas à droite avec barre de progression et bouton « Redémarrer »
- Transmission de la version disponible et du pourcentage de téléchargement
Corrigé
- Le bandeau de mise à jour ne transmettait pas la version disponible
v1.6.0
Amélioré
- Lancement instantané — les services backend s’initialisent en parallèle du rendu UI
- Migration vers HashRouter pour compatibilité Electron en production
- Mise à jour automatique via releases.filarr.com (plus besoin de GH_TOKEN)
- Vérification automatique des mises à jour toutes les 4 heures
- Upload des manifestes .yml et .blockmap (mises à jour delta) vers R2
- Correction des chemins d’icônes en mode packagé
v1.5.3
Nouveau
- Wiki intégré traduit EN/FR (170+ clés) : guides, raccourcis, éditeur, vues, graph, templates
- Formulaire de rapport de bug et suggestions dans les paramètres
Amélioré
- Refonte du wiki intégré : navigation par catégories, rendu Markdown, recherche
v1.5.2
Nouveau
- Association de notes à un dossier parent (NoteFolderPicker)
- Système de flags persistants sur disque (survivent aux resets de localStorage)
- Protection SSRF : blocage des requêtes vers réseaux privés et endpoints cloud
- Validation de chemin et sanitization pour empêcher le path traversal
Amélioré
- PBKDF2 renforcé : 600 000 itérations (×6) + SHA-512 pour les exports
- Sel aléatoire par installation au lieu d’un sel fixe
- Permissions fichiers restreintes (0o600) pour les clés et exports
- PIN lockout dès 3 tentatives échouées au lieu de 5
- Refonte complète de l’onboarding (820+ lignes)
v1.5.1
Nouveau
- Fenêtre frameless style VS Code / Obsidian avec contrôles natifs en overlay
- Zone de drag dans la barre de titre (WebkitAppRegion)
Amélioré
- Refonte des templates de démarrage (1200+ lignes)
- Panneau latéral dans NotesView avec backlinks et dossier parent
- CSS global mis à jour pour le mode frameless (342 lignes)
v1.5.0
Corrigé
- Correction du quoting basename dans le workflow CI
- Amélioration du workflow release multi-OS
v1.4.6
Nouveau
- Liens de donation Ko-fi et Stripe dans les paramètres
Amélioré
- Détection dev/prod via app.isPackaged
- Résolution d’icône dynamique (dev vs packagé)
Corrigé
- Correction du type ProfileMetadata (champ avatarImage)
- Correction de l’erreur window renderer
v1.4.0
Nouveau
- Image personnalisée sur les avatars de profil
- UI Tour complet avec ouverture automatique de la sidebar
- Script de release automatisé
Amélioré
- Palette étendue de couleurs pour les profils
- Écran de verrouillage PIN avec support d’image
v1.3.0
Nouveau
- Système multi-profil avec PIN lock et isolation des données
- Chiffrement local KEK/FEK : FEK dérivé du mot de passe, chiffrement transparent
- Éditeur de notes riche avec wiki-links [[]], vues multiples (kanban, masonry, canvas, mind map...)
- Internationalisation EN/FR complète
- Sécurité Electron : fuses, rate limiting, IPC allowlist, CSP
Amélioré
- Refonte complète du codebase (394 fichiers)
- Migration TypeScript (99.26% couverture de tests)
- Optimisation scroll : lazy thumbnails, content-visibility, memo
Corrigé
- Pipeline FEK pour chiffrement hybride
- 17 issues critiques de production résolues
- 7 erreurs TypeScript backend corrigées
↓ 18 mois de développement solo — refonte complète du moteur de chiffrement, éditeur de notes, graph view, multi-profil.
v1.2.6
Amélioré
- Mise à jour du système de cryptage
Corrigé
- Corrections de bugs divers
- Correction du bug de mise à jour automatique
v1.2.0
Amélioré
- Passage en production avec variable d’environnement
v1.1.0
Nouveau
- Création du squelette du logiciel
- Stockage local avec chiffrement AES
- Personnalisation des fichiers et dossiers (couleurs, icônes)
- Sélection multiple avec actions groupées
- Système de rappels avec notifications desktop
- Mise à jour automatique (electron-updater)
Corrigé
- Synchronisation des fichiers
- Erreur de renommage
- Suppression dans les sous-dossiers
- Copier/coller
- Notifications de rappel après complétion